嵌入式ARM系統原理與實例開發(第二版)_第1頁
嵌入式ARM系統原理與實例開發(第二版)_第2頁
嵌入式ARM系統原理與實例開發(第二版)_第3頁
嵌入式ARM系統原理與實例開發(第二版)_第4頁
嵌入式ARM系統原理與實例開發(第二版)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

嵌入式ARM系統原理與實例開發(第二版)12ARM處理器概述

ARM硬件體系結構

3ARM處理器內部結構

第2章嵌入式ARM處理器與開發工具4開發工具與開發流程介紹

12/14/20232ARMLtd成立于1990年11月前身為Acorn計算機公司AdvanceRISCMachine(ARM)主要設計ARM系列RISC處理器內核授權ARM內核給生產和銷售半導體的合作伙伴ARM公司不生產芯片IP(IntelligenceProperty)另外也提供基于ARM架構的開發設計技術軟件工具,評估板,調試工具,應用軟件,總線架構,外圍設備單元,等等12/14/20233ARM授權費IPARM創造和設計IPPartner產品,例如:芯片Partner把ARMIP和其他IP集成進產品OEMCustomer版權費單價OEM用來自ARMPartner的芯片設計制造最終用戶產品業務拓展

/市場格局ARM的業務模型12/14/20234命名的含義標志含義說明T支持Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6TD片上調試M支持長乘法32位乘32位得到64位,32位的乘加得到64位IEmbeddedICEEDSP指令增加了DSP算法處理器指令:16位乘加指令,飽和的帶符號數的加減法,雙字數據操作,cache預取指令JJava加速器Jazelle提高java代碼的運行速度S可綜合提供VHDL或Verilog語言設計文件12/14/2023512ARM處理器概述

ARM硬件體系結構

3ARM處理器內部結構

第2章嵌入式ARM處理器與開發工具4開發工具與開發流程介紹

12/14/20236馮·諾依曼體系結構模型指令寄存器控制器數據通道輸入輸出中央處理器存儲器程序指令0指令1指令2指令3指令4數據數據0數據1數據212/14/20237哈佛體系結構指令寄存器控制器數據通道輸入輸出中央處理器程序存儲器指令0指令1指令2數據存儲器數據0數據1數據2地址指令地址數據12/14/20238CISC和RISCCISC:復雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式8/2原則:80%的程序只使用20%的指令大多數程序只使用少量的指令就能夠運行。RISC:精簡指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令確保數據通道快速執行每一條指令使CPU硬件結構設計變得更為簡單

12/14/20239ARM處理器的指令三級流水線12/14/202310ARM處理器的指令五級流水線12/14/20231112ARM處理器概述

ARM硬件體系結構

3ARM處理器內部結構

第2章嵌入式ARM處理器與開發工具4開發工具與開發流程介紹

12/14/202312ARM710結構框圖12/14/202313ARM7功能圖12/14/202314ARM920功能結構圖12/14/202315S3C2410內部結構圖12/14/202316IntelPXA270應用系統框圖示例12/14/20231712ARM處理器概述

ARM硬件體系結構

3ARM處理器內部結構

第2章嵌入式ARM處理器與開發工具4開發工具與開發流程介紹

12/14/202318嵌入式軟件開發的特點和技術挑戰嵌入式軟件開發需要軟硬件開發環境和工具嵌入式軟硬件必須協同設計需要新的任務設計方法開發過程完成后,系統應用程序代碼需要固化到系統中并進行功能、性能和可靠性測試技術挑戰:軟件的要求更高,開發工作量和難度更大,需要較大的知識集合12/14/202319嵌入式軟件開發環境1)交叉開發環境交叉開發軟件一般為一個整合編輯、編譯、匯編、鏈接、調試、工程管理及函數庫等功能模塊的集成開發環境IDE(IntergratedDevelopmentEnvironment)。所謂交叉是指在一種CPU及其環境上開發另一種CPU及其環境上運行的程序。12/14/202320嵌入式軟件開發環境2)軟件模擬環境軟件模擬環境也稱為指令集模擬器ISS(InstructionSetSimulator)軟件模擬不可能完全代替真正的硬件環境,這種模擬調試只能作為一種初步調試,主要是用作用戶程序的模擬運行,用來檢查語法、程序的結構等簡單錯誤,用戶最終還必須在真實的硬件環境中實際運行調試,完成整個應用的開發。12/14/202321嵌入式軟件開發環境3)評估電路板一般用來作為開發者使用的開發平臺、學習板、實驗板,它們可以作為應用目標板出來之前的軟件測試、硬件調試的電路板12/14/202322嵌入式應用軟件開發的基本流程基于交叉開發環境的嵌人式應用軟件開發主要分如下幾個步驟:開發環境的建立、源代碼編輯階段、交叉編譯和鏈接、重定位和下載、聯機調試幾個基本階段。開發環境建立源文件編輯階段編譯鏈接下載調試12/14/202323嵌入式軟件開發的可移植性和可重用性

在確保軟件的正確性、實時性的前提下,必須關注軟件的可移植性和可重用性。嵌入式軟件與通用軟件的不同在于嵌入式應用軟件高度依賴于目標應用的軟硬件環境,軟件的部分任務功能函數由和處理器密切相關的匯編語言完成,可移植性差。一個運行良好的嵌入式軟件或其中的部分子程序可能在今后的開發中被應用于類似的應用領域。原有的代碼已被反復應用和維護,具有更好的穩定性。在原有的代碼上進行移植將會減少開發的周期、提高開發效率、節約開發成本12/14/202324嵌入式軟件開發的可移植性和可重用性

采用下面的方法可以提高應用軟件的可移植性和可重用性。多用高級語言少用或者不用匯編語言將不可移植部分局域化提高代碼的可重用性(標準化接口)12/14/202325嵌入式開發的考慮要素復雜計算與資源緊缺用戶界面的選擇實時性多任務多速率制造成本功耗成品的體積12/14/202326嵌入式開發的基本流程系統定義與需求分析系統設計方案的初步確立初步設計方案性價比評估與方案評審論證完善初步方案、初步方案實施軟硬件集成測試系統功能性能測試及可靠性測試 12/14/202327常用嵌入式系統軟件開發工具面向硬件的開發工具如ADS嵌入式操作系統開發如GCC面向特定操作系統的應用開發工具12/14/202328底層開發使用ADS軟件開發流程及調試方式圖

12/14/202329嵌入式操作系統開發GCC系列工具嵌入式操作系統多用C/C++開發,因此,要編譯操作系統內容,一般都使用GCC系列工具。GCC可以用來編譯uClinux、Linux、ECOS、uC/OS-II等操作系統。12/14/202330面向特定操作系統的應用工具WinCE應用軟件開發:如果選用的操作系統為WinCE,則應用軟件需要選擇WinCE的EmbededVC開發環境。Symbian應用程序開發:如果開發Symbian手機應用程序,則Symbian應用程序開發選擇的是Symbian的C/C++集成開發環境。Linux應用程序開發:如果開發的是Linux應用程序,則選擇的開發工具是Linux程序開發工具(GCC/G++/GDB/Makefile)。12/14/202331Linux交叉編譯調試環境開發程序過程12/14/202332Linux交叉編譯調試環境開發程序過程(1)程序首先在宿主機(安裝與應用目標板同樣內核的Linux操作系統)編輯編譯,生成可執行文件。(2)通過網絡共享方式將該程序共享給目標板,因為此處是開發Linux應用程序,目標板已經移植了Linux操作系統,因此,可以充分利用Linux操作系統強大的網絡功能,通過共享的方式的原因一方面是減少下載程序的時間,另一方面也是因為目標板資源有很,盡可能少占用目標板資源的考慮。(3)通過Linux操作系統遠程登陸方式登陸到目標板Linux,并在目標板上運行交叉調試服務器,然后在目標板上運行共享到目標板的Linux應用程序。(4)通過交叉調用器終端訪問目標板的交叉調試服務器,將該程序的運行結果反饋到宿主機上,查看運行結果是否正確。12/14/202333ADS1.2軟件環境開發流程12/14/202334ARM命令參數說明(1.armasm匯編編譯指令,)此命令用來編譯匯編程序,其命令格式:armasm[選項]-o目標文件源文件參數選項說明如下:-Errors錯誤文件名 ;指定一個錯誤輸出文件-I目錄[,目錄] ;指定源文件搜索目錄-PreDefine預定義宏 ;指定預定義的宏-NOCache ;編譯源代碼時禁止使用Cache進行優化-MaxCache<n> ;編譯源代碼時使用Cache進行優化-NOWarn ;關閉所有的警告信息-G ;輸出調試表-keep ;在目標文件中保存本地符號表-LIttleend ;生成小端(Little-endian)ARM代碼-BIgend ;生成大端(Big-endian)ARM代碼-CPU<target-cpu> ;設立目標板ARM核類型,如:arm920t-16 ;建立16位的thumb指令-32 ;建立32位的ARM指令編譯一個匯編文件命令示例如下:c:\>armasm-LIttleend-cpuARM920T-32test.s12/14/2023352.armcc/armcppC/C++編譯器armcc用來編譯C程序,armcpp用來編譯C++程序,其命令格式如下:1.命令:armcc[選項]源文件1源文件2...源文件n這兩個命令的選項說明如下:-c ;編譯但是不連接-D ;指定一個編譯時使用的預定義宏常量-E ;僅僅對C源文件做預處理-g ;產生調試信息表-I ;指頭文件的搜索路徑-o<file> ;指定一個輸出的目標文件-O[0/1/2] ;指定源代碼的優化級別-S ;輸出匯編代碼來代替目標文件-CPU<target-cpu> ;設立目標板ARM核類型,如arm920t 編譯一個C程序命令示例如下:c:\>armcc-c-O1-cpuARM920Ttest.c12/14/2023363.armlink鏈接器此命令用來鏈接目標文件,其命令格式如下:armlink[選項]輸入文件此命令選項參數說明如下:-partial ;合并目標文件-Output文件 ;指定輸出文件名-scatter文件 ;按照指定的文件為可執行文件建立內存映射-ro-base地址值 ;只讀代碼段的起始地址-rw-base地址值 ;RW/ZI段的起始地址示例c:\>armlink-partialbdmain.obdport.obdserial.obdmmu.obdisr.o-otestd.oc:\>armlinkbd.obdinit.o-scatterbdscf.scf-otest.axf12/14/2023374.fromel

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論