Keil C51使用教程---開發(fā)系統(tǒng)基本知識(一)
Keil C51使用教程---開發(fā)系統(tǒng)基本知識(一)
第一節(jié) 系統(tǒng)概述
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。
Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。
下面詳細介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。
第二節(jié) Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)
C51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。
圖(1) C51工具包整體結(jié)構(gòu)圖
第三節(jié) Keil C51工具包的安裝
1. C51 for Dos
在Windows下直接運行軟件包中DOSC51DOS.exe然后選擇安裝目錄即可。完畢后欲使系統(tǒng)正常工作須進行以下操作(設C:C51為安裝目錄):
修改Autoexec.bat,加入
path=C:C51Bin
Set C51LIB=C:C51LIB
Set C51INC=C:C51INC
然后運行Autoexec.bat
2. C51 for Windows的安裝及注意事項:
在Windows下運行軟件包中WINSetup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝于C:C51目錄下)。然后將軟件包中crack目錄中的文件拷入C:C51Bin目錄下。
第四節(jié) Keil C51工具包各部分功能及使用簡介
1. C51與A51
(1) C51
C51是C語言編譯器,其使用方法為:
C51 sourcefile[編譯控制指令]
或者 C51 @ commandfile
其中sourcefile為C源文件(.C)。大量的編譯控制指令完成C51編譯器的全部功能。包控C51輸出文件C.LST,.OBJ,.I和.SRC文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。
而Commandfile為一個連接控制文件其內(nèi)容包括:.C源文件及各編譯控制指令,它沒有固定的名字,開發(fā)人員可根據(jù)自己的習慣指定,它適于用控制指令較多的場合。
(2) A51
A51是匯編語言編譯器,使用方法為:
A51 sourcefile[編譯控制指令]
或 A51 @ commandfile
其中sourcefile為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編語言材料。
Commandfile同C51中的Commandfile類似,它使A51使用和修改方便。
2. L51和BL51
(1) L51
L51是Keil C51軟件包提供的連接/定位器,其功能是將編譯生成的OBJ文件與庫文件連接定位生成絕對目標文件(.ABS),其使用方法為:
L51 目標文件列表[庫文件列表] [to outputfile] [連接控制指令]
或 L51 @Commandfile
源程序的多個模塊分別經(jīng)C51與A51編譯后生成多個OBJ文件,連接時,這些文件全列于目標文件列表中,作為輸入文件,如果還需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile為連接控制文件,其具體內(nèi)容是包括了目標文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標模塊庫文件大多不止1個,因而第2種方法較多見,這個文件名字也可由使用者隨意指定。
(2) Bl51
BL51也是C51軟件包的連接/定位器,其具有L51的所有功能,此外它還具有以下3點特別之處:
a. 可以連接定位大于64kBytes的程序。
b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)
c. 可用于RTX51操作系統(tǒng)
RTX51是一個實時多任務操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機系統(tǒng)軟件向RTOS發(fā)展是一種趨勢,這種趨勢對于186和386及68K系列CPU更為明顯和必須,對8051因CPU較為簡單,程序結(jié)構(gòu)等都不太復雜,RTX51作用顯得不太突出,其專業(yè)版軟件PK51軟件包甚至不包括RTX51Full,而只有一個RTX51TINY版本的RTOS。RTX51 TINY適用于無外部RAM的單片機系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching技術因使用很少也不作介紹。
3. DScope51,Tscope51及Monitor51
(1) dScope51
dScope51是一個源級調(diào)試器和模擬器,它可以調(diào)試由C51編譯器、A51匯編器、PL/M-51編譯器及ASM-51匯編器產(chǎn)生的程序。它不需目標板(for windows也可通過mon51接目標板),只能進行軟件模擬,但其功能強大,可模擬CPU及其外圍器件,如內(nèi)部串口,外部I/O及定時器等,能對嵌入式軟件功能進行有效測試。
其使用方法為:
DS51[debugfile][INIT(initfile)]
其中debugfile是一個Hex格式的8051文件,即待調(diào)試的文件其為可選的,可在進入dScope51后用load命令裝入。
Initfile為一個初使化文件,它在啟動dScope51后,在debugfile裝入前裝入,裝有一些dScope的初使化參數(shù)及常用調(diào)試函數(shù)等。下面是一個dScope.ini文件(for dos)的內(nèi)容:
Load ....ds518051.iof
Map 0,0xffff
dScope51 for Windows則直接用鼠標進入,然后用load裝入待調(diào)文件。
(2) tScope51
與dScope51不同的是Scope51必須帶目標板,目前它可以通過兩種方式訪問目標板。(1) 通過EMul51在線仿真器,tScope51為該仿真器準備了一個動態(tài)連接文件EMUL51.IOT,但該方法必須配合該仿真器。(2) 通過Monitov51監(jiān)控程序,這種方法是可行的,tScope51為訪問Monitor51專門帶有MON51.IOT連接程序,使用時可通過串口及監(jiān)控程序來調(diào)試目標板。
其使用方法為:
TS51[INIT(file_name.ini)]
其中file_name.ini為一個初使化文件。
進入TS51后,必須裝入IOT文件,可用的有MON51.IOT及EMUL51.IOT兩種,如裝入MON51.IOT:
Load.C:C51TS51MON51.IOT CPUTYPE(80517)
可惜的是tScope51只有for Dos的版本。
(3) Monitor 51
Monitor51是一個監(jiān)控程序通過PC機的串口與目標板進行通信,Monitor操作需要MON51或dScope51 for Windows,后面部分將對Monitor51做較為詳細的介紹。
4. Ishell及uVision
(1) Ishell for Dos
這是一個for Dos的IDE,直接在命令行鍵入Ishell,則進入該環(huán)境,它使用簡單方便。其命令行與DOS命令行具有同樣的功能,對單模塊的Project直接由菜單進行編譯連接,對多模塊的project。則通過批處理,BAT文件進行編譯連接,然后通過菜單控制由dScope51或tScope51對程序進行調(diào)試,因為是for dos的,不做太詳細介紹。
(2) uVision for Windows
uVision for Windows是一個標準的Windows應用程序,它是C51的一個集成軟件開發(fā)平臺,具有源代碼編輯、project管理、集成的make等功能,它的人機界面友好,操作方便,是開發(fā)者的首選,具體配置及使用見第五部分。