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