新聞中心

        uC/OSII移植步驟

        作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏
      1. 1.μC/OS-Ⅱ概述
        μC/OS-Ⅱ在特定處理器上的移植大部分工作集中在多任務(wù)切換的實現(xiàn)上,這部分代碼主要用來保存和恢復(fù)處理器的現(xiàn)場。但許多操作如讀/寫寄存器不能用C語言而只能用匯編來實現(xiàn)。
        將μC/OS-Ⅱ移植到ARM處理器上,只需要修改與處理器相關(guān)的3個文件: OS_CPU.H, OS_CPU_C.C, OS_CPU_A.ASM 。
        2.OS_CPU.H的移植
        1)數(shù)據(jù)類型的定義
        typedefunsignedcharBOOLEAN;
        typedefunsignedcharINT8U;
        typedefsignedcharINT8S;
        typedefunsignedshortINT16U;
        typedefsignedshortINT16S;
        typedefunsignedintINT32U;
        typedefsignedintINT32S;
        typedeffloatFP32;
        typedefdoubleFP64;
        typedefunsignedintOS_STK;
        typedefunsignedintOS_CPU_SR;
        2)ARM處理器相關(guān)的宏定義
        #defineOS_ENTER_CRITICAL()ARMDisableINT
        #defineOS_EXIT_CRITICAL()ARMEnableINT
        3)堆棧增長方向的定義
        #defineOS_STK_GROWTH1
        3.OS_CPU_C.C的移植
        1)任務(wù)椎棧初始化
        任務(wù)椎棧初始化函數(shù)由OSTaskCreat()或OSTaskCreatEXT()調(diào)用,用來初始化任務(wù)并返回新的堆棧指針STK.初始狀態(tài)的堆棧模擬發(fā)生一次中斷后的堆棧結(jié)構(gòu),在ARM體系結(jié)構(gòu)下,任務(wù)堆棧空間由高到低將依次保存著PC,LR,R12…R0,CPSR,SPSR。堆棧初始化結(jié)束后,OSTaskSTKInit()返回新的堆棧棧頂指針OSTaskCreat()或OSTaskCreatEXT()將新的指針保存的OS_TCB中。
        OS_STK *OSTaskStkInit (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT16U opt)
        {
        OS_STK *stk;
        opt= opt;
        上一頁 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 下一頁

        關(guān)鍵詞:

        評論


        相關(guān)推薦

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

        主站蜘蛛池模板: 库车县| 泰安市| 广灵县| 枣阳市| 安塞县| 广昌县| 涿鹿县| 天气| 双流县| 柳林县| 邯郸县| 潮州市| 安平县| 绍兴县| 咸阳市| 泸水县| 珠海市| 大同市| 丽江市| 大邑县| 原阳县| 乌兰浩特市| 旬阳县| 巨野县| 晋城| 四会市| 青川县| 八宿县| 胶州市| 泸州市| 孝义市| 石狮市| 习水县| 称多县| 绍兴市| 德江县| 稻城县| 师宗县| 秦安县| 亚东县| 天祝|
              <kbd id="oaook"><tbody id="oaook"></tbody></kbd>
              <blockquote id="oaook"><tfoot id="oaook"></tfoot></blockquote>