新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > uCOSii 在Coldfire MCF52235 上的移植

        uCOSii 在Coldfire MCF52235 上的移植

        作者: 時間:2012-11-21 來源:網絡 收藏

        MOVEM. L D0D7/ A0 A6, ( A7)

        OS_EMAC_SAVE

        MOVEQ. L # 0, D0

        MOVE. B ( _OSI ntNesting) , D0

        ADDQ. L # 1, D0

        MOVE. B D0, ( _OSI ntNesting)

        CMPI. L # 1, D0

        BNE _BSP_TickISR_1

        MOVE. L ( _OSTCBCur) , A1

        MOVE. L A7, ( A1)

        _BSP_TickISR_1:

        JSR _BSP_T ickISR_H andler

        JSR _OSInt Ex it

        OS_EMAC_RESTORE

        MOVEM. L ( A7) , D0D7/ A0A6

        LEA 60( A7) , A7

        RTE

        3 任務的創建和代碼的測試

        源程序完, 用戶就可以試著制作自己的項目。編寫任務代碼, 與以前在前后臺系統中基本相同, 不同

        的是要把每個任務獨立編寫成一個文件, 最后由主程序統一調度。為了測試是否成功, 用STaskCreateExt ( ) 創建了兩個任務。一個任務使板上LED 每一秒閃動一次, 另一個任務是用片內A/ D 采樣板上的加速度傳感器信號, 并在數碼管上顯示出當前加速度數值。最后調用OSStar t( ) 啟動多任務調度。

        3. 1 定義每個任務的堆棧大小

        OS_STK

        TaskStartStk[ T ASKSTART ST K_SIZE] ;

        OS_STK ADT askStk[ T ASKSTK_SIZE] ;

        然后在main( ) 函數里系統初始化:

        OSInit( ) ;

        3. 2 創建任務

        OST askCreateEx t( TaskStart, ( void * ) 0, ( OS _ ST K * )

        T askStar tSt k[ T ASKSTARTST K_SIZE1] , T ASK _START _

        PRIO, TASK_START_PRIO, ( OS_ST K* ) T askStart St k[ 0] ,

        TASK_ST ART_ST K_SIZE, ( vo id * ) 0, OS_TASK_OPT _ST K_

        CH K| OS_TASK_OPT_STK_CLR) ;

        OSTaskCreateExt ( ADT ask, ( vo id * ) 0, ( OS _ STK * )

        ADTaskStk[ TASKST K_SIZE1] , ADTASK_PRIO, ADT ASK

        _ PRIO, ( OS _ ST K * ) ADTaskStk [ 0] , TASK _ ST K _SIZE,

        ( vo id * ) 0, OS_TASK_OPT_STK_CHK) ;

        3. 3 系統啟動運行

        OSStart( ) ;

        3. 4 測試結果

        測試代碼經過編譯下載到實驗板上運行后, 通過實驗板上顯示的信息, 表示兩個任務在交替運行, 說明移

        植工作是成功的, 如圖5 所示。

        image

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西林县| 灵丘县| 文安县| 安岳县| 平罗县| 衡南县| 大洼县| 江口县| 辽中县| 缙云县| 双峰县| 涟源市| 莒南县| 项城市| 玉山县| 竹溪县| 睢宁县| 黑山县| 滦平县| 宣威市| 北海市| 横峰县| 海淀区| 专栏| 保山市| 丹江口市| 屏南县| 定西市| 中牟县| 甘泉县| 巢湖市| 杂多县| 武义县| 彭州市| 晋城| 梁山县| 江陵县| 陇南市| SHOW| 永吉县| 湖州市|