新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 在CodeWarrior編譯環(huán)境下運行μC/OS―III

在CodeWarrior編譯環(huán)境下運行μC/OS―III

作者: 時間:2012-12-16 來源:網(wǎng)絡 收藏

3.3 修改文件
前面提到,u;和uC/CPU中需要移植的代碼文件在不同的編譯器下需要稍作修改。其中,C文件與編譯器無關,而匯編文件從IAR轉到CodeWarrior有幾個地方需要修改,這涉及cpu_a.a(chǎn)sm和os_cpu_a.a(chǎn)sm兩個文件,說明如下:
①在CodeWarrior的匯編文件中,默認標號都以“:”結尾,編譯指令都以“.”開頭。雖然也可以在工程設置里取消該限制,但還是建議按照該格式編寫代碼。因此,請檢查匯編代碼是否符合上述要求。
②在CodeWarrior的匯編文件中,聲明全局函數(shù)用的是.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.2s4d.com/article/170659.htm

e.JPG


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

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

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



上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉