色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          uC/OSII移植步驟

          作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏
          SP!, {R0-R12,LR,PC}^;pop new task's context
          2.多任務(wù)應(yīng)用程序的編寫(xiě)
          1)C語(yǔ)言入口函數(shù)
          函數(shù)Main()為C語(yǔ)言入口函數(shù),所有C程序從這里開(kāi)始運(yùn)行,在該函數(shù)中進(jìn)行如下操作:
          調(diào)用函數(shù)ARMTaskgetInit初始化ARM處理器
          調(diào)用OSInit初始化系統(tǒng)
          調(diào)用OSTaskCreat函數(shù)創(chuàng)建任務(wù):Task1和Task2
          調(diào)用ARMTaskgetStart函數(shù)啟動(dòng)時(shí)鐘節(jié)拍中斷
          調(diào)用OSStart啟動(dòng)系統(tǒng)任務(wù)調(diào)度
          #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)任務(wù)處理函數(shù)
          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);


          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉