I have been working with FreeRTOS on a Raspberry Pi Zero on the IRQ without issue on the context switch
However I want to move the context switch to the FIQ but I have an issue with the FIQ bank registers
Usually you just grab the task stack top and push all the registers r0-r13, and push the spsr
Switch to the other task and load its r0-r13 and load the spsr and away you go on teh new task
The issue with FIQ is obviously r8-r14 are really r8_fiq to r13_fiq they aren't the task registers r8_usr to r13_usr.
I have used mrs r8_usr etc to get to these on arm7, arm8 but those instructions don't work on arm1176jzf-s so how do I get to the r8-r14 task registers?
You can use the CPS instruction to temporarily change to system mode, system mode share registers with user mode so you can access r8-14 and then CPS back into FIQ mode.
View all questions in Cortex-A / A-Profile forum