|
第一節(jié) 系統(tǒng)概述 Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)
性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。
Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯 后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。 在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。
第二節(jié) Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的整體結(jié)構(gòu)
圖(1)為C51工具包的整體結(jié)構(gòu), uVision2是keil c的Windows集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)
試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件;然后分別由C51或A51編譯器編譯生 成目標(biāo)文件(.OBJ);目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件 (.ABS);ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì) 目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 
圖(1) C51工具包整體結(jié)構(gòu)圖 第三節(jié) Keil C51工具包各部分功能及使用簡(jiǎn)介
1 )C51與A51
1.1 C51
C51是C語(yǔ)言編譯器,其使用方法為:
C51 sourcefile[編譯控制指令]
或者
C51 @ commandfile
其中sourcefile為C源文件(.C)
編譯控制指令完成C51編譯器的全部功能,包控C51輸出文件C.LST,.OBJ,.I和.SRC文件的控制。
源文件(.C)的控制等。
而Commandfile為一個(gè)連接控制文件其內(nèi)容包括:.C源文件及各編譯控制指令,它沒(méi)有固定的名字,開(kāi)發(fā)人員可根據(jù)自 己的習(xí)慣指定,它適于用控制指令較多的場(chǎng)合。 1.2 A51
A51是匯編語(yǔ)言編譯器,使用方法為:
A51 sourcefile[編譯控制指令]
或A51 @ commandfile
其中sourcefile為匯編源文件(.asm或.a51)
編譯控制指令的使用與其它匯編如ASM語(yǔ)言類似,可參考其他匯編語(yǔ)言材料。
Commandfile同C51中的Commandfile類似,它使A51使用和修改方便。 2) L51和BL51
2.1 L51
L51是Keil C51軟件包提供的連接/定位器,其功能是將編譯生成的OBJ文件與庫(kù)文件連接定位生成絕對(duì)目標(biāo)文件 (.ABS),其使用方法為:
L51 目標(biāo)文件列表[庫(kù)文件列表] [to outputfile] [連接控制指令]
或 L51 @Commandfile
源程序的多個(gè)模塊分別經(jīng)C51與A51編譯后生成多個(gè)OBJ文件,連接時(shí),這些文件全列于目標(biāo)文件列表中,作為輸入文件 ,如果還需與庫(kù)文件(.LIB)相連接,則庫(kù)文件也必須列在其后。outputfile為輸文件名,缺少時(shí)為第一模塊名,后綴為 .ABS。連接控制指令提供了連接定位時(shí)的所有控制功能。
Commandfile為連接控制文件,其具體內(nèi)容是包括了目標(biāo)文件列表,庫(kù)文件列表及輸出文件、連接控制命令,以取代第 一種繁瑣的格式,由于目標(biāo)模塊庫(kù)文件大多不止1個(gè),因而第2種方法較多見(jiàn),這個(gè)文件名字也可由使用者隨意指定。
2. 2 BL51
BL51也是C51軟件包的連接/定位器,其具有L51的所有功能,此外它還具有以下3點(diǎn)特別之處:
a. 可以連接定位大于64kBytes的程序。
b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)
c. 可用于RTX51操作系統(tǒng)
RTX51是一個(gè)實(shí)時(shí)多任務(wù)操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機(jī)系統(tǒng)軟件向RTOS發(fā)展是 一種趨勢(shì),這種趨勢(shì)對(duì)于186和386及68000系列CPU更為明顯和必須,對(duì)8051因CPU較為簡(jiǎn)單,程序結(jié)構(gòu)等都不太復(fù)雜, RTX51作用顯得不太突出,其專業(yè)版軟件PK51軟件包甚至不包括RTX51Full,而只有一個(gè)RTX51TINY版本的RTOS。RTX51 TINY適用于無(wú)外部RAM的單片機(jī)系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching技術(shù)因使用很少也不作介 紹。
3) dScope51及Monitor51
3.1 dScope51
dScope51是一個(gè)源級(jí)調(diào)試器和模擬器,它可以調(diào)試由C51編譯器、A51匯編器、PL/M-51編譯器及ASM51匯編器產(chǎn)生的程序 。它不需目標(biāo)板(對(duì)于windows操作系統(tǒng)也可通過(guò)mon51連接目標(biāo)板),只能進(jìn)行軟件模擬,但其功能強(qiáng)大,可模擬 CPU及其外圍器件,如內(nèi)部串口,外部I/O及定時(shí)器等,能對(duì)嵌入式軟件功能進(jìn)行有效測(cè)試。
其使用方法為:
DS51[debugfile][INIT(initfile)]
其中debugfile是一個(gè)Hex格式的8051文件,即待調(diào)試的文件其為可選的,可在進(jìn)入dScope51后用load命令裝入。
Initfile為一個(gè)初使化文件,它在啟動(dòng)dScope51后,在debugfile裝入前裝入,裝有一些dScope的初使化參數(shù)及常用調(diào) 試函數(shù)等。在Windows版本的dScope51中可直接用load裝入待調(diào)文件。 3. 2 Monitor 51
Monitor51是一個(gè)監(jiān)控程序通過(guò)PC機(jī)的串口與目標(biāo)板進(jìn)行通信,Monitor操作需要MON51或dScope51 for Windows |