📄 os_cpu_c.c
字号:
#define OS_CPU_GLOBALS
#include "includes.h"
void *OSTaskStkInit (void (*task)(void *pd), void *pdata, void *ptos, INT16U opt)
{
INT16U *stk;
opt = opt;
stk = (INT16U *)ptos;
*--stk = (INT16U)(task);
*--stk = (INT16U)(0x00);
*--stk = (INT16U)(0x00);
return ((void *)stk);
}
void OSStartHighRdy(void)
{
OSRunning++;
asm {
LDX OSTCBHighRdy
STX OSTCBCur
PSHX
LDX OSTCBHighRdy:1
STX OSTCBCur:1
PULH
LDA 0,x
PSHA
LDX 1,x
PULH
TXS
PULH
RTI
};
}
void OSIntCtxSw(void)
{
asm {
AIS #4
TSX
PSHX
PSHH
LDX OSTCBCur:0
PSHX
LDX OSTCBCur:1
PULH
PULA
STA 0,x
PULA
STA 1,x
LDA OSPrioHighRdy
STA OSPrioCur
LDX OSTCBHighRdy:0
STX OSTCBCur:0
PSHX
LDX OSTCBHighRdy:1
STX OSTCBCur:1
PULH
LDA 0,x
PSHA
LDX 1,x
PULH
TXS
PULH
RTI
};
}
void OSCtxSw(void)
{
asm {
PSHH
TSX
PSHX
PSHH
LDX OSTCBCur:0
PSHX
LDX OSTCBCur:1
PULH
PULA
STA 0,x
PULA
STA 1,x
LDA OSPrioHighRdy
STA OSPrioCur
LDX OSTCBHighRdy:0
STX OSTCBCur:0
PSHX
LDX OSTCBHighRdy:1
STX OSTCBCur:1
PULH
LDA 0,x
PSHA
LDX 1,x
PULH
TXS
PULH
RTI
};
}
void OSTaskCreateHook (OS_TCB *ptcb)
{
ptcb = ptcb;
}
void OSTaskDelHook (OS_TCB *ptcb)
{
ptcb = ptcb;
}
void OSTaskSwHook (void)
{
}
void OSTaskStatHook (void)
{
}
void OSTimeTickHook (void)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -