uC/OS是一種體積小巧而實用的實時操作系統(tǒng),由于其代碼的開放性,近年來普遍受到人們的關注,許多人開始從事這一操作系統(tǒng)的學習及應用工作,但由于其文檔較少,特別是關于安裝和使用方面的指導性文章不夠充足,使很多初學者,特別是剛剛接觸嵌入式操作系統(tǒng)的朋友們不知道如何進行系統(tǒng)的安裝及調試,為此我結合自己使用的切身體會,談一談它的安裝及調試問題,希望對大家能起到一定的幫助作用。
文中的開發(fā)工具及開發(fā)包如下:
開發(fā)包:uC/OS2.51點擊此處下載
http://www.freewind.com.cn/ucos/tools/ucoscode.htm
文中開發(fā)工具:BorlandC3.1點擊此處下載
http://www.freewind.com.cn/ucos/tools/bc31.rar
其中開發(fā)工具是經過本人剪裁過的,只適用于此項目開發(fā)。
1安裝
1.1下載軟件包Software.rar(文件大小848KB)
1.2解壓縮,建議解壓到C盤根目錄,這樣文件將安裝在C:SOFTWARE,需要空間2.12MB
1.3安裝完畢
1.4以默認安裝路徑為例,目錄結構為:
C:SOFTWARE
這是根目錄,是所有軟件相關的文件都放在這個目錄下。
C:SOFTWAREBLOCKS
子程序模塊目錄。筆者將例子中μC/OS-II用到的與PC相關的函數(shù)模塊編譯以后放在這個目錄下。
C:SOFTWAREHPLISTC
這個目錄中存放的是與范例HPLIST相關的文件(請看附錄D,HPLISTC和TO)。HPLIST.C存放在C:SOFTWAREHPLISTCSOURCE目錄下。DOS下的可執(zhí)行文件(HPLIST.EXE)存放在C:SOFTWARETOEXE中。
C:SOFTWARETO
這個目錄中存放的是和范例TO相關的文件(請看附錄D,HPLISTC和TO)。源文件TO.C存放在C:SOFTWARETOSOURCE中,DOS下的可執(zhí)行文件(TO.EXE)存放在C:SOFTWARETOEXE中。注意TO需要一個TO.TBL文件,它必須放在根目錄下。用戶可以在C:SOFTWARETOEXE目錄下找到TO.TBL文件。如果要運行TO.EXE,必須將TO.TBL復制到根目錄下。
C:SOFTWAREuCOS-II
與μC/OS-II相關的文件都放在這個目錄下。
C:SOFTWAREuCOS-IIEX1_x86L
這個目錄里包括例1的源代碼(參見1.07,例1),可以在DOS(或Windows95下的DOS窗口)下運行。
C:SOFTWAREuCOS-IIEX2_x86L
這個目錄里包括例2的源代碼(參見1.08,例2),可以在DOS(或Windows95下的DOS窗口)下運行。
C:SOFTWAREuCOS-IIEX3_x86L
這個目錄里包括例3的源代碼(參見1.09,例3),可以在DOS(或Windows95下的DOS窗口)下運行。
C:SOFTWAREuCOS-IIIx86L
這個目錄下包括依賴于處理器類型的代碼。此時是為在80x86處理器上運行uC/OS-II而必須的一些代碼,實模式,在大模式下編譯。
C:SOFTWAREuCOS-IISOURCE
這個目錄里包括與處理器類型無關的源代碼。這些代碼完全可移植到其它架構的處理器上。
2開發(fā)工具BorlandC3.1的安裝
2.1先下載BorlandC3.1(文件大小1.65MB)
2.2解壓縮,建議解壓到C盤根目錄,這樣全部的文件將安裝在C:BC31,我們強烈建議采用這個路徑安裝,這樣您將可以直接進行項目的編譯及調試,而不需要更改他們的配置,需要空間5.10MB
2.3如果您一定要將它安裝到其他目錄,請修改相應的配置文件,注意藍色部分:
2.3.1打開<安裝路徑>BINTURBOC.CFG,顯示如下:
-IC:BC31INCLUDE
-LC:BC31LIB
將C:BC31該為安裝的目錄,例如安裝目錄為E:BorlandC31,則改后應為
-IE:BorlandC31INCLUDE
-LE:BorlandC31LIB
2.3.2打開<安裝路徑>BINTLINK.CFG,顯示如下:
-LC:BC31LIB
將C:BC31該為安裝的目錄,例如安裝目錄為E:BorlandC31,則改后應為
-LE:BorlandC31LIB
2.4至此安裝完成
2.5以默認安裝路徑為例,目錄結構為:
C:BC31
這是根目錄,是所有工具相關的文件都放在這個目錄下。
C:BC31BIN
全部編譯鏈接的開發(fā)工具都放在這個目錄下
C:BC31LIB
全部鏈接庫文件存放在這個目錄下
C:BC31INCLUDE
全部頭文件都存放在這個目錄
還有需要說明的是這個BorlandC是經過本人裁減的,目的是減少需要的空間(原版需要19.6MB),如果您使用的是原版的軟件,可以進行安裝,則不需要進行2.3這一步驟的配置工作,如果您卻是需要這個原版的軟件,請與我聯(lián)系留言寫信
3項目開發(fā)
隨開發(fā)包附帶了4個例子,都具有一定的代表性,下面我們結合例1介紹項目開發(fā)的全過程,需要說明的是:安裝路徑均為默認值。
3.1進入C:SOFTWAREuCOS-IIEX1_x86LBC45目錄,會看到兩個目錄,他們功能如下:
C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCE
源文件目錄
C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCEINCLUDES.H
總的項目頭文件,每個源文件都應包含
C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCEOS_CFG.H
配置文件,用于操作系統(tǒng)配置和剪裁
C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCETEST.C
應用程序文件,在開發(fā)新項目時可以參考這個文件的格式
C:SOFTWAREuCOS-IIEX1_x86LBC45SOURCETEST.LNK
鏈接文件,包含了鏈接的庫和鏈接參數(shù)
C:SOFTWAREuCOS-IIEX1_x86LBC45TEST
項目文件目錄
C:SOFTWAREuCOS-IIEX1_x86LBC45TESTTEST.MAK
項目的MAKE文件,熟悉C編譯器的人一定知道,通過Make文件可以智能的對整個項目進行自動的編譯鏈接,非常方便,我們在后面會詳細介紹這個文件。
C:SOFTWAREuCOS-IIEX1_x86LBC45TESTTEST.MAP
項目映像文件主要完成庫文件地址的映射,是項目的產物
C:SOFTWAREuCOS-IIEX1_x86LBC45TESTMAKETEST.BAT
項目Make操作的批處理文件,它將自動完成整個編譯鏈接的全過程
C:SOFTWAREuCOS-IIEX1_x86LBC45TESTTEST.EXE
項目生成的可執(zhí)行文件,使項目的產物
下面正式開始項目的開發(fā)
3.2第一步,按上面的目錄結構,建立項目目錄,在例中建立了一個目錄C:SOFTWAREuCOS-IIEX1_x86LBC45,并在下面新建了兩個子目錄TEST和SOURCE,并將相關文件復制到這兩個目錄中,注意應該盡量按這種路徑和目錄結構建立項目,否則可能需要更改文件中的路徑信息,這是很麻煩的事情。[!--empirenews.page--]
值得推薦的最快捷的方法就是復制一個例子的目錄,如果你的新項目名稱為NewProject,可以在C:SOFTWAREuCOS-II下新建一個目錄C:SOFTWAREuCOS-IINewProject,再將C:SOFTWAREuCOS-IIEX1_x86L中的兩個子目錄直接復制到新建的目錄下,最后只需更改內部的文件的一些配置,在TEST.C中重新寫入新項目的代碼即可。
3.3第二步,更改INCLUDES.H文件,文件內容為:
#include
#include
#include
#include
#include
#include
#include
#include"softwareucos-iiix86lbc45os_cpu.h"
#include"os_cfg.h"
#include"softwareucos-iisourceucos_ii.h"
#include"softwareblockspcbc45pc.h"
如果你的軟件包的安裝路徑和項目建立路徑是按推薦方式設定的,則不需要更改此文件,但你可以增加一些你想在項目中追加的頭文件,如一些驅動程序或應用模塊的頭文件,但一定要注意路徑是否正確。如果你為按標準路徑建立項目,必須逐行更改蘭顏色部分的代碼,使路徑正確。
3.4第三步,配置OS_CFG.H文件,因這與軟件包和開發(fā)工具的安裝無關,只用于項目中操作系統(tǒng)的配置,具體的請根據你的項目來自主決定,相關的介紹很多,可以參考uC/OS-II的電子書。
3.5第四步,修改TEST.LNK配置,這里進行開發(fā)工具鏈接時一些參數(shù)和鏈接模塊的設置,可以用編輯器打開:
/v/s/c/P-+
C:BC31LIBC0L.OBJ+
..OBJTEST.OBJ+
..OBJOS_CPU_A.OBJ+
..OBJOS_CPU_C.OBJ+
..OBJPC.OBJ+
..OBJuCOS_II.OBJ
..OBJTEST,..OBJTEST
C:BC31LIBEMU.LIB+
C:BC31LIBMATHL.LIB+
C:BC31LIBCL.LIB
3.5.1/v/s/c/P-是鏈接的參數(shù),建議不要更改;
3.5.2C:BC31LIBC0L.OBJ是TurboC的Large模式編譯庫模塊,如果開發(fā)工具路徑不是默認設置,請改為實際的安裝路徑,例如將C:BC31改為E:BorlandC31
3.5.3..OBJTEST.OBJ是應用程序的目標文件,它是由TEST.C編譯后生成的,并保存在臨時生成的C:SOFTWAREuCOS-IIEX1_x86LBC45OBJ目錄中,這個目錄使用與保存編譯時產生的目標文件的。
3.5.4..OBJOS_CPU_A.OBJ..OBJOS_CPU_C.OBJ..OBJPC.OBJ..OBJuCOS_II.OBJ同上,都是編譯時產生的目標文件,并保存在OBJ目錄下,作為項目鏈接的組成模塊,如果在OBJ目錄中缺少上述文件,鏈接將不會成功。
3.5.5..OBJTEST,..OBJTEST是指定的項目產生的EXE文件和MAP文件的路徑和名稱,它們分別是TEST.EXE和TEST.MAP,并保存在OBJ目錄下。
3.5.6C:BC31LIBEMU.LIBC:BC31LIBMATHL.LIBC:BC31LIBCL.LIB是鏈接時需要的庫文件,必須令路徑符合BorlandC的安裝路徑,如果安裝在非推薦目錄,必須更改藍色的路徑部分。其中EMU為8087仿真庫,MATHL為數(shù)學函數(shù)庫,CL為TurboC在Large模式下的運行庫。
3.6第五步,修改TEST.MAK文件,這是BorlandC的Make文件,關于Make文件的格式及編寫方法請參考相關書籍,這里僅介紹一些配置有關的內容,打開文件可以看到:
#############################################################################
#TOOLS
#############################################################################
BORLAND=C:BC31
CC=$(BORLAND)BINBCC
ASM=$(BORLAND)BINTASM
LINK=$(BORLAND)BINTLINK
TOUCH=$(BORLAND)BINTOUCH
#############################################################################
#DIRECTORIES
#############################################################################
TARGET=..TEST
SOURCE=..SOURCE
WORK=..WORK
OBJ=..OBJ
LST=..LST
OS=SOFTWAREuCOS-IISOURCE
PC=SOFTWAREBLOCKSPCBC45
PORT=SOFTWAREuCOS-IIIx86LBC45
如果你得BorlandC沒有安裝在推薦安裝的目錄,需要更改BORLAND=C:BC31這一句,例如如果安裝在E:BorlandC31,則將BORLAND=C:BC31改為BORLAND=E:BorlandC31。
CC=$(BORLAND)BINBCC:這是編譯器的名稱及路徑,一般不更改
ASM=$(BORLAND)BINTASM:這是匯編器的名稱及路徑,一般不更改
LINK=$(BORLAND)BINTLINK:這是鏈接器的名稱及路徑,一般不更改
TARGET=..TEST:項目文件目錄,如果路徑不是按推薦方式,必需要更改路徑
SOURCE=..SOURCE:源文件目錄,如果路徑不是按推薦方式,必需要更改路徑
WORK=..WORK:項目工作目錄,MAKETEST.BAT自動編譯時全部源文件都復制到這個目錄,這個設定必須必須和MAKETEST.BAT中設定相一致
OBJ=..OBJ:目標代碼目錄,這個設定必須和MAKETEST.BAT中設定相一致
LST=..LST:列表文件目錄,這個設定必須和MAKETEST.BAT中設定相一致
OS=SOFTWAREuCOS-IISOURCE:操作系統(tǒng)源文件目錄,必須保證路徑的正確,如果你的開發(fā)包沒按推薦方式安裝,必須更改這個設定為實際安裝的目錄。
PC=SOFTWAREBLOCKSPCBC45:與PC有關的源文件目錄,必須保證路徑的正確,如果你的開發(fā)包沒按推薦方式安裝,必須更改這個設定為實際安裝的目錄。
PORT=SOFTWAREuCOS-IIIx86LBC45:與處理器有關源文件目錄,必須保證路徑的正確,如果你的開發(fā)包沒按推薦方式安裝,必須更改這個設定為實際安裝的目錄。開發(fā)包中還有一個浮點的處理器文件目錄Ix86L-FP。這2個目錄是跟移植密切相關的,相當于BSP(板極開發(fā)包)。
3.7第六步,配置MAKETEST.BAT,打開可以看見
MD..WORK[!--empirenews.page--]
MD..OBJ
MD..LST
CD..WORK
COPY..TESTTEST.MAKTEST.MAK
C:BC31BINMAKE-fTEST.MAK
CD..TEST
首先是建立..WORK..OBJ..LST三個目錄,這個目錄的名稱和路徑必須同TEST.MAK一致,然后進入..WORK目錄,并將..TEST目錄中的TEST.MAK復制到這里,最后執(zhí)行BorlandC的Make程序,自動進行編譯和鏈接,這里面還是要注意C:BC31的路徑問題。
3.9第八步,進行相關應用程序的開發(fā)就可以了,具體的可以參見Test.c這個文件,如果你的項目包括多個源文件,最好是在Test.c中用#include語句把他們都包含進來,否則就要更改Make文件TEST.MAK和其他幾個設置文件,如果你確需如此,可以自己嘗試一下,這里不再列出。
3.10最后,運行MAKETEST.BAT就可以在TEST目錄下生成TEST.EXE文件。
4其它
有幸還有許多網友都在PC下用BorlandC實現(xiàn)了激動人心的調試開發(fā),網友Hcompute把它的心得寫了出來,大家也可以參考一下這篇文章PC環(huán)境下用BC3.1編譯連接uC/OS-II源文件。
還有更多關于操作系統(tǒng)本身的應用問題,大家盡可以參考它的電子書中文版英文版
另外這篇文章寫作很匆忙,基本是一氣呵成的,難免存在很多錯誤,其中的一些觀點由于本人水平有限,可能存在一些錯誤,在此,我歡迎看到這篇文章并發(fā)現(xiàn)問題或錯誤的朋友及時指正,以免誤導別人,同時也歡迎讀罷有所感悟的朋友積極來信,提出你的觀點和看法,讓我們共同努力,找到uC/OS開發(fā)的最好途徑。