Keil Logo

ARM: ported CMSIS RTOS validation project stops when using interrupts

Information in this knowledgebase article applies to:

  • CMSIS-RTOS_Validation pack (CMSIS RTOS API V1)


We have ported the example contained in the 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?


The validation test code uses a special test interrupt handler and IRQ entry number 0 by default.


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.


To 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:


Then, when this interrupt becomes active, the correct handler of the validation code is called and the test can continue.


Last Reviewed: Thursday, January 10, 2019

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

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.