久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > uC/OSII移植步驟

uC/OSII移植步驟

作者: 時間:2016-10-08 來源:網絡 收藏
SP!, {R0-R12,LR,PC}^;pop new task's context
2.多任務應用程序的編寫
1)C語言入口函數
函數Main()為C語言入口函數,所有C程序從這里開始運行,在該函數中進行如下操作:
調用函數ARMTaskgetInit初始化ARM處理器
調用OSInit初始化系統
調用OSTaskCreat函數創建任務:Task1和Task2
調用ARMTaskgetStart函數啟動時鐘節拍中斷
調用OSStart啟動系統任務調度
#i nclude “config.h”
OS_STKTaskStartStk[TASK_STK_SIZE];
OS_STKTaskStk[TASK_STK_SIZE];
int Main(void){
OSInit();
OSTaskCreate(Task1,(void*)0,TaskStartStk[TASK_STK_SIZE-1],0);
OSStart();
return();
}
2)任務處理函數
Task1
void Task1(void *pdata){
pdata=pdata;
TargetInit();
For(;;){
OSTimeDly(OS_TICKS_PER_SEC/50);
If(GetKey()!=KEY1){
continue;
}
OSTaskCreate(Task2,(void *)0,TaskStk[TASK_STK_SIZE-1],10);
While(GetKey()!=0){
OSTimeDly(OS_TICKS_PER_SEC/50);
}
}
}
Task2
void Task2(void *pdata){
pdata=pdata;
BeeMoo();
OSTimeDly(OS_TICKS_PER_SEC/8);
BeeMoo();
OSTimeDly(OS_TICKS_PER_SEC/4);
BeeMoo();
OSTimeDly(OS_TICKS_PER_SEC/8);


關鍵詞:

評論


相關推薦

技術專區

關閉