📄 os_cpu_c.c
字号:
#define OS_CPU_GLOBALS
#include "..\os\linos.h"
#include "..\cpu\hard\mspper.h"
static void CpuPowerOnDly(void); //上电延时程序
/*
*******************************************************************************
* 堆栈初始化函数 *
*******************************************************************************
*/
OS_STK *OSTaskStkInit (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT16U opt)
{
INT16U *top;
opt = opt;
top = (INT16U *)ptos;
top--;
*top = (INT16U)task;
top--;
*top = (INT16U)task; //中断返回指针
top--;
*top = (INT16U)0x0008; //状态寄存器
top--;
*top = (INT16U)0x0404; //R4
top--;
*top = (INT16U)0x0505; //R5
top--;
*top = (INT16U)0x0606; //R6
top--;
*top = (INT16U)0x0707; //R7
top--;
*top = (INT16U)0x0808; //R8
top--;
*top = (INT16U)0x0909; //R9
top--;
*top = (INT16U)0x1010; //R10
top--;
*top = (INT16U)0x1111; //R11
top--;
*top = (INT16U)p_arg; //R12 = p_arg
top--;
*top = (INT16U)0x1313; //R13
top--;
*top = (INT16U)0x1414; //R14
top--;
*top = (INT16U)0x1515; //R15
return ((OS_STK *)top);
}
/*
*******************************************************************************
* CPU初始化程序 *
*******************************************************************************
*/
void OSCpuInit(void)
{
CpuPowerOnDly();
CpuOscInit(); //CPU时钟初始化
CpuGpioInit(); //Cpu输入输出口初始化
CpuTimeraInit(OS_TICK_STEP_TIME); //Cpu定时器A初始化
}
void CpuPowerOnDly(void)
{
INT16U i;
for(i=0;i<0x2000;i++)
{
asm(" NOP");
asm(" NOP");
asm(" NOP");
asm(" NOP");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -