This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Is there ANY Cortex core that supports reentrant interrupts?

Note: This was originally posted on 28th February 2011 at http://forums.arm.com

For some (external to me) reason I am stuck with the Cortex but trying to find work around to my software issues with the lack of reentrant interrupts in CM3. Does CM4 support reentrancy? Or maybe CM0? Anything at all?
Please help!


Parents
  • Note: This was originally posted on 15th March 2011 at http://forums.arm.com

    The example is for showing Non-base thread enable but isn't really intend to be using as reentrant exception.

    In the beginning of the SysTick handler, you need to use another higher priority exception (e.g. calling an SVC service 0 in the example, but make sure the priority of SVC is higher than your SysTick handler. Hardfault exception would be triggered otherwise.)

    After SVC return, switch off the active status of the SysTick exception. Now you should be able to trigger the SysTick exception again.

    In general I think (note: personal opinion here) it is best to avoid using reentrant of same exception.
    Since the SysTick exception can be a normal C function, you can just call it directly without trigger a exception.

    Alternative you could avoid reentrant code all together. Many OS has been developed for Cortex-M3 without the need to use reentrant of SysTick handler.
Reply
  • Note: This was originally posted on 15th March 2011 at http://forums.arm.com

    The example is for showing Non-base thread enable but isn't really intend to be using as reentrant exception.

    In the beginning of the SysTick handler, you need to use another higher priority exception (e.g. calling an SVC service 0 in the example, but make sure the priority of SVC is higher than your SysTick handler. Hardfault exception would be triggered otherwise.)

    After SVC return, switch off the active status of the SysTick exception. Now you should be able to trigger the SysTick exception again.

    In general I think (note: personal opinion here) it is best to avoid using reentrant of same exception.
    Since the SysTick exception can be a normal C function, you can just call it directly without trigger a exception.

    Alternative you could avoid reentrant code all together. Many OS has been developed for Cortex-M3 without the need to use reentrant of SysTick handler.
Children
No data