ARM體系結(jié)構(gòu)及編程模型東北電力大學(xué)_第1頁(yè)
ARM體系結(jié)構(gòu)及編程模型東北電力大學(xué)_第2頁(yè)
ARM體系結(jié)構(gòu)及編程模型東北電力大學(xué)_第3頁(yè)
ARM體系結(jié)構(gòu)及編程模型東北電力大學(xué)_第4頁(yè)
ARM體系結(jié)構(gòu)及編程模型東北電力大學(xué)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ARM體系結(jié)構(gòu)及編程模型東北電力大學(xué)·嵌入式系統(tǒng)課程Contents課程目錄系統(tǒng)掌握ARM體系結(jié)構(gòu)核心知識(shí),從處理器原理到嵌入式開(kāi)發(fā)環(huán)境的完整學(xué)習(xí)路徑。01ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)02ARM微處理器系列03ARM處理器的工作模式04ARM處理器的寄存器組織05ARM異常處理06ARM處理器的存儲(chǔ)器格式07ARM處理器的工作狀態(tài)08嵌入式開(kāi)發(fā)環(huán)境構(gòu)建Chapter01ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)從公司背景到技術(shù)生態(tài),理解ARM的核心價(jià)值CompanyProfileARM公司概述與商業(yè)模式ARM采用獨(dú)特的Chipless授權(quán)模式,專(zhuān)注芯片設(shè)計(jì)IP而非制造,構(gòu)建了覆蓋32位RISC微處理器75%以上市場(chǎng)份額的龐大生態(tài)。ARM總部·英國(guó)劍橋Founded19911991年成立于英國(guó)劍橋,從谷倉(cāng)創(chuàng)業(yè)起步,現(xiàn)已成為全球主要半導(dǎo)體芯片廠商和操作系統(tǒng)開(kāi)發(fā)商的最主要合作伙伴。ChiplessARM只負(fù)責(zé)設(shè)計(jì)IC并出售設(shè)計(jì)IP授權(quán),由德州儀器、意法半導(dǎo)體、三星等廠商加入外圍電路后生產(chǎn)完整芯片。75%+Share基于ARM技術(shù)的微處理器占據(jù)32位RISC市場(chǎng)75%以上份額,國(guó)內(nèi)中興、大唐、中芯國(guó)際等也推出了ARM核處理器。ApplicationDomainsARM微處理器的應(yīng)用領(lǐng)域ARM微處理器已廣泛深入工業(yè)控制、網(wǎng)絡(luò)通信、消費(fèi)電子、成像安全等國(guó)民經(jīng)濟(jì)各領(lǐng)域,其32位RISC架構(gòu)的低功耗、高性?xún)r(jià)比特性正持續(xù)挑戰(zhàn)傳統(tǒng)8/16位微控制器和專(zhuān)用DSP芯片的市場(chǎng)地位。工業(yè)控制領(lǐng)域作為32位RISC架構(gòu),ARM核微控制器占據(jù)高端微控制器市場(chǎng)大部分份額,并逐漸向低端應(yīng)用擴(kuò)展低功耗、高性?xún)r(jià)比特性向傳統(tǒng)8/16位微控制器提出挑戰(zhàn),適用于工業(yè)自動(dòng)化、儀器儀表等場(chǎng)景32位RISC網(wǎng)絡(luò)與通信采用ARM技術(shù)的ADSL芯片隨寬帶技術(shù)推廣逐步獲得競(jìng)爭(zhēng)優(yōu)勢(shì)ARM在語(yǔ)音及視頻處理上的優(yōu)化獲得廣泛支持,對(duì)DSP應(yīng)用領(lǐng)域形成挑戰(zhàn)ADSL消費(fèi)電子產(chǎn)品數(shù)字音頻播放器、數(shù)字機(jī)頂盒、游戲機(jī)等流行產(chǎn)品中廣泛采用ARM技術(shù)數(shù)碼相機(jī)、打印機(jī)絕大部分采用ARM技術(shù),手機(jī)32位SIM智能卡也基于ARM架構(gòu)SIMCoreArchitectureARM技術(shù)的核心特點(diǎn)ARM技術(shù)的成功源于RISC精簡(jiǎn)指令集架構(gòu)的高效執(zhí)行、卓越的功耗能效比以及完善的產(chǎn)業(yè)生態(tài)系統(tǒng),這三者共同構(gòu)成了ARM在移動(dòng)計(jì)算和嵌入式領(lǐng)域的核心競(jìng)爭(zhēng)力。01RISC架構(gòu)優(yōu)勢(shì)精簡(jiǎn)指令集設(shè)計(jì)使處理器結(jié)構(gòu)簡(jiǎn)潔、執(zhí)行效率高,單周期執(zhí)行大部分指令,便于流水線優(yōu)化02卓越功耗表現(xiàn)能效比業(yè)界領(lǐng)先,低功耗特性使其成為移動(dòng)設(shè)備、物聯(lián)網(wǎng)節(jié)點(diǎn)等電池供電場(chǎng)景的首選03完善生態(tài)系統(tǒng)從IP授權(quán)、EDA工具、編譯器到RTOS/OS支持,形成完整產(chǎn)業(yè)鏈,大幅降低嵌入式開(kāi)發(fā)門(mén)檻04高度可定制性授權(quán)廠商可根據(jù)應(yīng)用需求添加外圍電路、調(diào)整緩存配置,實(shí)現(xiàn)差異化芯片設(shè)計(jì)ARMCortex芯片晶圓微距實(shí)拍CHAPTER02ARM微處理器系列從ARM7到Cortex,梳理ARM處理器的演進(jìn)脈絡(luò)ArchitectureEvolutionARM處理器發(fā)展歷程ARM處理器從1985年全球首款商用RISC處理器起步,歷經(jīng)ARM6/7/9/11經(jīng)典系列,于2004年推出Cortex系列實(shí)現(xiàn)產(chǎn)品線重構(gòu),2011年ARMv8架構(gòu)開(kāi)啟64位時(shí)代,持續(xù)引領(lǐng)移動(dòng)計(jì)算架構(gòu)演進(jìn)。1985起源與創(chuàng)立艾康電腦開(kāi)發(fā)全球首款商用RISC處理器,1990年在蘋(píng)果和VLSI投資下成立獨(dú)立ARM公司RISC先驅(qū)1991經(jīng)典系列迭代推出ARM6嵌入式處理器,1993年ARM7發(fā)布,1997年ARM9TDMI引入Thumb指令集Thumb指令集2004Cortex重構(gòu)發(fā)布ARMv7架構(gòu)Cortex系列,按應(yīng)用分為Cortex-A、Cortex-R、Cortex-M三條產(chǎn)品線三條產(chǎn)品線201164位時(shí)代ARMv8架構(gòu)發(fā)布引入64位支持,2012年開(kāi)啟64位進(jìn)程,蘋(píng)果A7成為首款A(yù)RMv8量產(chǎn)芯片蘋(píng)果A7首發(fā)TECHNICALOVERVIEWARM版本命名體系解析ARM版本號(hào)分為內(nèi)核版本、架構(gòu)版本和SoC版本三個(gè)層次,初學(xué)者常混淆ARM7與ARMv7的概念,需明確區(qū)分不同命名體系。內(nèi)核版本號(hào)ARM6/7/9/11代表具體處理器核型號(hào),如ARM7TDMI支持Thumb指令集和調(diào)試功能,是早期嵌入式系統(tǒng)的核心選擇。架構(gòu)版本號(hào)ARMv4到ARMv8代表指令集架構(gòu)演進(jìn),ARMv7架構(gòu)對(duì)應(yīng)Cortex系列而非ARM7,這一區(qū)分是理解ARM生態(tài)的關(guān)鍵。SoC版本號(hào)芯片廠商基于ARM核設(shè)計(jì)完整系統(tǒng)芯片,如驍龍、Exynos、麒麟各有獨(dú)立命名,反映不同廠商的產(chǎn)品策略。ARM內(nèi)核與架構(gòu)版本對(duì)應(yīng)關(guān)系內(nèi)核型號(hào)架構(gòu)版本年份關(guān)鍵特性ARM7TDMIARMv4T1993Thumb指令集、調(diào)試支持ARM9TDMIARMv4T19975級(jí)流水線、哈佛結(jié)構(gòu)ARM9EARMv5TE1999DSP指令擴(kuò)展ARM11ARMv62002SIMD媒體處理Cortex-A8ARMv7-A2005超標(biāo)量雙發(fā)射Cortex-A9ARMv7-A2007多核MPCore支持ARM內(nèi)核型號(hào)與架構(gòu)版本并非一一對(duì)應(yīng),同一架構(gòu)可有多個(gè)內(nèi)核實(shí)現(xiàn)CHAPTER03ARM處理器的工作模式七種工作模式的權(quán)限劃分與切換機(jī)制ProcessorArchitectureARM七種工作模式概覽ARM處理器定義了七種工作模式,包括1種非特權(quán)模式(用戶(hù)模式)和6種特權(quán)模式,特權(quán)模式又分為系統(tǒng)模式和5種異常模式,不同模式對(duì)應(yīng)不同的權(quán)限級(jí)別和寄存器配置,構(gòu)成了ARM的安全保護(hù)機(jī)制基礎(chǔ)。ARM處理器七種工作模式模式名稱(chēng)模式編碼權(quán)限類(lèi)型主要用途用戶(hù)模式(User)0b10000非特權(quán)正常運(yùn)行應(yīng)用程序,無(wú)法直接訪問(wèn)系統(tǒng)資源系統(tǒng)模式(System)0b11111特權(quán)運(yùn)行操作系統(tǒng)特權(quán)任務(wù),與用戶(hù)模式共享寄存器管理模式(Supervisor)0b10011特權(quán)/異常SWI軟中斷調(diào)用時(shí)進(jìn)入,用于操作系統(tǒng)服務(wù)中斷模式(IRQ)0b10010特權(quán)/異常響應(yīng)普通中斷請(qǐng)求nIRQ快速中斷模式(FIQ)0b10001特權(quán)/異常響應(yīng)高優(yōu)先級(jí)快速中斷nFIQ未定義模式(Undefined)0b11011特權(quán)/異常執(zhí)行未定義指令時(shí)進(jìn)入,支持指令模擬中止模式(Abort)0b10111特權(quán)/異常存儲(chǔ)器訪問(wèn)異常時(shí)進(jìn)入,處理預(yù)取/數(shù)據(jù)中止用戶(hù)模式是唯一非特權(quán)模式,系統(tǒng)模式具有特權(quán)但與用戶(hù)共享寄存器,其余五種為異常響應(yīng)模式ARMPROCESSORMODES用戶(hù)模式與系統(tǒng)模式詳解用戶(hù)模式是ARM唯一的非特權(quán)模式,運(yùn)行應(yīng)用程序時(shí)無(wú)法直接訪問(wèn)系統(tǒng)資源;系統(tǒng)模式與用戶(hù)模式共享寄存器組但具有特權(quán)訪問(wèn)能力,專(zhuān)用于運(yùn)行操作系統(tǒng)內(nèi)核任務(wù),這種設(shè)計(jì)簡(jiǎn)化了特權(quán)任務(wù)的上下文切換開(kāi)銷(xiāo)。01用戶(hù)模式限制:無(wú)法修改CPSR中的模式位,不能直接訪問(wèn)CP15等系統(tǒng)協(xié)處理器,存儲(chǔ)器訪問(wèn)受MMU保護(hù)CPSR·MMU02系統(tǒng)模式特性:與用戶(hù)模式共享R0–R14和CPSR寄存器組,但可執(zhí)行所有特權(quán)指令和訪問(wèn)所有系統(tǒng)資源R0–R14共享03模式切換機(jī)制:用戶(hù)模式只能通過(guò)異常(中斷、SWI等)進(jìn)入特權(quán)模式,特權(quán)模式可通過(guò)修改CPSR直接切換到任意模式SWI·異常入口04典型應(yīng)用場(chǎng)景:操作系統(tǒng)內(nèi)核線程、設(shè)備驅(qū)動(dòng)程序等需要在特權(quán)級(jí)別運(yùn)行但又需保持寄存器上下文的場(chǎng)景使用系統(tǒng)模式內(nèi)核線程·驅(qū)動(dòng)操作系統(tǒng)內(nèi)核運(yùn)行環(huán)境實(shí)拍ARMArchitecture·ExceptionModes五種異常模式觸發(fā)條件ARM五種異常模式分別對(duì)應(yīng)不同的異常事件:管理模式處理SWI系統(tǒng)調(diào)用、IRQ/FIQ模式響應(yīng)外部中斷請(qǐng)求、未定義模式支持指令仿真擴(kuò)展、中止模式處理存儲(chǔ)器訪問(wèn)異常,每種模式都有獨(dú)立的寄存器組保存異常上下文。SVC&IRQ管理與中斷模式管理模式(SVC):執(zhí)行SWI指令時(shí)進(jìn)入,提供用戶(hù)程序請(qǐng)求OS服務(wù)的標(biāo)準(zhǔn)入口,支持系統(tǒng)調(diào)用與特權(quán)操作切換IRQ模式:nIRQ引腳低電平觸發(fā),處理定時(shí)器、串口等普通中斷,優(yōu)先級(jí)低于FIQ,支持中斷嵌套SWI·nIRQFIQ快速中斷模式FIQ模式:nFIQ引腳觸發(fā),用于高優(yōu)先級(jí)數(shù)據(jù)傳輸,擁有5個(gè)私有寄存器(R8-R12)減少上下文保存開(kāi)銷(xiāo),響應(yīng)延遲最小CPSR的F位控制FIQ使能,僅特權(quán)模式可修改該位,進(jìn)入時(shí)自動(dòng)屏蔽其他中斷保證原子性nFIQ·5私有寄存器UNDEFINED&ABORT未定義與中止模式未定義模式:處理器無(wú)法解碼指令時(shí)進(jìn)入,可用于軟件仿真浮點(diǎn)運(yùn)算等新指令集擴(kuò)展,支持協(xié)處理器模擬中止模式:存儲(chǔ)器訪問(wèn)違例(預(yù)取中止/數(shù)據(jù)中止)時(shí)進(jìn)入,由MMU配合實(shí)現(xiàn)內(nèi)存保護(hù)與虛擬地址映射異常處理MMU·內(nèi)存保護(hù)CHAPTER04ARM處理器的寄存器組織37個(gè)寄存器的分布、分組與模式相關(guān)可見(jiàn)性RegisterArchitectureARM寄存器總體結(jié)構(gòu)ARM處理器共包含37個(gè)32位寄存器:31個(gè)通用寄存器(R0-R15加各模式備份)和6個(gè)狀態(tài)寄存器(1個(gè)CPSR加5個(gè)SPSR),不同工作模式下可見(jiàn)的寄存器子集不同,這種設(shè)計(jì)使異常響應(yīng)時(shí)能快速保存上下文。通用寄存器R0-R12通用數(shù)據(jù)寄存器,用于算術(shù)運(yùn)算、數(shù)據(jù)傳遞和地址計(jì)算,所有模式共享●支持字節(jié)、半字、字操作DataRegistersR13(SP)堆棧指針每種模式有獨(dú)立的SP寄存器,指向該模式的堆棧空間●用于函數(shù)調(diào)用和異常處理StackPointerR14(LR)鏈接寄存器保存子程序返回地址或異常返回地址,每種模式有獨(dú)立的LR●支持嵌套調(diào)用與快速返回LinkRegisterR15(PC)程序計(jì)數(shù)器指向當(dāng)前執(zhí)行指令地址(ARM狀態(tài))或下條指令地址,所有模式共享●流水線預(yù)取機(jī)制影響PC值ProgramCounterCPSR當(dāng)前狀態(tài)寄存器包含條件標(biāo)志、中斷禁止位和當(dāng)前模式信息●NZCV條件標(biāo)志與中斷控制位StatusRegisterSPSR備份狀態(tài)寄存器5種異常模式各有1個(gè)SPSR,用于保存異常發(fā)生時(shí)的CPSR●異常返回時(shí)自動(dòng)恢復(fù)處理器狀態(tài)SavedStatusARMArchitecture·RegisterCPSR狀態(tài)寄存器詳解CPSR(當(dāng)前程序狀態(tài)寄存器)是ARM狀態(tài)管理的核心,其32位分為條件標(biāo)志位(N/Z/C/V)、控制位(I/F/T中斷與狀態(tài)控制)和模式位(M4:M0)三個(gè)功能區(qū)域,直接決定處理器的運(yùn)行行為和權(quán)限級(jí)別。01條件標(biāo)志位[31:28]—N(負(fù))、Z(零)、C(進(jìn)位)、V(溢出),用于條件指令執(zhí)行判斷,如BEQ、BNE等分支指令02中斷控制位—I位(bit7)禁止IRQ中斷、F位(bit6)禁止FIQ中斷,僅特權(quán)模式可修改這兩個(gè)位03狀態(tài)位T(bit5)—為1時(shí)處于Thumb狀態(tài),為0時(shí)處于ARM狀態(tài),異常發(fā)生時(shí)自動(dòng)清零切換到ARM狀態(tài)04模式位M[4:0](bit4:0)—編碼當(dāng)前工作模式,如10000=用戶(hù)模式、10010=IRQ模式、10001=FIQ模式CPSR關(guān)鍵位字段定義位域名稱(chēng)功能說(shuō)明31N負(fù)標(biāo)志,運(yùn)算結(jié)果為負(fù)時(shí)置130Z零標(biāo)志,運(yùn)算結(jié)果為零時(shí)置129C進(jìn)位標(biāo)志,加法進(jìn)位或減法借位時(shí)置128V溢出標(biāo)志,有符號(hào)運(yùn)算溢出時(shí)置17IIRQ中斷禁止位,為1時(shí)屏蔽IRQ6FFIQ中斷禁止位,為1時(shí)屏蔽FIQ5TThumb狀態(tài)位,為1時(shí)處于Thumb狀態(tài)4:0M模式編碼,決定當(dāng)前工作模式寄存器分組寄存器分組與模式私有寄存器ARM寄存器采用分組機(jī)制,用戶(hù)/系統(tǒng)模式共享R0-R15,而5種異常模式各有私有寄存器用于保存異常上下文。FIQ模式擁有最多私有寄存器(R8-R14加SPSR),減少上下文切換開(kāi)銷(xiāo);其他異常模式各有R13、R14和SPSR三個(gè)私有寄存器。用戶(hù)/系統(tǒng)模式共享R0–R15和CPSR,無(wú)SPSR用戶(hù)模式無(wú)特權(quán)訪問(wèn)權(quán)限,系統(tǒng)模式有特權(quán)但寄存器視圖相同R0–R15IRQ/Abort/Und/SVC各有R13_xxx、R14_xxx兩個(gè)私有通用寄存器各有1個(gè)SPSR_xxx保存進(jìn)入異常時(shí)的CPSR狀態(tài)3私有FIQ模式(快速中斷)擁有R8_fiq到R12_fiq共5個(gè)額外私有數(shù)據(jù)寄存器加上R13_fiq、R14_fiq和SPSR_fiq,共8個(gè)私有寄存器8私有CHAPTER05ARM異常處理異常類(lèi)型、向量表、響應(yīng)流程與返回機(jī)制EXCEPTIONHANDLINGARM七種異常類(lèi)型與優(yōu)先級(jí)ARM定義了七種異常類(lèi)型,按優(yōu)先級(jí)從高到低依次為復(fù)位、數(shù)據(jù)中止、FIQ、IRQ、預(yù)取中止、未定義指令和SWI軟中斷,每種異常對(duì)應(yīng)特定的處理模式和向量地址,構(gòu)成了ARM的事件響應(yīng)基礎(chǔ)框架。ARM異常類(lèi)型優(yōu)先級(jí)與處理模式優(yōu)先級(jí)異常類(lèi)型進(jìn)入模式向量地址1(最高)復(fù)位(Reset)SVC0x000000002數(shù)據(jù)中止(DataAbort)Abort0x000000103FIQ快速中斷FIQ0x0000001C4IRQ普通中斷IRQ0x000000185預(yù)取中止(PrefetchAbort)Abort0x0000000C6未定義指令(Undefined)Undef0x000000047(最低)SWI軟件中斷SVC0x00000008異常優(yōu)先級(jí)決定同時(shí)發(fā)生時(shí)的處理順序,復(fù)位異常最高、SWI最低,每種異常有固定向量地址ExceptionResponse異常響應(yīng)流程詳解ARM異常響應(yīng)時(shí)自動(dòng)執(zhí)行四步操作:保存返回地址到LR、保存CPSR到SPSR、切換工作模式并設(shè)置中斷屏蔽、跳轉(zhuǎn)異常向量地址,確保異常上下文的完整保存和快速響應(yīng)。01保存返回地址將下一條指令地址(R15+偏移)存入當(dāng)前模式的R14_xxx,偏移量取決于異常類(lèi)型和流水線狀態(tài)02保存狀態(tài)寄存器將CPSR復(fù)制到SPSR_xxx,保存異常發(fā)生時(shí)的條件標(biāo)志、中斷狀態(tài)和模式信息03切換工作模式根據(jù)異常類(lèi)型修改CPSR的M[4:0]位進(jìn)入對(duì)應(yīng)模式,復(fù)位/FIQ時(shí)設(shè)置F位禁止FIQ,復(fù)位/FIQ/IRQ時(shí)設(shè)置I位禁止IRQ04跳轉(zhuǎn)異常處理將異常向量地址加載到PC,若處于Thumb狀態(tài)則T位清零,自動(dòng)切換到ARM狀態(tài)執(zhí)行異常處理程序ARM開(kāi)發(fā)板連接JTAG調(diào)試器實(shí)拍EXCEPTIONHANDLING異常返回機(jī)制ARM異常返回通過(guò)恢復(fù)PC和CPSR實(shí)現(xiàn):將LR減去類(lèi)型相關(guān)偏移后送入PC恢復(fù)執(zhí)行位置,將SPSR復(fù)制回CPSR恢復(fù)處理器狀態(tài)。01恢復(fù)PC將R14_xxx減去偏移量后送入R15(PC),偏移量因異常類(lèi)型而異,IRQ/FIQ通常為4字節(jié)。R14→R1502恢復(fù)CPSR將SPSR_xxx復(fù)制回CPSR,自動(dòng)恢復(fù)異常前的條件標(biāo)志、中斷使能位和工作模式。SPSR→CPSR03典型返回指令I(lǐng)RQ用SUBSPC,R14_irq,#4;SWI用MOVSPC,R14_svc,帶S后綴自動(dòng)觸發(fā)SPSR到CPSR的復(fù)制。SUBS·MOVS04特殊情況復(fù)位異常無(wú)需返回,程序從此開(kāi)始執(zhí)行;FIQ處理完畢用SUBSPC,R14_fiq,#4返回。RESET·FIQCHAPTER06ARM處理器的存儲(chǔ)器格式地址空間、字節(jié)序與存儲(chǔ)器映射機(jī)制MEMORYARCHITECTURE存儲(chǔ)器映射與MMU機(jī)制ARM嵌入式系統(tǒng)將4GB地址空間映射到Flash、SDRAM、外設(shè)寄存器等不同物理設(shè)備,帶MMU的處理器還支持虛擬地址轉(zhuǎn)換和頁(yè)級(jí)權(quán)限保護(hù),為運(yùn)行Linux等支持虛擬內(nèi)存的操作系統(tǒng)提供硬件基礎(chǔ)。Flash通常位于低地址區(qū)域,存放Bootloader、內(nèi)核鏡像和文件系統(tǒng),掉電不丟失SDRAM用于運(yùn)行時(shí)數(shù)據(jù)存儲(chǔ),存放操作系統(tǒng)、應(yīng)用程序和用戶(hù)數(shù)據(jù),訪問(wèn)速度快但掉電丟失PeripheralGPIO、UART、定時(shí)器等外設(shè)控制寄存器映射到特定地址,通過(guò)內(nèi)存讀寫(xiě)實(shí)現(xiàn)I/O操作MMU通過(guò)頁(yè)表實(shí)現(xiàn)虛擬地址到物理地址轉(zhuǎn)換,支持4KB/64KB/1MB/16MB四種頁(yè)大小,提供域保護(hù)和訪問(wèn)權(quán)限控制嵌入式開(kāi)發(fā)板Flash與SDRAM芯片實(shí)拍Chapter07ARM處理器的工作狀態(tài)ARM狀態(tài)與Thumb狀態(tài)的切換與編程策略STATESWITCHINGARM與Thumb狀態(tài)切換機(jī)制ARM與Thumb狀態(tài)通過(guò)BX指令和目標(biāo)地址最低位實(shí)現(xiàn)切換:地址bit0=1進(jìn)入Thumb,bit0=0進(jìn)入ARM;異常時(shí)處理器自動(dòng)清零T位確保完整指令集執(zhí)行。01Thumb狀態(tài)進(jìn)入執(zhí)行BXRn且Rn的bit0=1時(shí),處理器將CPSR寄存器的T位置1,隨即進(jìn)入Thumb狀態(tài),開(kāi)始執(zhí)行16位壓縮指令集,顯著降低代碼體積。02ARM狀態(tài)返回執(zhí)行BXRn且Rn的bit0=0時(shí),處理器將CPSR的T位清零,切換回ARM狀態(tài),恢復(fù)32位指令執(zhí)行,獲得更高的處理性能和更豐富的指令功能。03異常自動(dòng)切換當(dāng)異常或中斷發(fā)生時(shí),處理器硬件自動(dòng)將T位清零,強(qiáng)制從Thumb狀態(tài)切換到ARM狀態(tài)執(zhí)行異常處理程序,確保異常處理?yè)碛型暾?2位指令集支持。04編譯器自動(dòng)處理GCC通過(guò)-mthumb編譯選項(xiàng)生成Thumb代碼,在函數(shù)間調(diào)用時(shí)自動(dòng)插入狀態(tài)切換代碼(veneers),開(kāi)發(fā)者無(wú)需手動(dòng)管理狀態(tài)轉(zhuǎn)換,編譯器保證調(diào)用約定的正確性。CHAPTER08嵌入式開(kāi)發(fā)環(huán)境構(gòu)建交叉編譯、工具鏈配置與調(diào)試方法EMBEDDEDDEBUGGING嵌入式開(kāi)發(fā)輔助設(shè)備與調(diào)試嵌入式開(kāi)發(fā)依賴(lài)SD卡(啟動(dòng)介質(zhì))、USB轉(zhuǎn)串口線(調(diào)試輸出)和JTAG調(diào)試器(硬件調(diào)試)等輔助設(shè)備,這些工具解決了嵌入式系統(tǒng)無(wú)法本地運(yùn)行調(diào)試、需要專(zhuān)用啟動(dòng)介質(zhì)和硬件級(jí)調(diào)試支持的特殊需求。01SD卡作為啟動(dòng)介質(zhì):PC端燒錄鏡像到SD卡,插入目標(biāo)板卡槽后設(shè)置啟動(dòng)方式從SD卡引導(dǎo)系統(tǒng)啟動(dòng)介質(zhì)02USB轉(zhuǎn)串口線:連接PC與開(kāi)發(fā)板串口,通過(guò)minicom/PuTTY等終端軟件監(jiān)視調(diào)試輸出和系統(tǒng)日志調(diào)試輸出03JTAG調(diào)試器:通過(guò)JTAG/SWD接口連接目標(biāo)機(jī),支持?jǐn)帱c(diǎn)設(shè)置、單步執(zhí)行、內(nèi)存查看等硬件級(jí)調(diào)試功能硬件調(diào)試04Bootloader:嵌入式系統(tǒng)需要U-Boot等引導(dǎo)程序,必須首先存在于可啟動(dòng)介質(zhì)中,負(fù)責(zé)加載內(nèi)核鏡像U-BootJTAG調(diào)試器連接STM32開(kāi)發(fā)板實(shí)拍EmbeddedToolchainARM嵌入式開(kāi)發(fā)工具鏈ARM嵌入式

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論