基于ARM的電子系統(tǒng)設(shè)計(jì)
|
摘要:本文簡(jiǎn)單介紹了arm系列處理的結(jié)構(gòu)和技術(shù)特性。針對(duì)目前應(yīng)廣泛的arm7,詳細(xì)介紹了相應(yīng)的軟件工具和硬件工具以及操作系統(tǒng),并構(gòu)建了一個(gè)pda方案來(lái)說(shuō)明其實(shí)際應(yīng)用。 關(guān)鍵詞:arm soc pda 一、引言 作為soc(system on chip)的典型應(yīng)用,和持電話、機(jī)頂盒、數(shù)碼像機(jī)、gps、個(gè)為數(shù)字助理以及因特網(wǎng)設(shè)備等產(chǎn)品的市場(chǎng)需求越來(lái)越大。目前,基于arm的處理器以其高速度、低功耗等諸多優(yōu)異的性能而成為上述各類產(chǎn)品中選用較多的處理器。 二、arm內(nèi)核 arm內(nèi)核分為arm7、arm9、arm10以及strongarm等幾類。其中每一類又根據(jù)其各自包含的功能模塊而分成多種構(gòu)成(見(jiàn)表1) 在arm內(nèi)核中有四個(gè)功能模塊可供生產(chǎn)廠商根據(jù)不同用戶的不同要求來(lái)配置生產(chǎn)。這四個(gè)模塊分別用t、d、m和i來(lái)表示。 t:表示thumb,該內(nèi)核可從16位指令集擴(kuò)充到32位arm指令集。 d:表示debug,該內(nèi)核中放置了用于調(diào)試的結(jié)構(gòu),通常它為一個(gè)邊界掃描鏈jtag,可使cpu進(jìn)入調(diào)試模式,從而可方便地進(jìn)行斷點(diǎn)設(shè)置、單步調(diào)試。 m:表示multiplier,是8位乘法器。 i:表示embeddedice logic,用于實(shí)現(xiàn)斷點(diǎn)觀測(cè)及變量觀測(cè)的邏輯電路部分,其中的tap控制器可接入到邊界掃描鏈。 arm7 arm7采用armv4t(newman)結(jié)構(gòu),分為三級(jí)流水,空間統(tǒng)一的指令與數(shù)據(jù)cache,平均功耗為0.6mw/mhz,時(shí)鐘速度為66mhz,每條指令平均執(zhí)行1.9個(gè)時(shí)鐘周期。其中的arm710,arm720和arm740為內(nèi)帶cache的arm核。 arm9 arm9 采用armv4t(harvard)結(jié)構(gòu),五級(jí)流水處理以及分離的cache結(jié)構(gòu),平均功耗為0.7mw/mhz。時(shí)鐘速度為120mhz- 200mhz,每條指令平均執(zhí)行1.5個(gè)時(shí)鐘周期。與arm7系列相似,其中的arm920、arm940和arm9e為含cache的cpu核。性能為 132mips(120mhz時(shí)鐘,3.3v供)或220mips(200mhz時(shí)鐘)。 arm10 arm10采用armv5t結(jié)構(gòu),六級(jí)流水處理,指令與數(shù)據(jù)分離的cache結(jié)構(gòu)。平均功耗為1000mw,時(shí)鐘速度為300mhz,每條指令平均執(zhí)行1.2個(gè)周期,其中arm1020為帶cache的版本。 arm10tdmi:與所有arm核在二進(jìn)制級(jí)代碼兼容,內(nèi)帶高速32x16mac,預(yù)留dsp協(xié)處理器接口。其中的vfp10(矢量浮點(diǎn)單元)為七級(jí)流水結(jié)構(gòu)。 arm1020t: arm10tdmi+32ki&d caches+mmu結(jié)構(gòu),300mhz時(shí)鐘,功耗為1w(2.0v供電)或00mw(1.5v供電)。指令cache和數(shù)據(jù)cache分別為32k,寬度為64bits。能夠技術(shù)多種商用操作系統(tǒng)。適用于下一代高性能手持式因特網(wǎng)設(shè)備及數(shù)字式消費(fèi)類應(yīng)用。 strongarm strongarm處理器采用armv4t的五級(jí)流水結(jié)構(gòu)。目前有sa110、sa1100以及sa1110等三個(gè)版本(見(jiàn)表2)。 三、arm7系列開(kāi)發(fā)工具及開(kāi)發(fā)環(huán)境 1.軟件開(kāi)發(fā)工具 green hills tools:green hills的arm軟件工具包能夠支持arm6、arm7、arm7m、arm7tm、arm7tdmi、arm7500fe、arm8、arm9、 arm10以及strongarm等系列處理器。它由編譯器、交叉工具包、集成開(kāi)發(fā)環(huán)境和調(diào)試接口等組成。 compiler:高優(yōu)化性能的c/c++編譯器。 cross tool chain:交叉開(kāi)發(fā)工具。包括匯編器(assembler)、連接器(linker)、庫(kù)函數(shù)以及目標(biāo)代碼格式轉(zhuǎn)換器。 multi:集成開(kāi)發(fā)環(huán)境。green hills的multi集成環(huán)境綜合了軟件開(kāi)發(fā)和調(diào)試過(guò)程中要用到的各種工具,如源級(jí)調(diào)試器、工程管理器、版本控制器、文本編輯器、性能分析器、圖形瀏覽器。運(yùn)行出錯(cuò)檢測(cè)器、arm指令集仿真器以及底層調(diào)試接口等。用戶可方便地在multi環(huán)境中利用上述工具來(lái)開(kāi)發(fā)應(yīng)用程序。 servers:底層調(diào)試接口。green hills的servers提供兩類調(diào)試接口供用戶選擇使用。一類用于angel監(jiān)控器、在線仿真器以及epi公司的jeeni jtafg仿真器等;另一類則用于商用操作系統(tǒng)及用戶自己編寫的操作系統(tǒng)。 asdt2.5:sdt2.5是arm公司提供的一大套由c編譯器、連接定位器、c語(yǔ)言調(diào)試器和angel監(jiān)控器組成的開(kāi)發(fā)軟件包。由于價(jià)格比較適中而應(yīng)用比較廣泛。 2.硬件開(kāi)發(fā)工具 arm 的硬件開(kāi)發(fā)工具主要包括兩類仿真器,一是jtag仿真器,二是全功能在線仿真器。前者是利用arm處理器中的調(diào)試模塊的功能,通過(guò)其jtag邊界掃描口來(lái)與仿真器連接。這種方式的仿真器比較便宜,連接比較方便。但由于僅通過(guò)十幾條線來(lái)調(diào)試,因而功能有局限。目前arm處理器的jtag仿真器在市場(chǎng)上比較流行的是epi公司的jeeni和majic,著名的德國(guó)lauterbach公司有一款通用jtag/bdm/once仿真器trace32-icd也能夠很好的支持arm系列處理器。對(duì)于全功能在線仿真器來(lái)說(shuō),由于其信真頭完全取代目標(biāo)板上的cpu,因而功能非常強(qiáng)大。但這類仿真器為了能夠全速仿真時(shí)鐘速度高于100mhz的處理器,通常必須采用極其復(fù)雜的設(shè)計(jì)和工藝,因而其價(jià)格比較昂貴。lauterbach公司的trace32-fire就是這類產(chǎn)品的佼佼者。 jeeni仿真器:這是一種價(jià)位較低的jtag仿真器。它能夠很好地與sdt2.5工具連接。用戶可使用其編譯器和調(diào)試界面。 majic仿真器:與jeeni相比,majic能夠通過(guò)100base-t以太網(wǎng)與主機(jī)相連,支持多處理器和低電壓i/o。 trace32 -icd:這是一種通用jtag/bdm/once仿真器,既能夠支持motorola系列的68k、coldfire、mpc5xx/8xx、 mpc82xx,又能夠通過(guò)更換模塊來(lái)支持arm7系列cpu.同時(shí)也能夠支持siemens的once方式,如tricore、c166等。另外, trace32-icd提供獨(dú)特的risc邏輯追蹤功能。 trace32fire:這是全功能ice,提供強(qiáng)大的調(diào)試和偵錯(cuò)功能。 四、支持arm7的rtos及其系統(tǒng)開(kāi)發(fā) 目前在國(guó)內(nèi),arm7的應(yīng)用較多,arm9、arm10的使用尚未開(kāi)始。在引,我們以arm7的應(yīng)用來(lái)例來(lái)說(shuō)明arm7系統(tǒng)的構(gòu)成及其os的應(yīng)用。 arm7處理的生產(chǎn)廠商很多,他們僅須向arm公司購(gòu)買arm7核的license便可進(jìn)行生產(chǎn)。目前常用到的arm7芯片有tmel公司的at91m40400、cirrus logic公司的cl-ps7500fe/ep7211等、hyundai公司的gms30c7201、linkup公司的l7200、samsung公司的ks32c4100/50100等等。另外,ti公司、lsi logic、ns公司、nec公司以及philips公司也生產(chǎn)相應(yīng)的arm7芯片。雖然眾多的廠商提供多種瑾的處理器,但是除外部一些功能模塊外,它們的內(nèi)核是相同的,因而在軟件編程有調(diào)試上是相同的。 在多種商用rtos(實(shí)時(shí)多任務(wù)操作系統(tǒng))中,nucleus plus實(shí)時(shí)多任務(wù)操作系統(tǒng)是一種帶源代碼的os,目前非常流行。在國(guó)內(nèi)也擁有大量的實(shí)際應(yīng)用。nucleus是最早支持arm系列cpu的操作系統(tǒng)之一,它提供內(nèi)核、圖形界而模塊、通訊協(xié)議模塊、文件系統(tǒng)以及嵌入式網(wǎng)上瀏覽器等等完整的解決方案。國(guó)內(nèi)許多著名的公司均已選用nucleus在arm平臺(tái)上實(shí)現(xiàn)pda、stb、dvd、pos、gps、手機(jī)以及智能終端等。 五、基于arm7的pda方案 arm7系列芯片具有高速、低功耗、集成度高等特點(diǎn),非常適合用于開(kāi)發(fā)pda設(shè)備。在此介紹一個(gè)韓國(guó)現(xiàn)代電子提供的以gms30c7201芯片為核心的pda方案(見(jiàn)圖1)。 *操作系統(tǒng):nucleus plus *編譯器:arm sdt / green hill *仿真器:jenni / trace32-icd 在這一平臺(tái)上,我們選用ati公司的nucleus操作系統(tǒng)及相應(yīng)的文件系統(tǒng)、圖形軟件包、網(wǎng)絡(luò)模塊和瀏覽器來(lái)實(shí)現(xiàn)pda的各種功能?,F(xiàn)在已經(jīng)完成了大部分的軟件移植工作:mucleus內(nèi)核、文件系統(tǒng)、圖形軟件包、tcp/ip網(wǎng)絡(luò)模塊(使用ppp拔號(hào)上網(wǎng))以及各種片上設(shè)備的驅(qū)動(dòng)、瀏覽器的移植也即將完成。 |
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。