os_cpu_c.c.bak

来自「在MC68HC908JB8上移植UCOSII成功」· BAK 代码 · 共 120 行

BAK
120
字号
#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)
{
}

⌨️ 快捷键说明

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