摘要:介紹了Keil的最新集成開發(fā)環(huán)境μVision 4。重點討論了μVision 4的仿真環(huán)境的建立和C8051F321串行驅(qū)動程序的仿真調(diào)試過程,實現(xiàn)了串行驅(qū)動程序仿真腳本。
關鍵詞:μVision;C8051F321;串行驅(qū)動程序;仿真腳本
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2009)36-10308-02
Application of Keil μVision4 in Debug and Simulation of C8051F321
HUANG Zhi-Ping, TANG Ya-qun
(Center of Modern Teaching Technology, Hunan University of Science and Engineering, Yongzhou 425100, China)
Abstract: The newest IDE Keil μVision4 is introduced. Both the setup of simulationenvironment of μVision4 and the process to debugging and simulating the C8051F321 uart driver are discussed, and the simulative script of the uart driver is realized.
Key words: μVision4; C8051F321; uart driver; simulative script
Keil μVision4 IDE是Keil Software Inc.今年正式推出的Windows環(huán)境下的最新嵌入式軟件開發(fā)平臺,是目前最優(yōu)秀的嵌入式應用程序開發(fā)平臺之一。本文將在該平臺上討論C8051F321串行驅(qū)動程序的仿真環(huán)境的建立和仿真調(diào)試過程。
1 μVision4 簡介
μVision4整合了編輯器、項目管理器和生成工具,集成了開發(fā)嵌入式應用程序的所有工具:C/C++編譯器、宏匯編程序、連接程序與定位程序及Hex文件生成器等。尤其值得稱道的是其真正源碼級與匯編級的調(diào)試器具有高速CPU及外設仿真模擬器,可以仿真模擬大部分微控制器的片上外設。
μVision4 的運行模式有構(gòu)建模式和調(diào)試模式兩種。其構(gòu)建模式運行界面如圖1所示,主要包括菜單、工具欄、項目管理欄、源碼編輯欄、Build輸出欄等。
μVision4的調(diào)試模式運行界面如圖2所示,主要包括菜單、工具欄、寄存器欄、反匯編欄、源碼編輯欄、調(diào)試命令欄、調(diào)用堆棧欄等。
2 μVision4仿真環(huán)境的建立
μVision4提供了一種類C的仿真調(diào)試腳本,與C語言的主要區(qū)別在于μVision4的腳本不區(qū)分大小寫、沒有預處理、不支持全局變量、所用符號需通過DEFINE命令定義、函數(shù)不支持指針變量、返回指針、遞歸調(diào)用和KD形式的形參聲明。
在μVision4中,可以通過以下步驟來建立仿真調(diào)試環(huán)境:
1) 獲取可用虛擬寄存器
在μVision4仿真調(diào)試環(huán)境支持的微控制器中,微控制器的外設虛擬寄存器的名稱因型號不同而異,需要在調(diào)試模式下,在調(diào)試命令輸入欄中,使用dir vtreg 命令可以獲取其詳細清單。如圖3所示是C8051F321的部分虛擬寄存器的名稱、類型和初始值清單。
2) 編寫串行驅(qū)動程序腳本
下面以調(diào)試C8051F321的串行驅(qū)動程序為例,說明如何編寫仿真腳本。
需要調(diào)試的內(nèi)容是經(jīng)串口0輸入兩個16位整數(shù)及所用進行的運算;經(jīng)過MCU處理后,再由串口0輸出結(jié)果。
從圖3中,可以得到與串行口有關的三個虛擬寄存器為S0IN(串口0輸入)、S0OUT(串口0輸出)和S0TIME(串口0定時設置)。根據(jù)調(diào)試內(nèi)容,確定需要編寫的腳本程序,并將其保存到腳本文件init.ini中。在本調(diào)試腳本中,信號函數(shù)輸入的兩個16位數(shù)是92和48,并進行減法運算。所使用的腳本清單如下:
signal void inputNumber(){
S0TIME = 1;//串口0設置為精確定時
//輸入第一個數(shù)
S0IN = '9';//發(fā)送數(shù)字 9
twatch(10000);//延時一萬個周期
S0IN = '2'; //發(fā)送數(shù)字 2
twatch(10000); //延時一萬個周期
S0IN = '\'; //發(fā)送換行符 '\'
twatch(100000);//延時十萬個周期
//輸入第二個數(shù)
S0IN = '4';//發(fā)送數(shù)字 4
twatch(10000);
S0IN = '8'; //發(fā)送數(shù)字 8
twatch(10000); //延時一萬個周期
S0IN = '\';
twatch(100000); //延時十萬個周期
//輸入運算符
S0IN = '-'; //發(fā)送運算符'-'
twatch(10000); //延時一萬個周期
}
//在Toolbox中定義啟動信號函數(shù)按鍵
define button \"Go\", \"inputNumber()\"
3) 添加調(diào)試腳本文件
完成調(diào)試腳本文件的編寫之后,還需要按照圖4所示將其加載到調(diào)試選項中。
經(jīng)過以上三步,仿真調(diào)試C8051F321的串口驅(qū)動程序的環(huán)境準備就緒。
3 仿真調(diào)試過程
嵌入式應用程序的仿真調(diào)試過程并不繁瑣,可以在工具欄中的按鍵圖標,按照如下五個步驟進行:1) 選擇編譯源碼文件;2) 選擇打開調(diào)試模式;3) 打開Toolbox和UART #1窗口;4) 運行程序;5) 按下Toolbox中的Go按鍵。圖5給出了仿真調(diào)試的結(jié)果。
從圖5的仿真調(diào)試結(jié)果中,可以看出結(jié)果正是所期望的。這說明通過仿真調(diào)試,達到了對嵌入式應用軟件進行調(diào)試的目的。
4 總結(jié)
通過以上討論,對在μVision4仿真調(diào)試環(huán)境下進行嵌入式應用軟件的仿真調(diào)試有了較全面的了解,本人希望能夠為大家在實際開發(fā)中更好地使用μVision4這一強大開發(fā)平臺起到拋磚引玉的作用。
參考文獻:
[1] Keil Software Inc.μVision@ IDE User's Guide[S].Keil Software Inc,2009.
[2] Keil Software Inc.Cx51 Compiler User's Guide[S].Keil Software Inc,2009.
[3] Silicon Laboratories.C8051F320/1:Full Speed USB,16k ISP Flash MCU Family,Rev 1.4[S].Silicon Laboratories,2009.