新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > μC/OS-II在Cortex-M3系列單片機上的移植

        μC/OS-II在Cortex-M3系列單片機上的移植

        作者: 時間:2009-02-04 來源:網絡 收藏

          (2) OS_CPU_C.C文件

          在OS_CPU_C.C定義的C函數中,OSTaskStkInit()函數與CPU相關,所以代碼需要修改該函數。其程序如下(初始化任務時調用此函數初始化任務使用的堆棧):

        程序

          (3) OS_CPU_A.ASM文件

          μC/OSII的需要編寫5個簡單的匯編語言函數。

          ① OS_ENTER _CRITICAL( ): 關閉中斷源。

          ② OS_EXIT_CRITICAL( ): 重開中斷源。

          ③ OSStartHighRdy( ): 運行當前優先級最高的任務。

          ④ OSCtxSw( ): 一個任務放棄CPU使用權時調用。

          ⑤ OSIntCtxSw(): 在退出中斷服務函數OSIntExit()中被調用,實現中斷級任務切換。

          因為LM3S單片機目前只支持8位中斷優先級中的高3位,所以這里把1左移5位即是00100000B,其宏定義為OS_CRITICAL_INT_PRIOEQU(15)。

          ARM CortexM3使用OSPendSV( )函數快捷地進行上下文切換。OSPendSV( )的C語言表述程序如下:

        程序

          完成上述工作后,只要再根據目標板的實際情況編寫Target目錄中的3個文件,μC/OSII就可以運行在LM3S8962單片機上了。

        3 實際應用

          工作完成后,編寫了一段程序,可以進行CAN通信,按鍵控制LED燈,通過RS232串口與主機相連實現對SD卡的讀寫等操作。下面是程序的部分代碼:

        程序

          在Main.H中定義任務優先級為:

        程序

          其中創建任務的任務代碼為:

        程序

          SDExample為方便觀察SD卡操作任務編寫的GUI界面,選好與程序對應的串口波特率,連接好硬件。從圖2可以看到,對SD卡可以進行成功操作。

        SD卡操作任務編寫的GUI界面

        圖2 SD卡操作任務編寫的GUI界面

          結語

          μC/OSII作為一個優秀的實時操作系統,已經被移植到各種體系結構的微處理器上。本設計實現了其在LM3S8962上的成功移植,并通過一個實例驗證了移植的正確性。本次移植只是做了一些基礎性工作,在此基礎上還可進行進一步的開發,充分利用LM3S系列單片機的性能和μC/OSII的特點,在檢測與維修領域發揮一定作用。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 光山县| 肥西县| 武定县| 泰顺县| 景东| 大渡口区| 北安市| 安龙县| 南漳县| 古蔺县| 宜宾市| 凤山市| 华池县| 武川县| 德惠市| 汽车| 扎赉特旗| 承德市| 大厂| 汨罗市| 平和县| 平泉县| 海南省| 无锡市| 昭通市| 哈尔滨市| 巴青县| 灵璧县| 垫江县| 罗城| 赣州市| 息烽县| 金秀| 厦门市| 上思县| 六枝特区| 闵行区| 杨浦区| 黔江区| 东安县| 忻城县|