嵌入式系統(tǒng)導(dǎo)論(第2版)-教學(xué)課件 嵌入式導(dǎo)論02_第1頁
嵌入式系統(tǒng)導(dǎo)論(第2版)-教學(xué)課件 嵌入式導(dǎo)論02_第2頁
嵌入式系統(tǒng)導(dǎo)論(第2版)-教學(xué)課件 嵌入式導(dǎo)論02_第3頁
嵌入式系統(tǒng)導(dǎo)論(第2版)-教學(xué)課件 嵌入式導(dǎo)論02_第4頁
嵌入式系統(tǒng)導(dǎo)論(第2版)-教學(xué)課件 嵌入式導(dǎo)論02_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)導(dǎo)論主講教師:第2章ARMCortex-M3處理器本章內(nèi)容提要2.1ARM處理器2.2Cortex-M3處理器結(jié)構(gòu)2.3Cortex-M3處理器的寄存器2.4Cortex-M3處理器的存儲(chǔ)器組織參考資料:ARM開發(fā)者網(wǎng)站Cortex-M3設(shè)備一般用戶指南

Cortex-M3DevicesGenericUserGuide為軟件開發(fā)人員提供的用戶指南提供程序員模型、核心外設(shè)的詳細(xì)信息、指令集的通用信息Cortex-M3技術(shù)參考手冊

Cortex-M3TechnicalReferenceManual

Cortex-M3處理器產(chǎn)品的技術(shù)規(guī)格書(TRM)包括諸如指令時(shí)序、部分接口信息等參考資料:STM32網(wǎng)站編號PM0056的Cortex-M3編程手冊STM32F10xxxCortex-M3programmingmanual為使用STM32的開發(fā)人員提供Cortex-M3基本知識(shí)提供編程模型、指令集和核心外設(shè)的編程知識(shí)/content/st_com/zh.html/ARM(AdvancedRISCMachines)ARM公司著名的處理器設(shè)計(jì)公司,成立于1990年總部位于英國劍橋ARM處理器ARM公司專注于設(shè)計(jì)、并不制作和銷售處理器芯片授權(quán)轉(zhuǎn)讓設(shè)計(jì)許可、合作公司開發(fā)生產(chǎn)芯片ARM技術(shù)體積小、功耗少、成本低、性能高等優(yōu)勢基于精簡指令集計(jì)算機(jī)RISC思想2.1ARM處理器ARM處理器體系結(jié)構(gòu)8個(gè)版本的ARM體系結(jié)構(gòu)(Architecture)版本v4開始被廣泛應(yīng)用,目前主要使用v7、v8結(jié)構(gòu)授權(quán)廠商生產(chǎn)多種ARM處理器系列(family)基于不同版本的結(jié)構(gòu)版本號與處理器系列(數(shù)字)并不一致例如,ARM7、ARM9、ARM11等ARMv7、v8結(jié)構(gòu)使用Cortex作為ARM處理器商標(biāo)面向不同應(yīng)用領(lǐng)域劃分成3種系列·Cortex-A·Cortex-R·Cortex-M2021年,ARM宣布ARMv9體系結(jié)構(gòu)ARMCortex處理器Cortex-A(Application)基于ARMv7-A(ARMv8-A)體系結(jié)構(gòu)用于高性能開放應(yīng)用程序平臺(tái),支持操作系統(tǒng)Cortex-R(Real-time)基于ARMv7-R(ARMv8-R)體系結(jié)構(gòu)用于實(shí)時(shí)性要求的高端嵌入式系統(tǒng)Cortex-M(Microcontroller)基于ARMv7-M(ARMv8-M)和ARMv6-M體系結(jié)構(gòu)用于運(yùn)行實(shí)時(shí)控制系統(tǒng)的小規(guī)模應(yīng)用程序Cortex-M系列處理器廣泛應(yīng)用于現(xiàn)代微控制器產(chǎn)品、以及片上系統(tǒng)SoC和專用標(biāo)準(zhǔn)產(chǎn)品ASSPCortex-M3是ARM公司的第一個(gè)Cortex系列處理器Cortex-M3和Cortex-M4基于ARMv7-M體系結(jié)構(gòu)Cortex-M0、Cortex-M0+和Cortex-M1

基于ARMv6-M體系結(jié)構(gòu),指令集更小Cortex-M0和Cortex-M0+針對低成本微控制器產(chǎn)品Cortex-M1專為FPGA應(yīng)用設(shè)計(jì)用于替代傳統(tǒng)的ARM7(甚至ARM9)處理器2.2Cortex-M3處理器結(jié)構(gòu)高性能、低功耗、32位RISC處理器基于ARMv7-M結(jié)構(gòu),只執(zhí)行Thumb-2指令3段指令流水線(取指-譯碼-執(zhí)行)可嵌套向量中斷控制器NVIC4GB地址空間,統(tǒng)一的存儲(chǔ)器地址分配哈佛(存儲(chǔ))結(jié)構(gòu)允許指令和數(shù)據(jù)同時(shí)訪問一系列內(nèi)部調(diào)試部件,支持多種調(diào)試接口(可選)存儲(chǔ)器保護(hù)單元MPU……復(fù)雜指令集和精簡指令集復(fù)雜指令集計(jì)算機(jī)CISC(CISC:ComplexInstructionSetComputer)指令豐富、程序設(shè)計(jì)方便、程序短小、執(zhí)行性能高處理器硬件復(fù)雜,不易使用先進(jìn)的流水線技術(shù),導(dǎo)致其執(zhí)行速度和性能難以進(jìn)一步提高精簡指令集計(jì)算機(jī)RISC(RISC:ReducedInstructionSetComputer)指令系統(tǒng)很簡單,只有少數(shù)簡單、常用的指令處理器硬件簡單,比較方便地實(shí)現(xiàn)優(yōu)化RISC技術(shù)的主要特點(diǎn)指令條數(shù)較少尋址方式簡單面向寄存器操作指令格式規(guī)整單周期執(zhí)行先進(jìn)的流水線技術(shù)編譯器優(yōu)化……Load-Store結(jié)構(gòu)Load:從主存讀取數(shù)據(jù)Store:把數(shù)據(jù)寫入主存Load-Store結(jié)構(gòu):只有Load和Store指令存取主存數(shù)據(jù),其他運(yùn)算指令的操作數(shù)均在寄存器中馮·諾依曼存儲(chǔ)結(jié)構(gòu)和哈佛存儲(chǔ)結(jié)構(gòu)指令存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器哈弗結(jié)構(gòu)處理器總線總線存儲(chǔ)器指令數(shù)據(jù)馮·諾依曼結(jié)構(gòu)處理器總線馮·諾依曼存儲(chǔ)結(jié)構(gòu)系統(tǒng)只有一個(gè)存儲(chǔ)空間指令和數(shù)據(jù)共存于此占用不同的存儲(chǔ)區(qū)域哈佛存儲(chǔ)結(jié)構(gòu)系統(tǒng)有兩個(gè)存儲(chǔ)空間一個(gè)用于存儲(chǔ)指令一個(gè)用于存儲(chǔ)數(shù)據(jù)Cortex-M3功能模塊Cortex-M3的兩個(gè)操作狀態(tài)工作狀態(tài)(ThumbState)Cortex-M3啟動(dòng)后 執(zhí)行程序代碼(Thumb指令)的工作狀態(tài)調(diào)試狀態(tài)(DebugState)通過調(diào)試程序的停止請求或者處理器調(diào)試事件 才能進(jìn)入的調(diào)試狀態(tài)停止執(zhí)行指令,只應(yīng)用于調(diào)試操作Thumb狀態(tài)和Debug狀態(tài)Cortex-M3的兩級特權(quán)層次在工作狀態(tài)時(shí),處理器具有兩級特權(quán)層次特權(quán)級(PrivilegedLevel)可以訪問所有處理器資源,執(zhí)行所有指令可執(zhí)行異常處理程序和應(yīng)用程序用戶級(非特權(quán)級,UnprivilegedLevel)不能訪問部分受限的存儲(chǔ)區(qū)域和進(jìn)行部分操作只能執(zhí)行應(yīng)用程序特權(quán)級用戶級異常程序異常模式非法應(yīng)用程序線程模式線程模式Cortex-M3的兩種操作模式在工作狀態(tài)時(shí),處理器還具有兩種操作模式異常模式(例程模式,HandlerMode)只能在特權(quán)級下,執(zhí)行異常處理程序線程模式(ThreadMode)特權(quán)級和用戶級下,執(zhí)行應(yīng)用程序復(fù)位后,處理器默認(rèn)進(jìn)入工作狀態(tài)的特權(quán)級下的線程模式執(zhí)行應(yīng)用程序特權(quán)級用戶級異常程序異常模式非法應(yīng)用程序線程模式線程模式兩級特權(quán)層次和兩種操作模式2.3Cortex-M3的寄存器通用寄存器應(yīng)用程序主要使用的寄存器16個(gè),32位,名稱:R0–R15R13是(堆)棧指針寄存器SP(StackPointer)R14是連接寄存器LR(LinkRegister)R15是程序計(jì)數(shù)器PC(ProgramCounter)專用寄存器程序狀態(tài)寄存器PSR(ProgramStatusRegister)中斷/異常屏蔽寄存器控制寄存器CONTROLCortex-M3的通用寄存器Cortex-M3的專用寄存器2.4Cortex-M3的存儲(chǔ)器組織32位地址,支持4GB線性地址空間0x00000000–0xFFFFFFFF哈佛(存儲(chǔ))結(jié)構(gòu),共用存儲(chǔ)器地址空間代碼區(qū)數(shù)據(jù)區(qū)外設(shè)區(qū)處理器系統(tǒng)外設(shè)區(qū)等Cortex-M3的地址空間分配位帶區(qū)(BitBandRegion)數(shù)據(jù)位的常規(guī)操作外設(shè)控制常要針對字中某個(gè)位(Bit)操作以字節(jié)編址的存儲(chǔ)器地址空間中,需要3步驟1.(從外設(shè))讀取包含該位的字節(jié)數(shù)據(jù)2.設(shè)置該位為0或1、同時(shí)屏蔽其他位(不改)3.將包含該位的字節(jié)數(shù)據(jù)寫入(外設(shè))

LDRr0,=0x20000300

LDRr1,[r0] ;讀取數(shù)據(jù)

ORRr1,r1,#0x4

;D2位設(shè)置為1

STRr1,[r0] ;寫回結(jié)果數(shù)據(jù)位的位段操作數(shù)據(jù)位若采用位編址(每位具有一個(gè)地址)就可以直接針對這個(gè)地址讀寫代碼會(huì)更加緊湊、執(zhí)行效率更高

LDRr0,=0x22006008MOVr1,#1 ;D2位設(shè)置為1

STRr1,[r0] ;寫入結(jié)果0x20000300

0x22006008

位帶區(qū)地址別名映射位帶區(qū)的地址映射0x20000000~0x200FFFFF

0x22000000~0x23FFFFFF

別名地址(32MB)數(shù)據(jù)區(qū)(1MB)0x40000000~0x400FFFFF

0x42000000~0x43FFFFFF

別名地址(32MB)外設(shè)區(qū)(1MB)別名地址

=位帶基址

+字節(jié)偏移量×32+位號×4地址映射示例字地址0x20000300中位號2的位位段基址=0x22000000字節(jié)偏移量=0x20000300-0x20000000=0x300別名地址

=0x22000000+0x300×32+2×4

=0x22006008位號乘以4(二進(jìn)制左移2位)的原因保證每個(gè)別名地址是4字節(jié)地址對齊其他3個(gè)地址不用字節(jié)偏移量乘以32(二進(jìn)制左移5位)的原因一個(gè)字節(jié)8位共占用32個(gè)地址位帶區(qū)和別名區(qū)關(guān)系對齊與不對齊地址訪問支持不對齊地址邊界的數(shù)據(jù)傳輸,使編譯器 更自由的在存儲(chǔ)器

溫馨提示

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

評論

0/150

提交評論