📄 改进说明.txt
字号:
//+++++++++++++++++++++++++++++++
//2004.07.29 改进任务初始化函数 --- void OSInit(void)
// initialization OSTCB --- 初始化任务控制块.
void OSInit(void)
{ INT8U i;
for (i=0;i<OS_MAX_TASKS;i++)
{
OSTCB[i].OSStkTop=(INT8U)NULL;
OSTCB[i].OSTaskStatus=no_TASK_Rdy; //任务控制块未用时为no_TASK_Rdy状态.
OSTCB[i].OSTimeDly=0;
}
}
//+++++++++++++++++++++++++++++++
//2004.07.29 改进任务挂起函数 --- void OSTaskSuspend(INT8U TaskPrio)
#if OS_TASK_SUSPEND_EN>0
//把正在运行的任务挂起(Suspend a task)。
void OSTaskSuspend(INT8U TaskPrio)
{
OSTCB[OS_TASK_CrtPrio].OSTaskStatus=OS_TASK_Rdy; //加 -- 当前任务为OS_TASK_Rdy
OSTCB[TaskPrio].OSTaskStatus=OS_TASK_Suspend;
OSTCB[TaskPrio].OSTimeDly=OS_TASK_TimeOut; //加 -- 挂起的任务取消延时状态。
OSSched();
}
#endif
改进后的功能说明;
1. 以前的任务只能自己挂起自己,现在一个任务可以挂起另一个任务。
//++++++++++++++++++++++++++++++++
//2004.07.30 改进任务起动函数 --- void OSStart(void)
//Start OS --- 启动OS
void OSStart(void)
{
Init_OS_Timer();
OS_TASK_CrtPrio=Task_main_Prio;
OS_TASK_HighPri=OS_TASK_CrtPrio;
OSTCB[OS_TASK_HighPri].OSTaskStatus=OS_TASK_Run;
OS_INT_ENABLE();
OS_TASK_INT();
}
改进后的功能说明;
1. 以前的任务启动有BUG,main()任务优先级只能为0。
在进行任务切换时,正在运行的当前任务OS_TASK_CrtPrio状态应为OS_TASK_Rdy,
将要切换到的任务,既处于准备就绪的最高优先级任务OS_TASK_HighPri状态应为OS_TASK_Run。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -