《02嵌入式ARM處理器與開發(fā)工具課件》由會員分享,可在線閱讀,更多相關(guān)《02嵌入式ARM處理器與開發(fā)工具課件(41頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、Click to edit Master text styles我們,Second level我們,Third level我們,Fourth level我們,Fifth level我們,Click to edit Master title style我們,*,北京大學(xué)出版社出版,*,嵌入式ARM系統(tǒng)原理與實(shí)例開發(fā)(第二版),單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,02嵌入式ARM處理器與開發(fā)工具,服從真理,就能征服一切事物,02嵌入式ARM處理器與開發(fā)
2、工具02嵌入式ARM處理器與開發(fā)工具服從真理,就能征服一切事物嵌入式ARM系統(tǒng)原理與實(shí)例開發(fā)北京大學(xué)出版社出版,楊宗德編著,2007年7月3/10/20212北京大學(xué)出版社出版12ARM處理器概述 ARM硬件體系結(jié)構(gòu) 3ARM處理器內(nèi)部結(jié)構(gòu) 第2章嵌入式ARM處理器與開發(fā)工具 4開發(fā)工具與開發(fā)流程介紹 3/10/20213北京大學(xué)出版社出版,嵌入式ARM系統(tǒng)原理與實(shí)例開發(fā),北京大學(xué)出版社出版,楊宗德編著,2007年7月,12/12/2024,2,北京大學(xué)出版社出版,命名的含義,標(biāo)志,含義,說明,T,支持Thumb指令集,Thumb指令集版本1:ARMv4T,Thumb指令集版本2:ARMv5T
3、,Thumb-2:ARMv6T,D,片上調(diào)試,M,支持長乘法,32位乘32位得到64位,32位的乘加得到64位,I,Embedded ICE,E,DSP指令,增加了DSP算法處理器指令:16位乘加指令,飽和的帶符號數(shù)的加減法,雙字?jǐn)?shù)據(jù)操作,cache預(yù)取指令,J,Java加速器Jazelle,提高java代碼的運(yùn)行速度,S,可綜合,提供VHDL或Verilog語言設(shè)計(jì)文件,12/12/2024,6,北京大學(xué)出版社出版,1,2,ARM處理器概述,ARM硬件體系結(jié)構(gòu),3,ARM處理器內(nèi)部結(jié)構(gòu),第2章嵌入式ARM處理器與開發(fā)工具,4,開發(fā)工具與開發(fā)流程介紹,12/12/2024,7,北京大學(xué)出版社出
4、版,馮諾依曼體系結(jié)構(gòu)模型,指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,存儲器,程序,指令0,指令1,指令2,指令3,指令4,數(shù)據(jù),數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,12/12/2024,8,北京大學(xué)出版社出版,哈佛體系結(jié)構(gòu),指令寄存器,控制器,數(shù)據(jù)通道,輸入,輸出,中央處理器,程序存儲器,指令0,指令1,指令2,數(shù)據(jù)存儲器,數(shù)據(jù)0,數(shù)據(jù)1,數(shù)據(jù)2,地址,指令,地址,數(shù)據(jù),12/12/2024,9,北京大學(xué)出版社出版,CISC和RISC,CISC:復(fù)雜指令集(Complex Instruction Set Computer),具有大量的指令和尋址方式,8/2原則:80%的程序只使用20%的指令,
5、大多數(shù)程序只使用少量的指令就能夠運(yùn)行。,RISC:精簡指令集(Reduced Instruction Set Computer),在通道中只包含最有用的指令,確保數(shù)據(jù)通道快速執(zhí)行每一條指令,使CPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡單,12/12/2024,10,北京大學(xué)出版社出版,ARM處理器的指令三級流水線,12/12/2024,11,北京大學(xué)出版社出版,ARM處理器的指令五級流水線,12/12/2024,12,北京大學(xué)出版社出版,1,2,ARM處理器概述,ARM硬件體系結(jié)構(gòu),3,ARM處理器內(nèi)部結(jié)構(gòu),第2章嵌入式ARM處理器與開發(fā)工具,4,開發(fā)工具與開發(fā)流程介紹,12/12/2024,13,北京大學(xué)
6、出版社出版,ARM710 結(jié)構(gòu)框圖,12/12/2024,14,北京大學(xué)出版社出版,ARM7功能圖,12/12/2024,15,北京大學(xué)出版社出版,ARM920功能結(jié)構(gòu)圖,12/12/2024,16,北京大學(xué)出版社出版,S3C2410內(nèi)部結(jié)構(gòu)圖,12/12/2024,17,北京大學(xué)出版社出版,Intel PXA270應(yīng)用系統(tǒng)框圖 示例,12/12/2024,18,北京大學(xué)出版社出版,1,2,ARM處理器概述,ARM硬件體系結(jié)構(gòu),3,ARM處理器內(nèi)部結(jié)構(gòu),第2章嵌入式ARM處理器與開發(fā)工具,4,開發(fā)工具與開發(fā)流程介紹,12/12/2024,19,北京大學(xué)出版社出版,嵌入式軟件開發(fā)的特點(diǎn)和技術(shù)挑戰(zhàn)
7、,嵌入式軟件開發(fā)需要軟硬件開發(fā)環(huán)境和工具,嵌入式軟硬件必須協(xié)同設(shè)計(jì),需要新的任務(wù)設(shè)計(jì)方法,開發(fā)過程完成后,系統(tǒng)應(yīng)用程序代碼需要固化到系統(tǒng)中并進(jìn)行功能、性能和可靠性測試,技術(shù)挑戰(zhàn):軟件的要求更高,開發(fā)工作量和難度更大,需要較大的知識集合,12/12/2024,20,北京大學(xué)出版社出版,嵌入式軟件開發(fā)環(huán)境,1)交叉開發(fā)環(huán)境,交叉開發(fā)軟件一般為一個整合編輯、編譯、匯編、鏈接、調(diào)試、工程管理及函數(shù)庫等功能模塊的集成開發(fā)環(huán)境IDE(Intergrated Development Environment)。,所謂交叉是指在一種CPU及其環(huán)境上開發(fā)另一種CPU及其環(huán)境上運(yùn)行的程序。,12/12/2024,2
8、1,北京大學(xué)出版社出版,嵌入式軟件開發(fā)環(huán)境,2)軟件模擬環(huán)境,軟件模擬環(huán)境也稱為指令集模擬器ISS(Instruction Set Simulator),軟件模擬不可能完全代替真正的硬件環(huán)境,這種模擬調(diào)試只能作為一種初步調(diào)試,主要是用作用戶程序的模擬運(yùn)行,用來檢查語法、程序的結(jié)構(gòu)等簡單錯誤,用戶最終還必須在真實(shí)的硬件環(huán)境中實(shí)際運(yùn)行調(diào)試,完成整個應(yīng)用的開發(fā)。,12/12/2024,22,北京大學(xué)出版社出版,嵌入式軟件開發(fā)環(huán)境,3)評估電路板,一般用來作為開發(fā)者使用的開發(fā)平臺、學(xué)習(xí)板、實(shí)驗(yàn)板,它們可以作為應(yīng)用目標(biāo)板出來之前的軟件測試、硬件調(diào)試的電路板,12/12/2024,23,北京大學(xué)出版社出版
9、,嵌入式應(yīng)用軟件開發(fā)的基本流程,基于交叉開發(fā)環(huán)境的嵌人式應(yīng)用軟件開發(fā)主要分如下幾個步驟:開發(fā)環(huán)境的建立、源代碼編輯階段、交叉編譯和鏈接、重定位和下載、聯(lián)機(jī)調(diào)試幾個基本階段。,開發(fā)環(huán)境建立,源文件編輯階段,編譯,鏈接,下載,調(diào)試,12/12/2024,24,北京大學(xué)出版社出版,嵌入式軟件開發(fā)的可移植性和可重用性,在確保軟件的正確性、實(shí)時性的前提下,必須關(guān)注軟件的可移植性和可重用性。,嵌入式軟件與通用軟件的不同在于嵌入式應(yīng)用軟件高度依賴于目標(biāo)應(yīng)用的軟硬件環(huán)境,軟件的部分任務(wù)功能函數(shù)由和處理器密切相關(guān)的匯編語言完成,可移植性差。,一個運(yùn)行良好的嵌入式軟件或其中的部分子程序可能在今后的開發(fā)中被應(yīng)用于類
10、似的應(yīng)用領(lǐng)域。原有的代碼已被反復(fù)應(yīng)用和維護(hù),具有更好的穩(wěn)定性。在原有的代碼上進(jìn)行移植將會減少開發(fā)的周期、提高開發(fā)效率、節(jié)約開發(fā)成本,12/12/2024,25,北京大學(xué)出版社出版,嵌入式軟件開發(fā)的可移植性和可重用性,采用下面的方法可以提高應(yīng)用軟件的可移植性和可重用性。,多用高級語言少用或者不用匯編語言,將不可移植部分局域化,提高代碼的可重用性(標(biāo)準(zhǔn)化接口),12/12/2024,26,北京大學(xué)出版社出版,嵌入式,開發(fā)的考慮要素,復(fù)雜計(jì)算與資源緊缺,用戶界面的選擇,實(shí)時性,多任務(wù)多速率,制造成本,功耗,成品的體積,12/12/2024,27,北京大學(xué)出版社出版,嵌入式開發(fā)的基本流程,系統(tǒng)定義與需
11、求分析,系統(tǒng)設(shè)計(jì)方案的初步確立,初步設(shè)計(jì)方案性價比評估與方案評審論證,完善初步方案、初步方案實(shí)施,軟硬件集成測試,系統(tǒng)功能性能測試及可靠性測試,12/12/2024,28,北京大學(xué)出版社出版,常用嵌入式系統(tǒng)軟件開發(fā)工具,面向硬件的開發(fā)工具,如ADS,嵌入式操作系統(tǒng)開發(fā),如GCC,面向特定操作系統(tǒng)的應(yīng)用開發(fā)工具,12/12/2024,29,北京大學(xué)出版社出版,底層開發(fā),使用ADS軟件開發(fā)流程及調(diào)試方式圖,12/12/2024,30,北京大學(xué)出版社出版,嵌入式操作系統(tǒng)開發(fā),GCC系列工具,嵌入式操作系統(tǒng)多用C/C+開發(fā),因此,要編譯操作系統(tǒng)內(nèi)容,一般都使用GCC系列工具。,GCC可以用來編譯uCl
12、inux、Linux、ECOS、uC/OS-II等操作系統(tǒng)。,12/12/2024,31,北京大學(xué)出版社出版,面向特定操作系統(tǒng)的應(yīng)用工具,WinCE應(yīng)用軟件開發(fā):如果選用的操作系統(tǒng)為WinCE,則應(yīng)用軟件需要選擇WinCE的Embeded VC開發(fā)環(huán)境。,Symbian應(yīng)用程序開發(fā):如果開發(fā)Symbian手機(jī)應(yīng)用程序,則Symbian應(yīng)用程序開發(fā)選擇的是Symbian的C/C+集成開發(fā)環(huán)境。,Linux應(yīng)用程序開發(fā):如果開發(fā)的是Linux應(yīng)用程序,則選擇的開發(fā)工具是Linux程序開發(fā)工具(GCC/G+/GDB/Makefile)。,12/12/2024,32,北京大學(xué)出版社出版,Linux交叉
13、編譯調(diào)試環(huán)境開發(fā)程序過程,12/12/2024,33,北京大學(xué)出版社出版,Linux交叉編譯調(diào)試環(huán)境開發(fā)程序過程,(1)程序首先在宿主機(jī)(安裝與應(yīng)用目標(biāo)板同樣內(nèi)核的Linux操作系統(tǒng))編輯編譯,生成可執(zhí)行文件。,(2)通過網(wǎng)絡(luò)共享方式將該程序共享給目標(biāo)板,因?yàn)榇颂幨情_發(fā)Linux應(yīng)用程序,目標(biāo)板已經(jīng)移植了Linux操作系統(tǒng),因此,可以充分利用Linux操作系統(tǒng)強(qiáng)大的網(wǎng)絡(luò)功能,通過共享的方式的原因一方面是減少下載程序的時間,另一方面也是因?yàn)槟繕?biāo)板資源有很,盡可能少占用目標(biāo)板資源的考慮。,(3)通過Linux操作系統(tǒng)遠(yuǎn)程登陸方式登陸到目標(biāo)板Linux,并在目標(biāo)板上運(yùn)行交叉調(diào)試服務(wù)器,然后在目標(biāo)板上
14、運(yùn)行共享到目標(biāo)板的Linux應(yīng)用程序。,(4)通過交叉調(diào)用器終端訪問目標(biāo)板的交叉調(diào)試服務(wù)器,將該程序的運(yùn)行結(jié)果反饋到宿主機(jī)上,查看運(yùn)行結(jié)果是否正確。,12/12/2024,34,北京大學(xué)出版社出版,ADS1.2軟件環(huán)境開發(fā)流程,12/12/2024,35,北京大學(xué)出版社出版,ARM命令參數(shù)說明(1.armasm匯編編譯指令,),此命令用來編譯匯編程序,其命令格式:,armasm 選項(xiàng)-o 目標(biāo)文件 源文件,參數(shù)選項(xiàng)說明如下:,-Errors錯誤文件名;指定一個錯誤輸出文件,-I目錄,目錄;指定源文件搜索目錄,-PreDefine預(yù)定義宏;指定預(yù)定義的宏,-NOCache;編譯源代碼時禁止使用C
15、ache進(jìn)行優(yōu)化,-MaxCache ;編譯源代碼時使用Cache進(jìn)行優(yōu)化,-NOWarn;關(guān)閉所有的警告信息,-G;輸出調(diào)試表,-keep;在目標(biāo)文件中保存本地符號表,-LIttleend;生成小端(Little-endian)ARM代碼,-BIgend;生成大端(Big-endian)ARM代碼,-CPU ;設(shè)立目標(biāo)板ARM核類型,如:arm920t,-16;建立16位的thumb指令,-32;建立32位的ARM指令,編譯一個匯編文件命令示例如下:,c:armasm-LIttleend-cpu ARM920T-32 test.s,12/12/2024,36,北京大學(xué)出版社出版,2.armc
16、c/armcppC/C+編譯器,armcc用來編譯C程序,armcpp用來編譯C+程序,其命令格式如下:,1.命令:armcc 選項(xiàng) 源文件1 源文件2.源文件n,這兩個命令的選項(xiàng)說明如下:,-c;編譯但是不連接,-D;指定一個編譯時使用的預(yù)定義宏常量,-E;僅僅對C源文件做預(yù)處理,-g;產(chǎn)生調(diào)試信息表,-I;指頭文件的搜索路徑,-o;指定一個輸出的目標(biāo)文件,-O0/1/2;指定源代碼的優(yōu)化級別,-S;輸出匯編代碼來代替目標(biāo)文件,-CPU ;設(shè)立目標(biāo)板ARM核類型,如arm920t,編譯一個C程序命令示例如下:,c:armcc-c-O1-cpu ARM920T test.c,12/12/2024,37,北京大學(xué)出版社出版,3.armlink鏈接器,此命令用來鏈接目標(biāo)文件,其命令格式如下:,armlink 選項(xiàng) 輸入文件,此命令選項(xiàng)參數(shù)說明如下:,-partial;合并目標(biāo)文件,-Output 文件;指定輸出文件名,-scatter 文件 ;按照指定的文件為可執(zhí)行文件建立內(nèi)存映射,-ro-base 地址值;只讀代碼段的起始地址,-rw-base 地址值;RW/ZI段的起始地址,示例,c: