📄 os_cpu_c.c
字号:
#include "INCLUDES.H"
OS_STK *OSTaskStkInit(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
{
OS_STK *stk;
opt=opt;
stk=(OS_STK *)ptos;
*--stk=(OS_STK)task; //PC R15
*--stk=(OS_STK)task; //LR R14
*--stk=0x00000000; //R12
*--stk=0x00000000; //R11
*--stk=0x00000000; //R10
*--stk=0x00000000; //R9
*--stk=0x00000000; //R8
*--stk=0x00000000; //R7
*--stk=0x00000000; //R6
*--stk=0x00000000; //R5
*--stk=0x00000000; //R4
*--stk=0x00000000; //R3
*--stk=0x00000000; //R2
*--stk=0x00000000; //R1
*--stk=0x00000000; //R0
*--stk=(SVC_MODE|0x0); //SPSR
*--stk=(SVC_MODE|0x0); //CPSR
*--stk=0x00000000; //NOINT
return((void *)stk);
}
void OSTaskCreateHook(OS_TCB *ptcb)
{
ptcb=ptcb;
}
void OSTaskDelHook(OS_TCB *ptcb)
{
ptcb=ptcb;
}
void OSTaskSwHook(void)
{
OS_ENTER_CRITICAL();
Uart_Printf("\n1\n");
OS_EXIT_CRITICAL();
}
void OSTaskIdleHook(void)
{
OS_ENTER_CRITICAL();
Uart_Printf("2");
OS_EXIT_CRITICAL();
}
void OSTaskStatHook(void)
{
}
void OSTimeTickHook(void)
{
}
void OSInitHookBegin(void)
{
OS_ENTER_CRITICAL();
Uart_Printf("\nOSInit begin !");
OS_EXIT_CRITICAL();
}
void OSInitHookEnd(void)
{
OS_ENTER_CRITICAL();
Uart_Printf("\nOSInit end !");
OS_EXIT_CRITICAL();
}
void OSTCBInitHook(OS_TCB* ptcb)
{
ptcb=ptcb;
OS_ENTER_CRITICAL();
Uart_Printf("\nTCB init now !");
OS_EXIT_CRITICAL();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -