rm處理器在全球范圍的流行,32位的RISC嵌入式處理器已經成為嵌入式應用和設計的主流。與國內大量應用的8位單片機相比,32位的嵌入式CPU有著非常大的優勢,它為嵌入式設計帶來豐富的硬件功能和額外的性能,使得整個嵌入式系統的升級只需通過軟件的升級即可實現。而8位處理器通常受到的64K軟件限制也不存在了,設計者幾乎可以任意選擇多任務操作系統,并將應用軟件設計得復雜龐大,真正體現“硬件軟件化”的設計思想。
目前,國內熟悉8位處理器開發的工程師非常多,開發工具和手段也很豐富,并且價格較低。而32位處理器的開發與8位處理器的開發則有著許多明顯的不同。
由于32位CPU的資源豐富,指令集相對龐大,而且,系統軟件比較復雜,所以,通常在開發時要選用相應的RTOS來對應用軟件中的各個任務進行調度。軟件設計工程師需要學習全新的RTOS技術,掌握底層軟件、系統軟件和應用軟件的設計和調試方法。這對于開發者來說是一個新的挑戰。
當然,RTOS的引入,也將給嵌入式開發商帶來軟件的模塊化和可移植化等好處,為軟件的工程化管理做好準備。
在開發8位處理器時,通常采用在線仿真器ICE(In-Circuit-Emulator),ICE通過插座或者相應的夾具替代CPU來進行仿真和開發工作。而對于32位嵌入式處理器來說,因其過高的時鐘頻率(50MHZ?至400MHZ以上)和復雜的封裝形式(如BGA)導致ICE很難勝任開發工具的工作。CPU廠商借助于邊界掃描接口(JTAG口)來提供調試信息,供開發者進行開發。
JTAG口通常是一個14Pin或20Pin的插座,JTAG調試器(或稱JTAG仿真器)因為可直接從CPU獲取調試信息而使得該產品的設計簡化,從而使得價格要低于ICE。對于一個8位的系統開發來說,設計者只需按照硬件設計及調試、軟件(匯編或C語言)編程、定位引導、軟件調試、系統聯調等過程來進行即可,應用軟件的開發通常在硬件之后,且應用軟件包是不能通用的。
對于一個32位的嵌入式系統則不同。在硬件設計開發的同時,需要有實時多任務操作系統環境,軟件工程師可以同時進行應用軟件包的開發和調試。在硬件調試結束時,應進行BSP(板級支持包)的設計和調試。在BSP調試通過后,方可進行系統軟件和應用軟件的聯調。通常應用軟件的開發可以單獨進行。更換CPU?或硬件平臺后,應用軟件包是通用的(要基于同樣的RTOS)。
那么,開發一個32位的嵌入式系統需要哪些工具和環境呢?首先需要選擇一個合適的多任務操作系統。目前,商用的RTOS比較多,如Linux、Nucleus、WinCE、VxWorkx等。用戶可根據系統的技術要求和商業要求,選擇合適的一種。另外,要選擇相應的編譯工具和調試環境。
根據所選用的RTOS和編程語言(C或C++)來確定要使用的編譯器。對于ARM系列CPU來說,比較常見的有arm公司的SDT和ADS,以及免費的GNU等。
許多廠商將編譯器(Compiler)、連接器(Linker)、定位器(Locater)、模擬器(Simulator)和監控調試器(Monitor?Debugger)作為一個整體提供給用戶。這通常稱為集成開發環境IDE(Integrated?Development?Environment)。選用IDE將給調試帶來許多方便。
再者,要選擇合適的JTAG仿真器。JTAG仿真器的一端通過JTAG連接電纜與目標板相連,另一端則與主機的調試環境相連。與主機的連接方式通常有三種。一是并口方式,一是USB口方式,另一種是網口方式。這三種方式在代碼下載速度、連接方便性、調試資源共享性等方面均有所不同,用戶可以根據經費、技術方案要求、主機環境等實際情況來選擇。另外,JTAG的主頻也是影響?JTAG仿真器速度的重要技術指標,越快速的JTAG仿真器,其JTAG主頻也越高。
與ICE開發方式相似,JTAG仿真器也提供邏輯追蹤功能,以確保硬件調試和軟硬件聯調的順利進行。該功能需要增加額外的費用,因而建議只在進行復雜的系統級開發項目中選購。
好的JTAG仿真器還應該支持任務級調試。其調試環境除具有豐富的調試功能,良好的調試界面外,還應該能夠“認識”各種不同類型的RTOS。這樣,用戶在進行基于RTOS的軟件調試時,能夠直接對各種任務進行操作。如果JTAG仿真器不能支持任務的調試,那么,將給軟件開發工程師帶來諸多不便,影響開發進度。
32位嵌入式系統的開發過程中存在其特有的技術難點,因此開發者對其要有充分的心理準備并做出相應的對策。BSP的開發和調試?在硬件調試完成后,就需要進行實時操作系統(RTOS)的移植。其中最主要的就是BSP的開發和調試。在整個嵌入式系統中,應用軟件通過對系統軟件的調用來完成各種應用功能。而系統軟件則是通過BSP來完成與硬件設備的握手連接。所以,BSP的性能將影響整個系統的可靠性。
ARM處理器在世界各地都很流行。32位RISC嵌入式處理器已成為嵌入式應用和設計的主流。與國內廣泛使用的8位MCU相比,32位嵌入式CPU具有很大的優勢。它為嵌入式設計帶來了豐富的硬件功能和附加性能,使得整個嵌入式系統的升級只需要通過軟件的升級來實現。不存在 8 位處理器通常的 64K 軟件限制。設計者幾乎可以隨意選擇多任務操作系統,將應用軟件設計得復雜龐大,真正體現了“硬件和軟件”的設計思想。
目前國內熟悉8位處理器開發的工程師較多,開發工具和手段豐富,價格低廉。32位處理器的發展與8位處理器的發展有很多明顯的區別。
由于 32 位 CPU 資源豐富,指令集比較大,系統軟件復雜,應用軟件中的每個任務都應該選擇相應的 RTOS 來調度。軟件設計工程師需要學習新的RTOS技術,掌握底層軟件、系統軟件和應用軟件的設計和調試方法。這對開發者來說是一個新的挑戰。
當然,RTOS的引入也會給嵌入式開發者帶來軟件模塊化、可移植性等好處,為軟件工程管理做好準備。
在開發 8 位處理器時,通常使用 ice(電路仿真器)。Ice通過socket或相應的夾具代替CPU進行仿真開發。對于 32 位嵌入式處理器,由于其時鐘頻率高(50MHz 最高可達 400MHz)和復雜的封裝形式(如 BGA),使得ice 難以勝任開發工具。CPU廠商通過邊界掃 描接口(JTAG端口)提供調試信息供開發者開發。
JTAG 端口通常是 14pin 或 20pin 插座。JTAG調試器(或JTAG仿真器)簡化了產品的設計,因為它可以直接從CPU獲取調試信息,價格比ice低。對于 8 位系統開發,設計者只需遵循硬件設計與調試、軟件(匯編或 C 語言)編程、定位引導、軟件調試、系統聯調等過程。硬件落后,應用軟件包不通用。
對于 32 位嵌入式系統,情況有所不同。在硬件設計開發的同時,還需要一個實時的多任務操作系統環境。軟件工程師可以同時開發和調試應用軟件包。硬件調試結束后,進行BSP(板級支持包)的設計和調試。系統軟件和應用軟件的聯合調試需要通過BSP調試后才能進行。通常,應用軟件的開發可以分開進行。更換CPU或硬件平臺,應用軟件包通用(基于相同的RTOS)。