?? 改進說明.txt
字號:
//+++++++++++++++++++++++++++++++
//2004.07.29 改進任務初始化函數(shù) --- 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狀態(tài).
OSTCB[i].OSTimeDly=0;
}
}
//+++++++++++++++++++++++++++++++
//2004.07.29 改進任務掛起函數(shù) --- 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; //加 -- 掛起的任務取消延時狀態(tài)。
OSSched();
}
#endif
改進后的功能說明;
1. 以前的任務只能自己掛起自己,現(xiàn)在一個任務可以掛起另一個任務。
//++++++++++++++++++++++++++++++++
//2004.07.30 改進任務起動函數(shù) --- 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()任務優(yōu)先級只能為0。
在進行任務切換時,正在運行的當前任務OS_TASK_CrtPrio狀態(tài)應為OS_TASK_Rdy,
將要切換到的任務,既處于準備就緒的最高優(yōu)先級任務OS_TASK_HighPri狀態(tài)應為OS_TASK_Run。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -