資源描述:
《基于arm內(nèi)核的嵌入式系統(tǒng)開(kāi)發(fā)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、http://www.docin.com/sundae_meng基于ARM內(nèi)核的嵌入式系統(tǒng)開(kāi)發(fā)電子愛(ài)好者家園http://www.ee521.com報(bào)告提綱:一、硬件1)ARM的內(nèi)核簡(jiǎn)介2)指令結(jié)構(gòu)3)ARM的異常中斷處理二、軟件1)操作系統(tǒng)的軟件2)映射方式3)編譯調(diào)試的方法三、操作系統(tǒng)移植例子ARM的全稱(chēng)是AdvancedRISCMachine,這個(gè)公司不生產(chǎn)芯片也不銷(xiāo)售芯片,它只是出售芯片技術(shù)授權(quán)。ARM技術(shù)IP核的微處理器遍及汽車(chē)、消費(fèi)電子、成像、工業(yè)控制、海量存儲(chǔ)、網(wǎng)絡(luò)、安保和無(wú)線等各類(lèi)產(chǎn)品市
2、場(chǎng)。目前世界上前5大半導(dǎo)體公司全部使用了ARM的技術(shù)授權(quán),而前10大半導(dǎo)體公司有9家,前25大半導(dǎo)體公司中有23家采用了ARM的技術(shù)授權(quán)。ARM內(nèi)核結(jié)構(gòu)芯片具有RISC體系的一般特點(diǎn)l具有大量寄存器l絕大多數(shù)操作都是在寄存器中進(jìn)行,寄存器與內(nèi)存打交道的唯一是通過(guò)Load/Store的體系結(jié)構(gòu)在內(nèi)存和寄存器之間傳遞數(shù)據(jù)l尋址方式簡(jiǎn)單l采用固定長(zhǎng)度的指令除了這些之外,ARM體系采用了一些特別的技術(shù),在保證高性能的同時(shí)盡量減少芯片體積,減少芯片的功耗,這些技術(shù)包括l在一條數(shù)據(jù)處理指令中包含算術(shù)邏輯處理單元和以
3、為處理ADDRd,Rx,Rx,LSL#n:Rd=Rx+Rx*2nl使用地址自動(dòng)增加(減少)來(lái)優(yōu)化程序中循環(huán)處理lLoad/store指令可以批量傳輸數(shù)據(jù),從而提高數(shù)據(jù)傳輸?shù)男蔐DMFDr13!,{r0-r12}l所有指令都可以根據(jù)前面指令的執(zhí)行結(jié)果,決定是否執(zhí)行,以提高指令的執(zhí)行效率。所有的指令都是有條件指令A(yù)RM處理器的內(nèi)核結(jié)構(gòu)有以下幾個(gè)系列:lARM7lARM9http://www.docin.com/sundae_menglARM9ElARM10ElSecurCorelIntel的xscalel
4、Intel的StrongARMARM處理器共有7種處理模式處理器模式描述用戶(hù)模式(User,usr)快速中斷模式(FIQ,fiq)外部中斷模式(IRQ,irq)特權(quán)模式(Supervisor,Sve)數(shù)據(jù)訪問(wèn)中止模式(Abort,abt)未定義指令中止模式(Undefined,und)系統(tǒng)模式(System,sys)正常程序執(zhí)行的模式用于高速數(shù)據(jù)傳輸和通道處理用于通常的中斷處理供操作系統(tǒng)使用的一種保護(hù)模式用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)用于支持通過(guò)軟件仿真硬件的協(xié)處理器用于運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù)除了用戶(hù)模式之外
5、其它的6種處理器模式稱(chēng)為特權(quán)模式。在這些模式下,程序可以訪問(wèn)所有的系統(tǒng)資源,也可以任意的進(jìn)行處理器模式的切換,其中除了系統(tǒng)模式外,其它5種特權(quán)模式又稱(chēng)為異常模式。處理器模式可以通過(guò)軟件控制來(lái)進(jìn)行切換,也可以通過(guò)外部中斷或異常處理過(guò)程進(jìn)行切換。大多數(shù)的用戶(hù)程序可以運(yùn)行在用戶(hù)模式下,這時(shí),應(yīng)用程序不能夠訪問(wèn)一些受應(yīng)用程序保護(hù)的系統(tǒng)資源。應(yīng)用程序不能直接進(jìn)行處理器模式的切換。當(dāng)需要處理器的模式切換的時(shí)候,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理過(guò)程種進(jìn)行處理器模式的切換,這種體系結(jié)構(gòu)可以使整個(gè)操作系統(tǒng)控制整個(gè)系統(tǒng)
6、的資源。當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式,在每一種異常模式種都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就保證在進(jìn)入異常模式的時(shí)候,用戶(hù)模式下的寄存器(保存了程序的運(yùn)行的狀態(tài))不被破壞。寄存器:l未備份寄存器R0~R7l備份寄存器R8~R14(R13在ARM中經(jīng)常用作棧指針,R14經(jīng)常用作連接寄存器)l程序寄存器R15l程序狀態(tài)寄存器在異常中斷中軟件中斷是用戶(hù)自定義的中斷指令。可用于用戶(hù)模式下的程序調(diào)用特權(quán)操作指令。在實(shí)時(shí)操作系統(tǒng)RTOS中可以通過(guò)該機(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用。ARM的指令
7、集:一、跳轉(zhuǎn)指令一種是跳轉(zhuǎn)指令,一種是直接指向PC寄存器R15中寫(xiě)入目標(biāo)地址的值。lBlBLlBLXhttp://www.docin.com/sundae_menglBX二、數(shù)據(jù)處理指令數(shù)據(jù)傳送指令,算術(shù)邏輯指令三、乘法指令一種是32位乘法指令,一種是64位乘法指令四、狀態(tài)寄存器訪問(wèn)指令通常修改狀態(tài)寄存器是通過(guò)“讀?。薷模瓕?xiě)回”的操作序列來(lái)實(shí)現(xiàn)的五Load/Store內(nèi)存訪問(wèn)指令六、批量Load/Store內(nèi)存訪問(wèn)指令七、信號(hào)量操作指令信號(hào)量用于進(jìn)程間的同步和互斥。對(duì)信號(hào)量的操作要求是一個(gè)原子的操作,
8、即在一條指令中完成信號(hào)量的讀取和修改操作。信號(hào)量用于實(shí)現(xiàn)對(duì)臨界區(qū)數(shù)據(jù)訪問(wèn)的同步lSWP交換指令lSWPB字節(jié)交換指令SWPR1,R2,[R3];將內(nèi)存單元(R3)中的字?jǐn)?shù)據(jù)讀取到R1寄存器中,同時(shí)將R2寄存器的數(shù)據(jù)寫(xiě)入內(nèi)存單元(R3)中SWPR1,R1,[R2];將R1寄存器內(nèi)容和內(nèi)存單元(R2)的內(nèi)容互換八、異常中斷產(chǎn)生指令lSWI軟中斷指令軟中斷指令SWI用于產(chǎn)生SWI異常中斷,ARM正是通過(guò)這種機(jī)制實(shí)現(xiàn)用戶(hù)模式對(duì)操作系統(tǒng)中特權(quán)模式的程