I want to change the return address in the stack when running an ISR so that it returns to the specified address. But i found the compiler also pushes some variables to the stack. How can I configure the complier so that it only pushes all registers to the stack when it complies an ISR?
thank you for your kindly help!!
This is actually one of the few cases where manually changing the return address might be necessary.
Agreed.
You really should consider writing this portion in assembler. You will then be in total control, the execution order and size of the code will them be more predictable, and you should (therefore) have a more reliable solution.
Have you considered freeRTOS?
the scheduling policy in my RTOS is not priority based. therefore i can not use FreeRTOS.
thank all of your replys.
On a first glance, FreeRTOS also seems to support round-robin scheduling and cooperative multitasking, too.
i will look at it in more details. thanks.
On a first glance, FreeRTOS also seems to support round-robin scheduling
if so, why on earth even involve a RTOS?
Erik