⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu_c.c

📁 UCOS-II在凌阳61单片机上的移植 代码还附带三个测试例子
💻 C
字号:

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