新聞中心

        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)用程序的編寫
        1)C語(yǔ)言入口函數(shù)
        函數(shù)Main()為C語(yǔ)言入口函數(shù),所有C程序從這里開始運(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)閉
        主站蜘蛛池模板: 延庆县| 金门县| 武城县| 朝阳市| 黑河市| 柳州市| 宝清县| 博罗县| 平乡县| 通山县| 阿巴嘎旗| 托里县| 双鸭山市| 内江市| 梁平县| 同心县| 广南县| 廉江市| 陇南市| 个旧市| 大田县| 舟山市| 卢龙县| 榆中县| 原阳县| 黑龙江省| 阳城县| 刚察县| 桑植县| 南城县| 延川县| 集贤县| 周口市| 天全县| 印江| 五常市| 嵊州市| 株洲县| 湖北省| 惠州市| 郸城县|