os_cpu_c.c

来自「对研究uc_os操作系统的非常有帮助」· C语言 代码 · 共 86 行

C
86
字号

#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 + =
减小字号Ctrl + -
显示快捷键?