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

          新聞中心

          uC/OSII移植步驟

          作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

                1. 1.μC/OS-Ⅱ概述
                  μC/OS-Ⅱ在特定處理器上的移植大部分工作集中在多任務(wù)切換的實(shí)現(xiàn)上,這部分代碼主要用來(lái)保存和恢復(fù)處理器的現(xiàn)場(chǎng)。但許多操作如讀/寫(xiě)寄存器不能用C語(yǔ)言而只能用匯編來(lái)實(shí)現(xiàn)。
                  將μC/OS-Ⅱ移植到ARM處理器上,只需要修改與處理器相關(guān)的3個(gè)文件: OS_CPU.H, OS_CPU_C.C, OS_CPU_A.ASM 。
                  2.OS_CPU.H的移植
                  1)數(shù)據(jù)類(lèi)型的定義
                  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)堆棧增長(zhǎng)方向的定義
                  #defineOS_STK_GROWTH1
                  3.OS_CPU_C.C的移植
                  1)任務(wù)椎棧初始化
                  任務(wù)椎棧初始化函數(shù)由OSTaskCreat()或OSTaskCreatEXT()調(diào)用,用來(lái)初始化任務(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;
                  上一頁(yè) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 下一頁(yè)

                  關(guān)鍵詞:

                  評(píng)論


                  相關(guān)推薦

                  技術(shù)專(zhuān)區(qū)

                  <code id="cuqwc"></code>