|
|||||||||||
|
Technical Support Support Resources
Product Information |
ARM: Ported CMSIS RTOS Validation Project Stops when Using InterruptsInformation in this knowledgebase article applies to:
SYMPTOMWe have ported the example contained in the ARM::CMSIS-RTOS_Validation pack to a different controller to run it on some real hardware. But the project stops running when executing test cases that involve the usage of an interrupt handler. What is the problem with it? CAUSEThe validation test code uses a special test interrupt handler and IRQ entry number 0 by default. SetPendingIRQ((IRQn_Type)0); If this handler is not referenced by the vector table (normally implemented in the startup assembler code) at this entry, activating this interrupt will not call the validation code handler. Instead, the default handler for this device at this entry gets called, which might still be an endless loop. So the program will hang here. RESOLUTIONTo make the validation code work, the test interrupt handler needs to be referenced in the vector table. For this, replace the handler at the vector entry used by the validation code, which is entry 0 by default, with the test interrupt handler: Thread_IRQHandler Then, when this interrupt becomes active, the correct handler of the validation code is called and the test can continue. MORE INFORMATION
Last Reviewed: Monday, November 2, 2020 | ||||||||||
|
|||||||||||
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.