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

📄 os_cpu_c.c

📁 这是移植到凌阳十六位单片机上的UCOS 凌阳十六位单片机性能强大
💻 C
字号:
/*
******************************************************
* 文件:OS_CPU_C.c
* 作者:dejam 
* 单位:03EE.STU
* 
******************************************************
*/

#define  OS_CPU_GLOBALS
#include "includes.h"

/*******************************************************************               
                            堆栈初始化函数
                  该函数在创建任务时调用,用于对任务堆栈初始化
********************************************************************/
void *OSTaskStkInit(void (*task)(void *pd), void *pdata, void *ptos, INT16U opt)
{
	OS_STK *stk;
	opt    = opt;                               //opt没被用到,保留此语句防止告警产生  
	stk    = (OS_STK *)ptos;                    //用户堆栈最高有效地址
	*stk-- = *((INT16U *)pdata);               	//函数调用时的第一个参数
 	*stk-- = 0xffff;		        			//模拟PC压栈(任务返回地址,未知也不关心,可随便放)
	*stk-- = 0xffff;							//模拟SR压栈
	*stk-- = *((INT16U *)task + 1);        		//PC   (指向任务代码的指针,task指向CS[61A中永远为0],task+1指向偏移量,只需将偏移量压栈即可)
	*stk-- = 0x0000;							//SR
	*stk-- = 0x5555;       						//r5   寄存器里的值可随便放,在这里主要是为调试时的观察方便
	*stk-- = 0x4444;                           	//r4
	*stk-- = 0x3333;                           	//r3
	*stk-- = 0x2222;                           	//r2
	*stk-- = 0x1111;                           	//r1
	return ((void *)stk);
}


#if OS_CPU_HOOKS_EN
/***************************************************************************
                               任务切换挂钩函数
                 注意:任务创建时调用,调用期间中断需被禁止 
********************************************************************************/
void OSTaskSwHook (void)
{
}
/***************************************************************************
                               任务创建挂钩函数
                     注意:任务创建时调用,调用期间中断需被禁止
********************************************************************************/
void OSTaskCreateHook (OS_TCB *ptcb)
{
    ptcb = ptcb;							//防止告警产生
}
/*******************************************************************************
                               任务删除钩挂函数             
********************************************************************************/
void OSTaskDelHook (OS_TCB *ptcb)
{
    ptcb = ptcb;							//防止告警产生
}
/*******************************************************************************
                               任务切换钩挂函数
********************************************************************************/
void OSTaskStatHook (void)
{
}
/*******************************************************************************
                                定时钩挂函数
********************************************************************************/
void OSTimeTickHook (void)
{
}
#endif

⌨️ 快捷键说明

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