2.5 ARM開發(fā)調(diào)試方法
用戶選用ARM處理器開發(fā)嵌入式系統(tǒng)時(shí),選擇合適的開發(fā)工具可以加快開發(fā)進(jìn)度,節(jié)省開發(fā)成本。因此一套含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理及函數(shù)庫的集成開發(fā)環(huán)境(IDE)一般來說是必不可少的,如ARM公司的RealView開發(fā)環(huán)境。至于嵌入式實(shí)時(shí)操作系統(tǒng)、評估板等其他開發(fā)工具則可以根據(jù)應(yīng)用軟件規(guī)模和開發(fā)計(jì)劃選用。
使用集成開發(fā)環(huán)境開發(fā)基于ARM的應(yīng)用軟件,包括編輯、編譯、匯編、鏈接等工作全部在PC機(jī)上即可完成,調(diào)試工作則需要配合其他的模塊或產(chǎn)品方可完成。目前常見的調(diào)試方法有以下幾種。
1.指令集模擬器
部分集成開發(fā)環(huán)境提供了指令集模擬器,可方便用戶在PC機(jī)上完成一部分簡單的調(diào)試工作。但是,由于指令集模擬器與真實(shí)的硬件環(huán)境相差很大,因此即使用戶使用指令集模擬器調(diào)試通過的程序也有可能無法在真實(shí)的硬件環(huán)境下運(yùn)行,用戶最終必須在硬件平臺上完成整個(gè)應(yīng)用的開發(fā)。
2.駐留監(jiān)控軟件
駐留監(jiān)控軟件(Resident Monitors)是一段運(yùn)行在目標(biāo)板上的程序,集成開發(fā)環(huán)境中的調(diào)試軟件通過以太網(wǎng)口、并行端口、串行端口等通信端口與駐留監(jiān)控軟件進(jìn)行交互,由調(diào)試軟件發(fā)布命令通知駐留監(jiān)控軟件控制程序的執(zhí)行、讀寫存儲器、讀寫寄存器、設(shè)置斷點(diǎn)等。
利用駐留監(jiān)控軟件是一種比較低廉有效的調(diào)試方式,不需要任何其他的硬件調(diào)試和仿真設(shè)備。ARM公司的Angel就是該類軟件,大部分嵌入式實(shí)時(shí)操作系統(tǒng)也采用該類軟件進(jìn)行調(diào)試,不同的是在嵌入式實(shí)時(shí)操作系統(tǒng)中,駐留監(jiān)控軟件是作為操作系統(tǒng)的一個(gè)任務(wù)存在的。
駐留監(jiān)控軟件的不便之處在于它對硬件設(shè)備的要求比較高,一般在硬件穩(wěn)定之后才能進(jìn)行應(yīng)用軟件的開發(fā),同時(shí)它占用目標(biāo)板上的一部分資源,而且不能對程序的全速運(yùn)行進(jìn)行完全仿真,所以對一些要求嚴(yán)格的情況不是很適合。
3.JTAG仿真器
JTAG仿真器也稱為JTAG調(diào)試器,是通過ARM芯片的JTAG邊界掃描口進(jìn)行調(diào)試的設(shè)備。JTAG仿真器比較便宜,連接比較方便,通過現(xiàn)有的JTAG邊界掃描口與 ARM處理器核通信,屬于完全非插入式(即不使用片上資源)調(diào)試。它無需目標(biāo)存儲器,不占用目標(biāo)系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。另外,由于JTAG調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行,仿真更接近于目標(biāo)硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數(shù)不匹配、電纜長度的限制等被最小化了。使用集成開發(fā)環(huán)境配合JTAG仿真器進(jìn)行開發(fā)是目前采用最多的一種調(diào)試方式。
4.在線仿真器
在線仿真器使用仿真頭完全取代目標(biāo)板上的ARM處理器,可以完全仿真ARM芯片的行為,提供更進(jìn)一步的調(diào)試功能。但這類仿真器為了能夠全速仿真時(shí)鐘速度高于100MHz的處理器,通常必須采用極其復(fù)雜的設(shè)計(jì)和工藝,因而其價(jià)格比較昂貴。在線仿真器通常用在ARM的硬件開發(fā)中,在軟件的開發(fā)中較少使用。其價(jià)格高昂是在線仿真器難以普及的原因。