FREERTOS 移植到ARM Cortex-A9
触发任务调度的机制有两种中断;
1.OSTaskRun/OSTaskSaveRun/OSTaskLoadRun/OSTaskSaveLoadRun
这种机制是通过调用软中断ARM SWI异常触发任务切换。
调用软中断:
#define OSTaskRun(PRunTcb) osek_switch_type = 1; __asm volatile ( "SWI 0");
#define OSTaskSaveRun(PSavedTcb,PRunTcb) osek_switch_type = 1; __asm volatile ( "SWI 0");
#define OSTaskLoadRun(PRunTcb) osek_switch_type = 0; __asm volatile ( "SWI 0");
#define OSTaskSaveLoadRun(PSavedTcb,PRunTcb) osek_switch_type=0; __asm volatile ( "SWI 0");
软中断响应: