📄 os_cpu_c.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 + -