新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在CodeWarrior編譯環境下運行μC/OS―III

        在CodeWarrior編譯環境下運行μC/OS―III

        作者: 時間:2012-12-16 來源:網絡 收藏

        3.3 修改文件
        前面提到,u;和uC/CPU中需要移植的代碼文件在不同的編譯器下需要稍作修改。其中,C文件與編譯器無關,而匯編文件從IAR轉到CodeWarrior有幾個地方需要修改,這涉及cpu_a.asm和os_cpu_a.asm兩個文件,說明如下:
        ①在CodeWarrior的匯編文件中,默認標號都以“:”結尾,編譯指令都以“.”開頭。雖然也可以在工程設置里取消該限制,但還是建議按照該格式編寫代碼。因此,請檢查匯編代碼是否符合上述要求。
        ②在CodeWarrior的匯編文件中,聲明全局函數用的是.global,而IAR中用的是PUBLIC,如IAR中的“PUB-LIC OSStartHighRdy”應改為“.global OSStartHighRdy”。
        ③在匯編文件中,代碼前要進行代碼段的聲明,如IAR中的“RSEG CODE:CODE:NOROOT(2)”在CodeWarrior里應改為“.text,code”
        3.4 添加頭文件路徑
        右鍵點擊工程名,選擇“Properties”→“C/C++Build”→“Settings”,在“ARM Compile”→“Input”頁面可以添加頭文件搜索路徑,把工程中用到的頭文件所在的路徑加上,添加時建議使用相對路徑(相對工程目錄),如圖4所示。

        本文引用地址:http://www.104case.com/article/170659.htm

        e.JPG


        3.5 修改中斷向量衰
        CodeWarrior自動生成的kinetis_sysinit.c文件包含了startup代碼和中斷向量表,把;;Ⅲ用到的兩個中斷向量加入中斷向量表,代碼如下:
        f.JPG
        PendSV中斷和SysTick定時器集成于Cortex—M3/4內核中,專門用于OS的任務切換和時鐘節拍。因此,只要是使用Cortex—M3/4內核的單片機,這部分的移植代碼都是通用的。
        3.6 代碼調試
        在進行;;應用開發時,應先從最小系統開始調試。在配置文件里把不需要的功能先關掉,如消息隊列、信號量、hook函數、統計任務等。在用戶程序里執行完硬件相關的初始化后,先建立一個簡單的任務(即起始任務),然后測試任務調度是否正常。注意,這時在運行的還有;C/OS—內部的空閑任務。
        如果任務調度正常,可在起始任務里初始化并打開時鐘節拍中斷,然后可通過斷點調試等手段測試時鐘中斷服務程序是否得到正確執行。確認后可在起始任務里調用延時相關的函數,如以一定的頻率閃燈,或者向串口輸出信息。如果上述測試通過,那么意味著μC/OS—III已經運行起來了,接下來用戶就可以一步步按照應用需求進行開發了。

        結語
        使用CodeWarrior集成開發環境的讀者,只要按照以上步驟,即可在Kinetis系列單片機上完成μC/OS—III的編譯和運行。本文所講述的步驟也可用于其他開發環境,遵循Micrium官方的文件組織結構,可使得工程目錄結構清晰規范,方便代碼的升級和共享。

        51單片機相關文章:51單片機教程



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 奉化市| 盐边县| 富阳市| 伊宁市| 台湾省| 南平市| 阜平县| 桦甸市| 嘉禾县| 莆田市| 洛阳市| 襄樊市| 白朗县| 阳朔县| 富民县| 炎陵县| 天门市| 七台河市| 永泰县| 河间市| 金昌市| 中宁县| 贵州省| 西平县| 中阳县| 华蓥市| 息烽县| 泉州市| 玉田县| 蓝山县| 玉门市| 曲阜市| 略阳县| 招远市| 两当县| 陵水| 东平县| 靖西县| 岐山县| 新宾| 瓮安县|