劉陽 龍潛 孫永政
當(dāng)前,嵌入式的技術(shù)應(yīng)用越來越廣發(fā),從航天科技到民用產(chǎn)品,嵌入式產(chǎn)品的身影無處不在,而這些嵌入式產(chǎn)品的核心——處理器決定了產(chǎn)品的市場和性能。在32位嵌入式處理器市場中,ARM處理器占有很大份額。ARM不僅是一個(gè)公司、一種技術(shù)也是一種經(jīng)營理念,即由ARM公司提供核心技術(shù),只出售芯片中的IP授權(quán),采取了別具一格的“Chipless模式”(無芯片的芯片企業(yè)),不參與生產(chǎn),而是由合作廠商去生產(chǎn)具體的芯片和產(chǎn)品。
現(xiàn)在由于存儲空間等原因,在嵌入式芯片上編程有較大的困難,選取合適的平臺就顯得很重要。由于Linux是開放源碼的操作系統(tǒng),吸引著全世界的程序員參與到發(fā)展和完善的工作中來,所以Linux保持了穩(wěn)定而且卓越的性能。由于源代碼可以修改、移植,Linux在嵌入式領(lǐng)域中的應(yīng)用也越來越廣。選用Linux作為平臺,可以根據(jù)具體需要自由裁減源碼,打造適合目標(biāo)平臺的環(huán)境,編寫最有效率的應(yīng)用程序。
可以預(yù)見,ARM與Linux在未來已經(jīng)越來越壯大,在嵌入式產(chǎn)品市場上會占有越來越大的份額。在這種形式下,學(xué)習(xí)和研究ARM非常有必要,所以在這里介紹一下關(guān)于基于Linux系統(tǒng)的ARM9嵌入式系統(tǒng)設(shè)計(jì)的基礎(chǔ)理論。
首先進(jìn)行一下ARM開發(fā)環(huán)境的簡介:
根據(jù)功能的不同,ARM應(yīng)用軟件的開發(fā)工具可分為編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、嵌入式實(shí)時(shí)操作系統(tǒng)、函數(shù)庫、評估板、JTAG仿真器、在線仿真器等。因此,一套含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、嵌入式實(shí)時(shí)操作系統(tǒng)及函數(shù)庫的集成開發(fā)環(huán)境一般來說是必不可少的。至于嵌入式實(shí)時(shí)操作系統(tǒng)、評估板等其他開發(fā)工具則可以根據(jù)應(yīng)用軟件規(guī)模和開發(fā)計(jì)劃選用。使用集成開發(fā)環(huán)境開發(fā)基于ARM的應(yīng)用軟件時(shí),其中涉及的編輯、編譯、匯編、鏈接等工作可全部在PC機(jī)上完成,調(diào)試工作則需要配合其他的模塊或產(chǎn)品完成。目前進(jìn)行ARM嵌入式系統(tǒng)開發(fā)常見的開發(fā)工具主要有Real View MDK、IAR EWARM、ADS1.2、WinARM等。
RealView MDK開發(fā)工具是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。RealView MDK集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),支持所有基于ARM的設(shè)備,能夠自動配置啟動代碼,集成了flash燒寫模塊,還具有強(qiáng)大的仿真模擬、性能分析等功能。
IAR Embedded Workbench for ARM是IAR System公司為ARM微處理器開發(fā)的一個(gè)集成開發(fā)環(huán)境。比較其他的ARM開發(fā)環(huán)境,IAR EWARM具有入門容易、使用方便和代碼緊湊等特點(diǎn)。IAR EWARM中包含一個(gè)全軟件的模擬程序,用戶不需要任何硬件支持就可以模擬各種ARM內(nèi)核、外部設(shè)備甚至中斷的軟件運(yùn)行環(huán)境。由于ADS集成開發(fā)環(huán)境已經(jīng)不再更新,因此無法支持新推出的微控制器芯片,而IAR EWARM在持續(xù)的更新環(huán)境中,因此IAR EWARM將成為越來越多的人進(jìn)行嵌入式系統(tǒng)開發(fā)的首選開發(fā)環(huán)境。
基于ARM芯片的應(yīng)用系統(tǒng),多數(shù)為復(fù)雜的片上系統(tǒng)。在該復(fù)雜系統(tǒng)中,多數(shù)硬件模塊都是可配置的,配置工作需要由軟件預(yù)先完成。因此在用戶的應(yīng)用程序運(yùn)行之前,需要專門的一段代碼來完成系統(tǒng)基本的初始化工作。由于此類代碼直接面對處理器內(nèi)核和硬件控制器進(jìn)行編程,所以一般使用匯編語言實(shí)現(xiàn),這里我們稱之為硬件啟動程序。
在應(yīng)用系統(tǒng)的程序設(shè)計(jì)中,如果所有的編程工作都由匯編語言來完成,其工作量巨大,并且不容易移植。由于ARM處理器的運(yùn)算速度高,存儲器的存取速度和存儲量也很高,因此大部分編程工作可以使用c語言來實(shí)現(xiàn)。由此可見,c語言在ARM編程中具有非常重要的地位。
其次介紹一下ARM9嵌入式系統(tǒng)開發(fā)的過程:
第一,嵌入式軟件開發(fā)的特點(diǎn)。學(xué)習(xí)嵌入式開發(fā)的過程,首先要了解嵌入式開發(fā)的特點(diǎn)。嵌入式系統(tǒng)與通用計(jì)算機(jī)在以下幾個(gè)方面的差別比較明顯:
一是人機(jī)交互界面,這是最大的區(qū)別,因?yàn)榍度胧较到y(tǒng)很可能就不存在鍵盤,顯示器等在計(jì)算機(jī)中常見的實(shí)現(xiàn)人機(jī)交互的設(shè)備,它所完成的事情也只能是不同的傳感器的變化情況,并且按照事先規(guī)定好的過程儀式完成相應(yīng)的處理任務(wù);二是功能是有限的,嵌入式系統(tǒng)只能反復(fù)執(zhí)行設(shè)計(jì)時(shí)已經(jīng)定制好的并且在開發(fā)完成后不再變化的功能任務(wù);三是時(shí)間的關(guān)鍵性和穩(wěn)定性,大部分的嵌入式系統(tǒng)因?yàn)楣δ芤髮?shí)時(shí)響應(yīng)并且受到工作環(huán)境的影響很大,需要選擇合理的硬件和保護(hù)措施,保證系統(tǒng)的穩(wěn)定性可以正常運(yùn)行。
除此之外,還要了解嵌入式軟件開發(fā)具有的自身特點(diǎn):
一是需要交叉的開發(fā)環(huán)境;二是引入設(shè)計(jì)方法;三是固化的程序;四是開發(fā)的難度很大。
第二,嵌入式軟件開發(fā)的流程。嵌入式軟件的開發(fā)因?yàn)樗拈_發(fā)難度大等自身特點(diǎn),需要將硬件、軟件、人力資源等集中起來,并進(jìn)行適當(dāng)?shù)慕M合以實(shí)現(xiàn)目標(biāo)應(yīng)用對功能和性能的要求,而且實(shí)時(shí)性和功能一樣重要。這就使嵌入式開發(fā)關(guān)注的方面更廣,精準(zhǔn)度更高。嵌入式軟件開發(fā)的每個(gè)階段都體現(xiàn)著嵌入式開發(fā)的特點(diǎn)。
一是需求分析階段;二是設(shè)計(jì)階段;三是生成代碼階段;四是固化階段。
第三,嵌入式系統(tǒng)的調(diào)試。在進(jìn)行嵌入式軟件開發(fā)過程中,可以選擇不同的調(diào)試方式,但應(yīng)根據(jù)實(shí)際的開發(fā)需求和實(shí)際的條件進(jìn)行選擇,有以下幾種主要的調(diào)試方式。
一是源程序模擬器方式;二是監(jiān)控器方式;三是仿真器方式。
嵌入式系統(tǒng)的調(diào)試方法被分成不同的層次,就調(diào)試方法而言,分為硬件調(diào)試和軟件調(diào)試兩種。在使用硬件調(diào)試的時(shí)候,可以獲得比軟件調(diào)試功能更強(qiáng)大的調(diào)試性能,但是有的時(shí)候會價(jià)格昂貴,需要合適的開發(fā)工具。軟件調(diào)試可以分為操作系統(tǒng)的內(nèi)核調(diào)試和應(yīng)用程序的調(diào)試,前者的操作比較困難,因?yàn)椴僮飨到y(tǒng)內(nèi)核不方便增加一個(gè)調(diào)試器程序,而后者相對比較簡單。
在這里我們只是對ARM9嵌入式系統(tǒng)做一個(gè)基礎(chǔ)理論的講解。嵌入式技術(shù)正在飛速發(fā)展,并期待著各種行業(yè)的深入滲透。我國具有雄厚的制造業(yè)基礎(chǔ),與傳統(tǒng)的制造業(yè)結(jié)合,嵌入式系統(tǒng)有著巨大的市場空間。同時(shí),基于嵌入式的應(yīng)用可技術(shù)創(chuàng)新,將推動新產(chǎn)品、新產(chǎn)業(yè)的誕生。在新的高科技浪潮來臨之際,我國正全力迎接機(jī)遇和挑戰(zhàn),嵌入式領(lǐng)域方興未艾,Linux也越來越成熟,我們需要掌握更新的知識,實(shí)現(xiàn)自我價(jià)值,為祖國貢獻(xiàn)力量!
參考文獻(xiàn):
[1] 馬忠梅,馬廣云,徐穎慧,等. ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)(2版)[M].北京:北京航空航天大學(xué)出版社,2007.
[2] 馬忠梅,李善平,等. ARM&Linux嵌入式系統(tǒng)教程(3版)[M].北京:北京航空航天大學(xué)出版社,2014.
作者簡介:劉陽(1993—),男,遼寧盤錦人,沈陽理工大學(xué)學(xué)生。
龍潛(1995—),男,江蘇連云港人,沈陽理工大學(xué)學(xué)生。
孫永政(1994—),男,遼寧大連人,沈陽理工大學(xué)學(xué)生。