ARM處理器在全球范圍的流行,,32位的RISC嵌入式處理器已經(jīng)成為嵌入式應(yīng)用和設(shè)計(jì)的主流。與國(guó)內(nèi)大量應(yīng)用的8位單片機(jī)相比,,32位的嵌入式CPU有著非常大的優(yōu)勢(shì),,它為嵌入式設(shè)計(jì)帶來豐富的硬件功能和額外的性能,,使得整個(gè)嵌入式系統(tǒng)的升級(jí)只需通過軟件的升級(jí)即可實(shí)現(xiàn)。而8位處理器通常受到的64K軟件限制也不存在了,,設(shè)計(jì)者幾乎可以任意選擇多任務(wù)操作系統(tǒng),,并將應(yīng)用軟件設(shè)計(jì)得復(fù)雜龐大,真正體現(xiàn)“硬件軟件化”的設(shè)計(jì)思想,。
什么發(fā)生了改變
目前,,國(guó)內(nèi)熟悉8位處理器開發(fā)的工程師非常多,開發(fā)工具和手段也很豐富,,并且價(jià)格較低,。而32位處理器的開發(fā)與8位處理器的開發(fā)則有著許多明顯的不同。
第一,,實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS)引入32位嵌入式系統(tǒng),。
由于32位CPU的資源豐富,指令集相對(duì)龐大,,而且,系統(tǒng)軟件比較復(fù)雜,,所以,,通常在開發(fā)時(shí)要選用相應(yīng)的RTOS來對(duì)應(yīng)用軟件中的各個(gè)任務(wù)進(jìn)行調(diào)度。軟件設(shè)計(jì)工程師需要學(xué)習(xí)全新的RTOS技術(shù),,掌握底層軟件,、系統(tǒng)軟件和應(yīng)用軟件的設(shè)計(jì)和調(diào)試方法,。這對(duì)于開發(fā)者來說是一個(gè)新的挑戰(zhàn)。
當(dāng)然,,RTOS的引入,,也將給嵌入式開發(fā)商帶來軟件的模塊化和可移植化等好處,為軟件的工程化管理做好準(zhǔn)備,。
第二,,調(diào)試的硬件接口發(fā)生改變。
在開發(fā)8位處理器時(shí),,通常采用在線仿真器ICE(In-Circuit-Emulator),,ICE通過插座或者相應(yīng)的夾具替代CPU來進(jìn)行仿真和開發(fā) 工作。而對(duì)于32位嵌入式處理器來說,,因其過高的時(shí)鐘頻率(50MHZ 至400MHZ以上)和復(fù)雜的封裝形式(如BGA)導(dǎo)致ICE很難勝任開發(fā)工具的 工作,。CPU廠商借助于邊界掃描接口(JTAG口)來提供調(diào)試信息,供開發(fā)者進(jìn)行開發(fā),。
JTAG口通常是一個(gè)14Pin或20Pin的插座,,JTAG調(diào)試器(或稱JTAG仿真器)因?yàn)榭芍苯訌腃PU獲取調(diào)試信息而使得該產(chǎn)品的設(shè)計(jì)簡(jiǎn)化,從而使得價(jià)格要低于ICE,。
第三,,系統(tǒng)的開發(fā)方式產(chǎn)生變化。
對(duì)于一個(gè)8位的系統(tǒng)開發(fā)來說,,設(shè)計(jì)者只需按照硬件設(shè)計(jì)及調(diào)試,、軟件(匯編或C語言)編程、定位引導(dǎo),、軟件調(diào)試,、系統(tǒng)聯(lián)調(diào)等過程來進(jìn)行即可,應(yīng)用軟件的開發(fā)通常在硬件之后,,且應(yīng)用軟件包是不能通用的,。
對(duì)于一個(gè)32位的嵌入式系統(tǒng)則不同。在硬件設(shè)計(jì)開發(fā)的同時(shí),,需要有實(shí)時(shí)多任務(wù)操作系統(tǒng)環(huán)境,,軟件工程師可以同時(shí)進(jìn)行應(yīng)用軟件包的開發(fā)和調(diào)試。在硬件調(diào)試 結(jié)束時(shí),,應(yīng)進(jìn)行BSP(板級(jí)支持包)的設(shè)計(jì)和調(diào)試,。在BSP調(diào)試通過后,方可進(jìn)行系統(tǒng)軟件和應(yīng)用軟件的聯(lián)調(diào),。通常應(yīng)用軟件的開發(fā)可以單獨(dú)進(jìn)行,。更換 CPU 或硬件平臺(tái)后,應(yīng)用軟件包是通用的(要基于同樣的RTOS),。
那么,,開發(fā)一個(gè)32位的嵌入式系統(tǒng)需要哪些工具和環(huán)境呢?
首先需要選擇一個(gè)合適的多任務(wù)操作系統(tǒng),。
目前,商用的RTOS比較多,,如Linux,、Nucleus、WinCE,、VxWorkx等,。用戶可根據(jù)系統(tǒng)的技術(shù)要求和商業(yè)要求,選擇合適的一種,。
另外,,要選擇相應(yīng)的編譯工具和調(diào)試環(huán)境。
根據(jù)所選用的RTOS和編程語言(C或C++)來確定要使用的編譯器,。對(duì)于ARM系列CPU來說,,比較常見的有arm公司的SDT和ADS,以及免費(fèi)的GNU等,。
許多廠商將編譯器(Compiler),、連接器(Linker)、定位器(Locater),、模擬器(Simulator)和監(jiān)控調(diào)試器 (Monitor Debugger)作為一個(gè)整體提供給用戶,。這通常稱為集成開發(fā)環(huán)境 IDE(Integrated Development Environment)。選用IDE將給調(diào)試帶來許多方便,。
再者,,要選擇合適的JTAG仿真器。JTAG仿真器的一端通過JTAG連接電纜與目標(biāo)板相連,,另一端則與主機(jī)的調(diào)試環(huán)境相連,。與主機(jī)的連接方式通常有三種。一是并口方 式,,一是USB口方式,,另一種是網(wǎng)口方式。這三種方式在代碼下載速度,、連接方便性,、調(diào)試資源共享性等方面均有所不同,用戶可以根據(jù)經(jīng)費(fèi),、技術(shù)方案要求,、主 機(jī)環(huán)境等實(shí)際情況來選擇。另外,,JTAG的主頻也是影響 JTAG仿真器速度的重要技術(shù)指標(biāo),,越快速的JTAG仿真器,其JTAG主頻也越高,。
與ICE開發(fā)方式相似,,JTAG仿真器也提供邏輯追蹤功能,以確保硬件調(diào)試和軟硬件聯(lián)調(diào)的順利進(jìn)行,。該功能需要增加額外的費(fèi)用,,因而建議只在進(jìn)行復(fù)雜的系統(tǒng)級(jí)開發(fā)項(xiàng)目中選購。
好的JTAG仿真器還應(yīng)該支持任務(wù)級(jí)調(diào)試,。其調(diào)試環(huán)境除具有豐富的調(diào)試功能,,良好的調(diào)試界面外,還應(yīng)該能夠“認(rèn)識(shí)”各種不同類型的RTOS,。這樣,,用戶 在進(jìn)行基于RTOS的軟件調(diào)試時(shí),能夠直接對(duì)各種任務(wù)進(jìn)行操作,。如果JTAG仿真器不能支持任務(wù)的調(diào)試,,那么,將給軟件開發(fā)工程師帶來諸多不便,,影響開發(fā) 進(jìn)度,。
32位嵌入式系統(tǒng)的開發(fā)過程中存在其特有的技術(shù)難點(diǎn),因此開發(fā)者對(duì)其要有充分的心理準(zhǔn)備并做出相應(yīng)的對(duì)策,。
BSP的開發(fā)和調(diào)試 在硬件調(diào)試完成后,,就需要進(jìn)行實(shí)時(shí)操作系統(tǒng)(RTOS)的移植。其中最主要的就是BSP的開發(fā)和調(diào)試,。在整個(gè)嵌入式系統(tǒng)中,,應(yīng)用軟 件通過對(duì)系統(tǒng)軟件的調(diào)用來完成各種應(yīng)用功能。而系統(tǒng)軟件則是通過BSP來完成與硬件設(shè)備的握手連接,。所以,,BSP的性能將影響整個(gè)系統(tǒng)的可靠性。
由于操作系統(tǒng)(RTOS)廠商提供的開發(fā)環(huán)境的建立,,是基于BSP的正常工作,,只有在BSP工作正常后,用戶才能“看到”整個(gè)系統(tǒng)硬件資源,。因此,,在此之前,用戶對(duì)BSP的調(diào)試幾乎是在“盲目”中進(jìn)行的,。BSP的開發(fā)調(diào)試有時(shí)要花費(fèi)一至兩個(gè)月甚至更長(zhǎng)的時(shí)間,。
解決的辦法似乎不多。一是提高工程師的水平,,在CPU的掌握,、目標(biāo)板硬件及周邊驅(qū)動(dòng)設(shè)備的熟悉、深入了解操作系統(tǒng)(RTOS)的工作機(jī)制、系統(tǒng)的資源配置等方面加強(qiáng)學(xué)習(xí);另外,,要選用好的JTAG仿真器或其它工具,。
應(yīng)用軟件的并行開發(fā) 由于越來越強(qiáng)烈的快速上市要求,嵌入式系統(tǒng)的開發(fā)周期越來越短,。這就必然要求在硬件開發(fā)的同時(shí),,能夠進(jìn)行軟件的開發(fā)。一方面,,用戶 可以在一塊標(biāo)準(zhǔn)的評(píng)估板上來開發(fā)一部分軟件,,待實(shí)際目標(biāo)板硬件和BSP完成后,再進(jìn)行系統(tǒng)級(jí)的調(diào)試和開發(fā),。另一方面,,用戶可以借助實(shí)時(shí)操作系統(tǒng) (RTOS)廠商提供的虛擬環(huán)境來進(jìn)行軟件開發(fā)調(diào)試,要開發(fā)和調(diào)試的軟件幾乎不受任何限制,。待實(shí)際硬件平臺(tái)完成后,,只須重新編譯連接,即可下載到目標(biāo)上運(yùn) 行,。注意在選用RTOS時(shí),,增加該工具環(huán)境。