os_cpu_c.c

来自「此代码是ucos-II在凌阳61单片机上的移植」· C语言 代码 · 共 73 行

C
73
字号

#include "INCLUDES.H"
char InterruptC;
OS_STK  *OSTaskStkInit(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
{
 OS_STK *stk;
 pdata=pdata;
 opt=opt;
 
 stk=(OS_STK *)ptos;
 
 *stk--=*((INT16U*)task+1);                  	/*任务地址(PC)*/
 *stk--=0x0000;                        			/*SR(R6) */
 *stk--=0x0000;                        			/*BP(R5) */
 *stk--=0x0000;                        			/*R4     */
 *stk--=0x0000;                        			/*R3     */
 *stk--=0x0000;                        			/*R2     */
 *stk--=0x0000;                       			/*R1     */
 *stk--=0x0000;                        			/*该任务的中断开关次数标志*/
 return((void *)stk);
}

void OSTaskCreateHook(OS_TCB *ptcb)
{
 ptcb=ptcb;
}

void OSTaskDelHook(OS_TCB *ptcb)
{
 ptcb=ptcb;
}

void OSTaskSwHook(void)
{
}

void OSTaskIdleHook(void)
{
}

void OSTaskStatHook(void)
{
}

void OSTimeTickHook(void)
{
}

void OSInitHookBegin(void)
{
}

void OSInitHookEnd(void)
{
}

void OSTCBInitHook(OS_TCB* ptcb)
{
 ptcb=ptcb;
}

void Critical_in(void)
{
 __asm("INT OFF");
 InterruptC++;
}

void Critical_out(void)
{
 InterruptC--;
 if(InterruptC==0)
  __asm("INT IRQ");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?