單片機與嵌入式系統(tǒng)原理及應(yīng)用 課件 第7、8章 ARM嵌入式微處理器及應(yīng)用、嵌入式實時操作系統(tǒng)μCOS-Ⅱ_第1頁
單片機與嵌入式系統(tǒng)原理及應(yīng)用 課件 第7、8章 ARM嵌入式微處理器及應(yīng)用、嵌入式實時操作系統(tǒng)μCOS-Ⅱ_第2頁
單片機與嵌入式系統(tǒng)原理及應(yīng)用 課件 第7、8章 ARM嵌入式微處理器及應(yīng)用、嵌入式實時操作系統(tǒng)μCOS-Ⅱ_第3頁
單片機與嵌入式系統(tǒng)原理及應(yīng)用 課件 第7、8章 ARM嵌入式微處理器及應(yīng)用、嵌入式實時操作系統(tǒng)μCOS-Ⅱ_第4頁
單片機與嵌入式系統(tǒng)原理及應(yīng)用 課件 第7、8章 ARM嵌入式微處理器及應(yīng)用、嵌入式實時操作系統(tǒng)μCOS-Ⅱ_第5頁
已閱讀5頁,還剩136頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章ARM嵌入式微處理器及應(yīng)用7.1ARM微處理器

7.1.1ARM簡介 7.1.2ARM微處理器系列 7.1.3ARM微處理器的應(yīng)用領(lǐng)域及特點7.1.4ARM微處理器的應(yīng)用選型

7.2ARM微處理器的體系結(jié)構(gòu) 7.3STM32F103系列微控制器基本原理及應(yīng)用ARM——AdvanceRISCMachineARM——RISC結(jié)構(gòu)知識產(chǎn)權(quán)(IP)提供商第7章ARM嵌入式微處理器及應(yīng)用英國劍橋的ARM總部7.1.1ARM簡介將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片...第7章ARM嵌入式微處理器及應(yīng)用成立于1990年11月前身為Acorn計算機公司AcornRISCMachineAdvanceRISCMachine(ARM)主要設(shè)計ARM系列RISC處理器內(nèi)核授權(quán)ARM內(nèi)核給生產(chǎn)和銷售半導(dǎo)體的合作伙伴ARM公司不生產(chǎn)芯片知識產(chǎn)權(quán)IP(IntelligenceProperty)提供基于ARM架構(gòu)的開發(fā)設(shè)計技術(shù)軟件工具,評估板,調(diào)試工具,應(yīng)用軟件總線架構(gòu),外圍設(shè)備單元等第7章ARM嵌入式微處理器及應(yīng)用7.1.2ARM微處理器系列Classic系列ARM7微處理器ARM7為低功耗的32位RISC處理器,采用馮

諾依曼體系結(jié)構(gòu)。ARM7微處理器系列具有如下特點:具有嵌入式ICE-RT邏輯,無論調(diào)試還是開發(fā)都很方便。能夠提供0.9MIPS/MHz的三級流水線結(jié)構(gòu)。代碼密度高并兼容16位的Thumb指令集。支持WindowsCE、Linux、PalmOS等嵌入式操作系統(tǒng)。指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶程序的升級和產(chǎn)品的更新?lián)Q代。主頻最高可達130MIPS。第7章ARM嵌入式微處理器及應(yīng)用Classic系列ARM9微處理器ARM9內(nèi)核為32位RISC處理器,采用哈佛結(jié)構(gòu)。ARM9內(nèi)核微處理器具有以下特點:5級整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的運行速率。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。內(nèi)含全性能的MMU。內(nèi)含MPU,支持實時操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache。第7章ARM嵌入式微處理器及應(yīng)用Classic系列ARM11微處理器ARM1136J-S是第一個執(zhí)行ARMv6架構(gòu)指令的處理器。ARM1136J-S的主要特點如下:集成了具有獨立的load-sotore和算術(shù)流水線的8級流水線。ARMv6指令包含了針對媒體處理的單指令流多數(shù)據(jù)流(SIMD)擴展。采用特殊的設(shè)計,以改善視頻處理性能。為了進行快速浮點運算,增加了向量浮點單元。第7章ARM嵌入式微處理器及應(yīng)用Cortex系列內(nèi)核第7章ARM嵌入式微處理器及應(yīng)用Cortex-M—面向各類嵌入式應(yīng)用的微控制器內(nèi)核Cortex-R—面向?qū)崟r應(yīng)用的高性能內(nèi)核Cortex-A—面向性能密集型系統(tǒng)的應(yīng)用處理器內(nèi)核Cortex-A50—基于ARMv8架構(gòu),支持64位處理Cortex系列內(nèi)核1.25Thumb-20.74Thumb/0.93ARMDMIPS/MHzxPSR.2modes.Stackedregs(1bank)PSR.6modes.20Bankedregs系統(tǒng)狀態(tài)ArchitectureDefinedUndefined存儲器印射Three

No睡眠模式12Cycles(6whenTailChaining)24-42Cycles(DependingonLSM)中斷響應(yīng)時間NMI,SysTickandupto240interrupts.IntegratedNVICInterruptControllerupto1-255PrioritiesFIQ/IRQ中斷3-Stage+BranchSpeculation3-Stage流水線Thumb-2(Merged32/16-bit)ARM(32-bit)&Thumb(16-bit)指令集v7Mv4T體系結(jié)構(gòu)Cortex-M3ARM7TDMI-S第7章ARM嵌入式微處理器及應(yīng)用Cortex系列內(nèi)核第7章ARM嵌入式微處理器及應(yīng)用

該處理器是首款基于ARMv7-M架構(gòu)的處理器,采用了純Thumb2指令的執(zhí)行方式,具有極高的運算能力和中斷相應(yīng)能力。

Cortex-M3主要應(yīng)用于汽車車身系統(tǒng),工業(yè)控制系統(tǒng)和無線網(wǎng)絡(luò)等對功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域。目前最便宜的基于該內(nèi)核的ARM單片機售價為1美元。CortexTM-M3處理器簡介Cortex系列內(nèi)核第7章ARM嵌入式微處理器及應(yīng)用STM32F103系列微控制器新的基于ARM內(nèi)核的32位MCU系列內(nèi)核為ARM公司為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的Cortex-M3內(nèi)核超前的體系結(jié)構(gòu)高性能,低電壓,低功耗,創(chuàng)新的內(nèi)核以及外設(shè)簡單易用/自由/低風(fēng)險第7章ARM嵌入式微處理器及應(yīng)用1.ARM微處理器的應(yīng)用領(lǐng)域(1)工業(yè)控制領(lǐng)域:作為32位的RISC架構(gòu),基于ARM核的微控制器芯

片不但占據(jù)了高端微控制器市場的大部分市場份額,而且逐漸向低

端微控制器應(yīng)用領(lǐng)域擴展,ARM微控制器的低功耗、高性價比向傳

統(tǒng)的8位/16位微控制器提出了挑戰(zhàn)。(2)無線通信領(lǐng)域:目前已有超過85%的無線通信設(shè)備采用了ARM技術(shù)。(3)網(wǎng)絡(luò)應(yīng)用(4)消費類電子產(chǎn)品(5)成像和安全產(chǎn)品7.1.3ARM微處理器的應(yīng)用領(lǐng)域及特點第7章ARM嵌入式微處理器及應(yīng)用2.ARM微處理器的特點采用RISC架構(gòu)的ARM微處理器一般具有如下特點。(1)體積小、低功耗、低成本、高性能;(2)支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位

/16位器件;(3)大量使用寄存器,指令執(zhí)行速度更快;(4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;(5)尋址方式靈活簡單,執(zhí)行效率高;(6)指令長度固定。7.1.3ARM微處理器的應(yīng)用領(lǐng)域及特點第7章ARM嵌入式微處理器及應(yīng)用1.ARM微處理器內(nèi)核的選擇2.系統(tǒng)的工作頻率3.芯片內(nèi)存儲器的容量4.片內(nèi)外圍電路的選擇7.1.4ARM微處理器的應(yīng)用選型第7章ARM嵌入式微處理器及應(yīng)用第7章ARM嵌入式微處理器及應(yīng)用7.1ARM微處理器 7.2ARM微處理器的體系結(jié)構(gòu) 7.2.1嵌入式微處理器的體系結(jié)構(gòu) 7.2.2ARM微處理器的工作模式及狀態(tài) 7.2.3ARM微處理器的寄存器結(jié)構(gòu) 7.2.4ARM微處理器支持的數(shù)據(jù)類型和存儲模式7.3STM32F103系列微控制器基本原理及應(yīng)用 1.RISC架構(gòu)RISC是精簡指令集計算機的縮寫,其目標(biāo)是設(shè)計出在高時鐘頻率下單周期執(zhí)行,簡單而有效的指令集。ARM內(nèi)核采用RISC架構(gòu)。精簡指令集計算機RISC(ReducedInstructionSetComputer)是在復(fù)雜指令集計算機CISC(ComplexInstructionSetComputer)的基礎(chǔ)上產(chǎn)生并發(fā)展起來的;RISC通過簡化指令系統(tǒng)使計算機的結(jié)構(gòu)更加簡單合理,運算效率更高;RISC優(yōu)先選取使用頻率最高的簡單指令,避免復(fù)雜指令;指令長度固定,指令格式和尋址方式種類減少;以控制邏輯為主,不用或少用微碼控制等,RISC已經(jīng)成為當(dāng)前計算機發(fā)展不可逆轉(zhuǎn)的趨勢。7.2.1嵌入式微處理器的體系結(jié)構(gòu)第7章ARM嵌入式微處理器及應(yīng)用到目前為止,RISC架構(gòu)也沒有嚴(yán)格的定義,一般認(rèn)為,RISC架構(gòu)應(yīng)具有如下特點。(1)采用固定長度的指令格式,指令規(guī)整、簡單,基本尋址方式有2~3種。(2)使用單周期指令,便于流水線操作執(zhí)行。(3)大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。除此以外,ARM還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:(1)所有指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率;(2)可用加載/存儲指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率;(3)可在一條數(shù)據(jù)處理指令中同時完成邏輯處理和移位處理;(4)在循環(huán)處理中使用地址的自動增減來提高運行效率。第7章ARM嵌入式微處理器及應(yīng)用2.體系結(jié)構(gòu)馮·諾依曼結(jié)構(gòu)

馮·諾依曼理論的要點是:數(shù)字計算機的數(shù)制采用二進制;計算機應(yīng)該按照程序順序執(zhí)行。其主要內(nèi)容如下。(1)計算機由控制器、運算器、存儲器、輸入設(shè)備、輸出設(shè)備5部分組成。(2)程序和數(shù)據(jù)以二進制代碼形式不加區(qū)別地存放在存儲器中,存放位置由地址確定。(3)控制器根據(jù)存放在存儲器中的指令序列(程序)進行工作,并由一個程序計數(shù)器控制指令執(zhí)行??刂破骶哂信袛嗄芰Γ芨鶕?jù)計算結(jié)果選擇不同的工作流程。第7章ARM嵌入式微處理器及應(yīng)用哈佛(Harvard)結(jié)構(gòu)哈佛體系結(jié)構(gòu)的特點如下。(1)使用兩個獨立的存儲器模塊,分別存儲指令和數(shù)據(jù),每個存儲模塊都不允許指令和數(shù)據(jù)并存,以便實現(xiàn)并行處理。(2)具有一條獨立的地址總線和一條獨立的數(shù)據(jù)總線,利用公用地址總線訪問兩個存儲模塊(程序存儲模塊和數(shù)據(jù)存儲模塊),公用數(shù)據(jù)總線則被用來完成程序存儲模塊或數(shù)據(jù)存儲模塊與CPU之間的數(shù)據(jù)傳輸。第7章ARM嵌入式微處理器及應(yīng)用3.流水線技術(shù)是將一個重復(fù)的時序分解成若干個子過程,而每個子過程都可以有效地在其專用功能段上與其它子過程同時執(zhí)行。指令流水線就是將一條指令分解成一連串執(zhí)行的子過程。ARM7采用馮?諾依曼結(jié)構(gòu),典型的三級流水線;而ARM9則采用哈佛結(jié)構(gòu),五級流水線。第7章ARM嵌入式微處理器及應(yīng)用ARM7的三級最佳流水線:取指--譯碼--執(zhí)行ARM9的五級最佳流水線第7章ARM嵌入式微處理器及應(yīng)用7.2.2ARM微處理器工作模式及狀態(tài)1.ARM微處理器的7種工作模式除用戶模式外,其他模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計上只允許(或者可選為只允許)在特權(quán)模式下訪問。此外,特權(quán)模式可以自由地切換處理器模式,而用戶模式不能直接切換到別的模式。第7章ARM嵌入式微處理器及應(yīng)用2.ARM處理器的2種工作狀態(tài)

ARM狀態(tài)

32位,ARM狀態(tài)下執(zhí)行字對準(zhǔn)的32位ARM指令;Thumb狀態(tài)

16位,Thumb狀態(tài)下執(zhí)行半字對準(zhǔn)的16位Thumb指令。

Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省30%~40%的存儲空間,同時具備32位代碼的所有優(yōu)點。第7章ARM嵌入式微處理器及應(yīng)用3.控制程序的3種執(zhí)行流程方式

順序執(zhí)行

跳轉(zhuǎn)指令

異常中斷第7章ARM嵌入式微處理器及應(yīng)用7.2.3ARM寄存器31個通用寄存器R0-R15;R13_svc、R14_svc;R13_abt、R14_abt;R13_und、R14_und;R13_irq、R14_irq;R8_frq-R14_frq。

6個狀態(tài)寄存器CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiqARM處理器共有7種不同的處理器模式,每種模式都有一組相應(yīng)的寄存器組,最多可以18個活動的寄存器。第7章ARM嵌入式微處理器及應(yīng)用ARM狀態(tài)各模式下的寄存器寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_scvR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR13_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq

所有的37個寄存器,分成兩大類:31個通用32位寄存器;6個狀態(tài)寄存器。第7章ARM嵌入式微處理器及應(yīng)用ARM狀態(tài)各模式下可以訪問的寄存器寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq第7章ARM嵌入式微處理器及應(yīng)用第7章ARM嵌入式微處理器及應(yīng)用未分組的通用寄存器寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_scvR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR13_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq寄存器R0~R7為未分組的通用寄存器,它們在任何處理器模式都對應(yīng)于相同的32位物理寄存器。第一類分組的通用寄存器寄存器R8~R12有兩個分組的物理寄存器。一個用于除FIQ模式之外的所有寄存器模式,另一個用于FIQ模式。在發(fā)生FIQ中斷后,處理器不必為保護寄存器而浪費時間,從而加速了FIQ的處理速度。第二類分組的通用寄存器寄存器R13、R14分別有6個分組的物理寄存器。1個用于用戶和系統(tǒng)模式,其余5個分別用于5種異常模式。寄存器R13通常作為堆棧指針(SP),用于保存待使用的寄存器的內(nèi)容。寄存器R14稱為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個特殊功能:當(dāng)使用BL指令調(diào)用子程序時,返回地址將自動存入R14中;當(dāng)發(fā)生異常時,將R14對應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個小的固定偏移量)。程序計數(shù)器寄存器R15稱為程序計數(shù)器(PC),它指向正在“取指”的指令。狀態(tài)寄存器寄存器CPSR為當(dāng)前程序狀態(tài)寄存器,在異常模式中,另外一個寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問。每種異常都有自己的SPSR,在進入異常時它保存CPSR的當(dāng)前值,異常退出時可通過它恢復(fù)CPSR。寄存器說明第7章ARM嵌入式微處理器及應(yīng)用程序狀態(tài)寄存器

ARM內(nèi)核包含1個CPSR和5個僅供異常處理程序使用的SPSR。CPSR反映當(dāng)前處理器的狀態(tài),其包含:4個條件代碼標(biāo)志(負(fù)標(biāo)志N、零標(biāo)志Z、進位標(biāo)志C和溢出標(biāo)志V);2個中斷禁止位(IRQ禁止與FIQ禁止);5個對當(dāng)前處理器模式進行編碼的位(M[4:0]);1個用于指示當(dāng)前執(zhí)行指令的位(ARM指令還是Thumb指令)。第7章ARM嵌入式微處理器及應(yīng)用程序狀態(tài)寄存器的格式NZCV——IM0M1M2M3M4TF—...313029282726876543210條件代碼標(biāo)志保留控制位溢出標(biāo)志進位或借位擴展零負(fù)或小于IRQ禁止FIQ禁止?fàn)顟B(tài)位模式位NZCVIM0M1M2M3M4TF第7章ARM嵌入式微處理器及應(yīng)用條件代碼標(biāo)志各標(biāo)志位的含義如下:負(fù)標(biāo)志N:運算結(jié)果的第31位值,記錄標(biāo)志設(shè)置操作的結(jié)果;零標(biāo)志Z:如果標(biāo)志設(shè)置的操作為0,則置位;進位標(biāo)志C:記錄無符號加法溢出,減法無借位,循環(huán)移位;溢出標(biāo)志V:記錄標(biāo)志設(shè)置操作的有符號溢出。注意:ARM處理器對這些位進行測試,以決定是否執(zhí)行一條指令,這樣就可以不用程序跳轉(zhuǎn)也能實現(xiàn)條件執(zhí)行。第7章ARM嵌入式微處理器及應(yīng)用

警告:絕對不要強制改變CPSR寄存器中的控制位T。如果這樣做,處理器將進入一個無法預(yù)測的狀態(tài)。控制位1、中斷禁止控制位I和F;2、處理器狀態(tài)位T;3、處理器模式位M0~M4。當(dāng)控制位I置位時,IRQ中斷被禁止;當(dāng)控制位F置位時,F(xiàn)IQ中斷被禁止。當(dāng)控制位T置位時,處理器正在Thumb狀態(tài)下運行;當(dāng)控制位T清零時,處理器正在ARM狀態(tài)下運行。M[4:0]模式可見的Thumb狀態(tài)寄存器可見的ARM狀態(tài)寄存器10000用戶R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR10001快速中斷R0~R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiqR0~R7,R8_fiq~R14_fiq,PC,CPSR,SPSR_fiq10010中斷R0~R7,SP_irq,LR_irq,PC,CPSR,SPSR_fiqR0~R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq10011管理R0~R7,SP_svc,LR_svc,PC,CPSR,SPSR_svcR0~R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc10111中止R0~R7,SP_abt,LR_abt,PC,CPSR,SPSR_abtR0~R12,R13_abt,R14_abt,PC,CPSR,SPSR_abt11011未定義R0~R7,SP_und,LR_und,PC,CPSR,SPSR_undR0~R12,R13_und,R14_und,PC,CPSR,SPSR_und11111系統(tǒng)R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR

注意:不是所有模式位的組合都定義了有效的處理器模式,如果將非法值寫入M[4:0]中,處理器將進入一個無法恢復(fù)的模式。第7章ARM嵌入式微處理器及應(yīng)用保留位CPSR中的保留位被保留將來使用。當(dāng)改變CPSR標(biāo)志和控制位時,請確認(rèn)沒有改變這些保留位。另外,請確保您的程序不依賴于包含特定值的保留位,因為將來的處理器可能會將這些位設(shè)置為1或者0。第7章ARM嵌入式微處理器及應(yīng)用7.2.4ARM支持的數(shù)據(jù)類型和存儲模式1.ARM支持的數(shù)據(jù)類型(1)字:在ARM體系中,每個字的長度是32位,占4個字節(jié)的存儲單元,

而在8/16位處理器中字長一般是16位。(2)半字:在ARM體系中,半字的長度是16位,占2個字節(jié)的存儲單元。(3)字節(jié):在ARM體系中,每個字節(jié)的長度是8位,占一個存儲單元,

這與8/16位處理器中字節(jié)的長度是一樣的。第7章ARM嵌入式微處理器及應(yīng)用2.ARM支持的存儲模式最小的可尋址的存儲器單位為一個字節(jié)。一個字節(jié)對應(yīng)一個唯一的地址,所有地址的集合稱為存儲器空間。對于一個多字節(jié)類型的數(shù)據(jù),在存儲器中有兩種數(shù)據(jù)存放方法:一種是低字節(jié)數(shù)據(jù)存放在內(nèi)存低地址處,高字節(jié)數(shù)據(jù)存放在內(nèi)存高地址處,稱為小端字節(jié)順序存儲法;另一種是高字節(jié)數(shù)據(jù)存放在低地址處,低字節(jié)數(shù)據(jù)存放在高地址處,稱為大端字節(jié)順序存儲法。第7章ARM嵌入式微處理器及應(yīng)用第7章ARM嵌入式微處理器及應(yīng)用7.1ARM微處理器 7.2ARM微處理器的體系結(jié)構(gòu) 7.3STM32F103系列微控制器基本原理及應(yīng)用7.3.1STM32F103系列微控制器內(nèi)部結(jié)構(gòu) 7.3.2STM32F103系列微控制器片內(nèi)外設(shè)概述7.3.3基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)STM32系列微控制器概述STM32系列微控制器使用來自于ARM公司具有突破性的Cortex-M3內(nèi)核,該內(nèi)核是專門設(shè)計于滿足集高性能、低功耗、實時應(yīng)用、高性價比于一體的嵌入式領(lǐng)域的要求。STM32系列給MCU用戶帶來了前所未有的自由空間,提供了全新的32位產(chǎn)品選項,結(jié)合了高性能、實時、低功耗、低電壓等特性,同時保持了高集成度和易于開發(fā)的優(yōu)勢。嵌入式系統(tǒng)原理與接口技術(shù)39第7章ARM嵌入式微處理器及應(yīng)用STM32系列微控制器新的基于ARM內(nèi)核的32位MCU系列內(nèi)核為ARM公司為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的Cortex-M3內(nèi)核超前的體系結(jié)構(gòu)高性能,低電壓,低功耗,創(chuàng)新的內(nèi)核以及外設(shè)簡單易用/自由/低風(fēng)險管腳,軟件和外設(shè)全線兼容FLASH——32KB,64KB,128KBRAM——6KB,10KB,20KB封裝——LQFP-48/LQFP-64/LQFP-100/BGA-100電壓范圍2.0到3.6VI/O電壓容限為5V第7章ARM嵌入式微處理器及應(yīng)用Bothlineshaveupto:5xUSART2xSPI2xI2CRTC11+DMA2xWDG5x16-bitTIMERS

80%GPIOratio

12bADC(1μs)Tempsensor

36MHzCPUUpto48KBSRAMUpto512KBFLASH

Upto64KBSRAM

CAN

USB

ACtimer

EMI*2x12bADC

(1μs)Temp

sensor

DAC*

72MHzCPUInt8MHzRC

Int32kHzRCPOR/PDR/

PVDbrownout“基本型”系列“增強型”系列

EMI*

DAC*I2S**只有在Flash大于256KB(包含)的芯片上才包括DAC,EMI(144pins),I2S,SDIOSDIO*STM32F10x的兩條產(chǎn)品線第7章ARM嵌入式微處理器及應(yīng)用STM32系列微控制器的優(yōu)勢由于STM32系列微控制器的定位是針對傳統(tǒng)的嵌入式入門市場,因此相對于傳統(tǒng)的8051、AVR等單片機,其巨大的優(yōu)勢顯露無遺。主要體現(xiàn)在以下幾個方面:1.25DMIPS/MHz和0.19mW/MHz;支持Thumb-2指令集;單周期乘法指令和硬件除法指令;內(nèi)置了快速的中斷控制器,提供了優(yōu)越的實時特性,中斷間的延遲時間降到只需6個CPU周期,從低功耗模式喚醒的時間也只需6個CPU周期;與ARM7TDMI相比運行速度最多可快35%且代碼最多可節(jié)省45%;提供更為豐富的外設(shè)和網(wǎng)絡(luò)接口,使用更為靈活方便。42第7章ARM嵌入式微處理器及應(yīng)用STM32系列微控制器的應(yīng)用STM32系列微控制器主要應(yīng)用在以下場合:工業(yè)領(lǐng)域:可編程邏輯控制器(PLC)、變頻器、打印機、掃描儀和工控網(wǎng)絡(luò)。建筑和安防領(lǐng)域:警報系統(tǒng)、可視電話和HVAC。低功耗領(lǐng)域:血糖測量儀、電表和電池供電應(yīng)用。家電領(lǐng)域:電機控制和應(yīng)用控制。消費類產(chǎn)品領(lǐng)域:PC外設(shè)、游戲機、數(shù)碼相機和GPS平臺。嵌入式系統(tǒng)原理與接口技術(shù)43第7章ARM嵌入式微處理器及應(yīng)用STM32系列微控制器功能概述STM32F103系列微控制器的工作頻率為72MHz,內(nèi)置高速存儲器,豐富的增強I/O接口和連接到兩條APB總線的外設(shè)。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和1個PWM定時器,還包含標(biāo)準(zhǔn)和先進的通信接口:多達2個I2C和SPI、3個USART、1個USB和1個CAN。主要功能如下:(1)內(nèi)置了多達512KB的嵌入式Flash,可用于存儲程序和數(shù)據(jù)。多達64KB的嵌入式SRAM,可以以CPU時鐘速度進行讀/寫(不帶等待狀態(tài))。(2)可變靜態(tài)存儲控制器(FSMC)嵌入在STM32F103xC、STM32F103xD和STM32F103xE中,帶有4個片選,支持Flash、RAM、PSRAM、NOR和NAND這4種模式。第7章ARM嵌入式微處理器及應(yīng)用(3)STM32F103系列微控制器嵌入了一個嵌套矢量中斷控制器(NVIC),可以處理43個可屏蔽中斷通道(不包括Cortex-M3的16根中斷線),提供16個中斷優(yōu)先級。(4)外部中斷/事件控制器(EXTI)由用于19條產(chǎn)生中斷/事件請求的邊沿探測器線組成。每條線可以被單獨配置用于選擇觸發(fā)事件(上升沿、下降沿或者兩者都可以),也可以被單獨屏蔽。(5)在啟動的時候還要進行系統(tǒng)時鐘選擇,但復(fù)位的時候內(nèi)部8MHz的晶振被選作CPU時鐘。在啟動的時候,boot引腳被用來在3種boot選項中選擇一種:從用戶Flash導(dǎo)入;從系統(tǒng)存儲器導(dǎo)入;從SRAM導(dǎo)入。第7章ARM嵌入式微處理器及應(yīng)用(6)3種電源供電方案:VDD,電壓范圍為2.0~3.6V,用于I/O和內(nèi)部調(diào)壓器;VSSA,VDDA,電壓范圍為2.0~3.6V,用于ADC、復(fù)位模塊、RC和PLL;VBAT,電壓范圍為1.8~3.6V。調(diào)壓器有3種運行模式:主(MR),用在傳統(tǒng)意義上的調(diào)節(jié)模式(運行模式);低功耗(LPR),用在停止模式;掉電,用在待機模式。3種低功耗模式:休眠模式時,只有CPU停止工作,所有的外設(shè)繼續(xù)運行,在中斷/事件發(fā)生時喚醒CPU;停止模式時,允許以最小的功耗來保持SRAM和寄存器的內(nèi)容,設(shè)備可以通過外部中斷線從停止模式喚醒;待機模式時,除了備份寄存器和待機電路,SRAM和寄存器的內(nèi)容會丟失,以追求最小的功耗。第7章ARM嵌入式微處理器及應(yīng)用1.STM32F103架構(gòu)STM32F103系列微控制器的主系統(tǒng)由4個驅(qū)動單元和4個被動單元構(gòu)成;4個驅(qū)動單元由Cortex-M3內(nèi)核DCode總線(D-bus)、系統(tǒng)總線(S-bus)、通用DMA1和通用DMA2構(gòu)成;4個被動單元由內(nèi)部SRAM、內(nèi)部閃存存儲器、FSMC、AHB到APB的橋(AHB2APBx)以及它所連接的所有的APB設(shè)備構(gòu)成。7.3.1STM32F103系列微控制器內(nèi)部結(jié)構(gòu)第7章ARM嵌入式微處理器及應(yīng)用STM32F103系列微控制器的系統(tǒng)結(jié)構(gòu)(1)ICode總線:將Cortex-M3內(nèi)核的指令總線與閃存指令接口相連接。指令預(yù)取在此總線上完成。(2)DCode總線:將Cortex-M3內(nèi)核的DCode總線與閃存存儲器的數(shù)據(jù)接口相連接(常量加載和調(diào)試訪問)。(3)系統(tǒng)總線:連接Cortex-M3內(nèi)核的系統(tǒng)總線(外設(shè)總線)到總線矩陣,總線矩陣協(xié)調(diào)著內(nèi)核和DMA間的訪問。(4)DMA總線:將DMA的AHB主控接口與總線矩陣相連,總線矩陣協(xié)調(diào)著CPU的DCode和DMA到SRAM、閃存和外設(shè)的訪問。(5)總線矩陣:協(xié)調(diào)內(nèi)核系統(tǒng)總線和DMA主控總線之間的訪問仲裁,仲裁利用輪換算法。AHB外設(shè)通過總線矩陣與系統(tǒng)總線相連,允許DMA訪問。(6)AHB/APB橋(APB):兩個AHB/APB橋在AHB和2個APB總線間提供同步連接。APB1的操作速度限于36MHz,APB2操作于全速(最高72MHz)。第7章ARM嵌入式微處理器及應(yīng)用2.存儲器的地址空間

STM32F103系列微控制器基于的ARMCortex-M3核采用馮·諾依曼體系結(jié)構(gòu),它的存儲系統(tǒng)采用統(tǒng)一編址的方式;程序存儲器、數(shù)據(jù)存儲器和寄存器被組織在4GB的線性地址空間內(nèi),以小端格式存儲。由于Cortex-M3是32位的內(nèi)核,因此其PC指針可以指向232B=4GB的地址空間,也就是0x0000_0000~0xFFFF_FFFF這塊空間。第7章ARM嵌入式微處理器及應(yīng)用Cortex-M3內(nèi)核將0x0000_0000~0xFFFF_FFFF這塊4GB的空間分成8大塊:代碼、SRAM、外設(shè)、外部RAM、外部設(shè)備、專用外設(shè)總線?內(nèi)部、專用外設(shè)總線?外部、特定廠商,這導(dǎo)致使用該內(nèi)核的芯片廠家必須按照這個進行各自芯片的存儲器結(jié)構(gòu)設(shè)計,如STM32。STM32加入了很多實際的內(nèi)容,如Flash、SRAM等。只有加入了這些,才能成為一個擁有實際意義的、可以工作的處理芯片。第7章ARM嵌入式微處理器及應(yīng)用STM32的存儲器地址空間被劃分為大小相等的8塊區(qū)域,每塊區(qū)域的大小為512MB(如0x20000000~0x40000000)。

1.根據(jù)STM32的內(nèi)存映射圖,在代碼區(qū),0x00000000地址為啟動區(qū),上電以后,CPU從這個地址開始執(zhí)行代碼。0x08000000是用戶Flash的起始地址,0x20000000是SRAM的起始地址。對STM32存儲器知識的掌握,實際上就是對Flash和SRAM這兩個區(qū)域知識的掌握。

2.不同類型的STM32系列微控制器的SRAM的大小是不一樣的,但是它們的起始地址都是0x20000000,終止地址都是0x20000000+其固定的容量大小。SRAM作用:存取各種動態(tài)的輸入/輸出數(shù)據(jù)、中間計算結(jié)果,以及與外部存儲器交換的數(shù)據(jù)和暫存數(shù)據(jù)。設(shè)備斷電后,SRAM中存儲的數(shù)據(jù)就會丟失。第7章ARM嵌入式微處理器及應(yīng)用3.STM32的3個Flash分區(qū)的稱呼與datasheet保持一致。包括:(1)Flash主存儲區(qū)(Mainmemory):存放代碼的地方,

(2)Flash信息區(qū)(Informationblock),該區(qū)域又可以分為OptionBytes和SystemMemory。SystemMemory區(qū)域:存儲無法修改的BootLoader程序;OptionBytes區(qū)域:可以按照用戶的需要進行配置(如配置看門狗為硬件實現(xiàn)還是軟件實現(xiàn)),除了互聯(lián)型,其他型號地址都一樣。(3)Flash存儲接口寄存器區(qū)(Flashmemoryinterface),用于片上外設(shè),也被稱作外設(shè)存儲器映射。對該區(qū)域進行操作,就是對相應(yīng)的外設(shè)進行操作。第7章ARM嵌入式微處理器及應(yīng)用STM32F103系列微控制器片內(nèi)具有多種高速總線,指令總線(ICodeBus)簡稱I-Bus,連接Flash存儲器指令接口和Cortex-M3內(nèi)核;數(shù)據(jù)總線(DCodeBus)簡稱D-Bus,連接Flash存儲器數(shù)據(jù)接口和Cortex-M3內(nèi)核;系統(tǒng)總線(SystemBus)簡稱S-Bus,通過總線陣列(BusMatrix)與DMA、AHB和APB總線相連接;DMA總線(DMA-Bus),連接DMA控制器和總線陣列;高性能總線(AHB),通過AHB/APB橋與高級外設(shè)總線相連接,AHB總線與總線陣列相連接。7.3.2STM32F103系列微控制器片內(nèi)外設(shè)概述第7章ARM嵌入式微處理器及應(yīng)用STM32F103系列微控制器的片內(nèi)外單元:1.CRC計算單元:用于計算給定的32位長的字?jǐn)?shù)據(jù)的CRC校驗碼,生成多項式。2.復(fù)位與時鐘管理單元(RCC)3.通用目的輸入/輸出(GPIO)單元:是STM32F103系列微控制器與外部進行通信的主要通道,可以輸入或輸出數(shù)字信號。4.替換功能輸入/輸出(AFIO)單元:復(fù)用GPIO口的替換功能輸入/輸出(AFIO)單元,需要借助GPIO配置寄存器將端口配置為合適的工作模式5.ADC單元和DAC單元6.定時器:STM32F103芯片共有8個定時器7.RTC時鐘:主要用于產(chǎn)生日期和時間,集成了2個看門狗定時器,用于監(jiān)測軟件運行錯誤8.?dāng)?shù)據(jù)通信的外設(shè)模塊:這些模塊需要專用的通信時序和協(xié)議9.芯片的身份號第7章ARM嵌入式微處理器及應(yīng)用STM32F103ZET6結(jié)構(gòu)框圖第7章ARM嵌入式微處理器及應(yīng)用STM32標(biāo)準(zhǔn)外設(shè)庫概述STM32標(biāo)準(zhǔn)外設(shè)庫是一個固件函數(shù)包,它由程序、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微控制器所有外設(shè)的性能特征。該函數(shù)庫還包括每一個外設(shè)的驅(qū)動描述和應(yīng)用實例,為開發(fā)者訪問底層硬件提供了一個中間API,通過使用固件函數(shù)庫,無需深入掌握底層硬件細節(jié),開發(fā)者就可以輕松應(yīng)用每一個外設(shè)。每個外設(shè)驅(qū)動都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設(shè)所有功能。嵌入式系統(tǒng)原理與接口技術(shù)567.3.3基于標(biāo)準(zhǔn)外設(shè)庫的軟件開發(fā)第7章ARM嵌入式微處理器及應(yīng)用使用標(biāo)準(zhǔn)外設(shè)庫開發(fā)的優(yōu)勢簡單地說,使用標(biāo)準(zhǔn)外設(shè)庫進行開發(fā)最大的優(yōu)勢就在于可以使開發(fā)者不用深入了解底層硬件細節(jié)就可以靈活規(guī)范的使用每一個外設(shè)。標(biāo)準(zhǔn)外設(shè)庫覆蓋了從GPIO到定時器,再到CAN、I2C、SPI、UART和ADC等的所有標(biāo)準(zhǔn)外設(shè)。對應(yīng)的C源代碼只是用了最基本的C編程的知識,所有代碼經(jīng)過嚴(yán)格測試,易于理解和使用,并且配有完整的文檔,非常方便進行二次開發(fā)和應(yīng)用。嵌入式系統(tǒng)原理與接口技術(shù)57第7章ARM嵌入式微處理器及應(yīng)用1.基于CMSIS標(biāo)準(zhǔn)的軟件架構(gòu)嵌入式系統(tǒng)原理與接口技術(shù)58基于CMSIS標(biāo)準(zhǔn)的軟件架構(gòu)基于CMSIS標(biāo)準(zhǔn)的軟件架構(gòu)主要分為以下4層:用戶應(yīng)用層、操作系統(tǒng)及中間件接口層、CMSIS層、硬件寄存器層。CMSIS層起著承上啟下的作用:

一方面該層對硬件寄存器層進行統(tǒng)一實現(xiàn),屏蔽了不同廠商對Cortex-M系列微處理器核內(nèi)外設(shè)寄存器的不同定義;另一方面又向上層的操作系統(tǒng)及中間件接口層和應(yīng)用層提供接口,簡化了應(yīng)用程序開發(fā)難度,使開發(fā)人員能夠在完全透明的情況下進行應(yīng)用程序開發(fā)。也正是如此,CMSIS層的實現(xiàn)相對復(fù)雜。嵌入式系統(tǒng)原理與接口技術(shù)59CMSIS層主要分為3部分。(1)核內(nèi)外設(shè)訪問層(CPAL),由ARM負(fù)責(zé)實現(xiàn)對寄存器名稱、地址定義、NVIC接口等定義,統(tǒng)一用_INLINE屏蔽差異,其接口函數(shù)均是可重入的。(2)片上外設(shè)訪問層(DPAL),由芯片廠商負(fù)責(zé)實現(xiàn),可調(diào)用CPAL提供的接口函數(shù)處理相應(yīng)的外設(shè)中斷請求。(3)外設(shè)訪問函數(shù)(AFP),由芯片廠商負(fù)責(zé),提供訪問片上外設(shè)的函數(shù)嵌入式系統(tǒng)原理與接口技術(shù)60基于CMSIS標(biāo)準(zhǔn)的軟件架構(gòu)的優(yōu)勢為芯片廠商和中間件供應(yīng)商提供了簡單的處理器軟件接口,簡化了軟件復(fù)用工作,降低了Cortex-M上操作系統(tǒng)的移植難度減少了新入門的微控制器開發(fā)者的學(xué)習(xí)曲線和新產(chǎn)品的上市時間獨立于供應(yīng)商的Cortex-M處理器系列硬件抽象層,統(tǒng)一了接口嵌入式系統(tǒng)原理與接口技術(shù)61STM32F10xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)嵌入式系統(tǒng)原理與接口技術(shù)622.STM32F10xxx標(biāo)準(zhǔn)外設(shè)庫結(jié)構(gòu)與文件描述STM32F10xxx標(biāo)準(zhǔn)外設(shè)庫文件功能說明嵌入式系統(tǒng)原理與接口技術(shù)63文件名功能描述具體功能說明core_cm3.hcore_cm3.cCortex-M3內(nèi)核及其設(shè)備文件訪問Cortex-M3內(nèi)核及其設(shè)備:NVIC,SysTick等訪問Cortex-M3的CPU寄存器和內(nèi)核外設(shè)的函數(shù)stm32f10x.h微控制器專用頭文件這個文件包含了STM32F10x全系列所有外設(shè)寄存器的定義(寄存器的基地址和布局)、位定義、中斷向量表、存儲空間的地址映射等system_stm32f10x.hsystem_stm32f10x.c微控制器專用系統(tǒng)文件函數(shù)SystemInit,用來初始化微控制器函數(shù)Sysem_ExtMemCtl,用來配置外部存儲器控制器。它位于文件startup_stm32f10x_xx.s/.c,在跳轉(zhuǎn)到main前調(diào)用SystemFrequncy,該值代表系統(tǒng)時鐘頻率startup_stm32f10x_Xd.s編譯器啟動代碼微控制器專用的中斷處理程序列表(與頭文件一致)弱定義(Weak)的中斷處理程序默認(rèn)函數(shù)(可以被用戶代碼覆蓋)該文件是與編譯器相關(guān)的stm32f10x_conf.h固件庫配置文件通過更改包含的外設(shè)頭文件來選擇固件庫所使用的外設(shè),在新建程序和進行功能變更之前應(yīng)當(dāng)首先修改對應(yīng)的配置。stm32f10x_it.hstm32f10x_it.c外設(shè)中斷函數(shù)文件用戶可以相應(yīng)的加入自己的中斷程序的代碼,對于指向同一個中斷向量的多個不同中斷請求,用戶可以通過判斷外設(shè)的中斷標(biāo)志位來確定準(zhǔn)確的中斷源,執(zhí)行相應(yīng)的中斷服務(wù)函數(shù)。stm32f10x_ppp.hstm32f10x_ppp.c外設(shè)驅(qū)動函數(shù)文件包括了相關(guān)外設(shè)的初始化配置和部分功能應(yīng)用函數(shù),這部分是進行編程功能實現(xiàn)的重要組成部分。Application.c用戶文件用戶程序文件,通過標(biāo)準(zhǔn)外設(shè)庫提供的接口進行相應(yīng)的外設(shè)配置和功能設(shè)計。文件描述示例嵌入式系統(tǒng)原理與接口技術(shù)64CMSIS文件夾結(jié)構(gòu)嵌入式系統(tǒng)原理與接口技術(shù)65標(biāo)準(zhǔn)外設(shè)庫中包含了眾多變量定義和功能函數(shù),有必要了解它們的命名規(guī)范和使用規(guī)律??s寫定義。庫中的主要外設(shè)都使用了縮寫,可以查閱相關(guān)對應(yīng)資料進行了解。命名規(guī)則。標(biāo)準(zhǔn)外設(shè)庫命名時用PPP表示任一外設(shè)縮寫,如:ADC。源程序文件和頭文件命名以“stm32f10x_”作為開頭,如:stm32f10x_conf.h。變量定義。在早期的版本中有24個變量定義,在Keil的安裝根目錄下,可以找到對應(yīng)的定義,路徑為:Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h。嵌入式系統(tǒng)原理與接口技術(shù)663.STM32F10xxx標(biāo)準(zhǔn)外設(shè)庫的使用STM32F10xxx標(biāo)準(zhǔn)外設(shè)庫的使用新建一個項目并設(shè)置工具鏈對應(yīng)的啟動文件,可以使用標(biāo)準(zhǔn)外設(shè)庫中提供的模板,也可以根據(jù)自己的需求新建按照使用產(chǎn)品的具體型號選擇具體的啟動文件,加入工程調(diào)用對應(yīng)的函數(shù)進行相應(yīng)的功能設(shè)計使用KeilMDK以及標(biāo)準(zhǔn)外設(shè)庫創(chuàng)建STM32工程開發(fā)工具與開發(fā)環(huán)境軟件版本本節(jié)所使用KeilMDK為目前的最新版V4.21,使用的標(biāo)準(zhǔn)外設(shè)庫為目前最新的V3.5版本。使用的開發(fā)調(diào)試工具為JLINK-V8,使用的驅(qū)動版本為V4.08l。建立工程目錄首先建立一個用于存放工程的文件夾,在文件夾下分別建立LIB、USER、MDK三個文件夾,分別用于存放標(biāo)準(zhǔn)外設(shè)庫文件、用戶程序文件、工程目錄。在MDK文件夾下建立List、Obj兩個文件夾,分別用于存放在編譯過程中產(chǎn)生的臨時文件和輸出文件。然后拷貝標(biāo)準(zhǔn)外設(shè)庫和相應(yīng)的文件到工程目錄中。嵌入式系統(tǒng)原理與接口技術(shù)67MDK的操作與設(shè)置新建工程首先啟動KeiluVision4,點擊菜單欄Project-NewuVisionProject,選擇工程的保存位置。嵌入式系統(tǒng)原理與接口技術(shù)68新建工程在彈出的界面中選擇所使用的芯片信號,在本節(jié)中選擇STM32F103ZE。嵌入式系統(tǒng)原理與接口技術(shù)69新建工程芯片選擇完成后軟件會彈出一條提示,提示是否要拷貝STM32大容量啟動代碼并添加到工程,由于我們使用新版本標(biāo)準(zhǔn)外設(shè)庫中提供的啟動代碼,因此此處選擇否。至此,建立了一個新的工程。嵌入式系統(tǒng)原理與接口技術(shù)70添加程序文件在左側(cè)Project一欄中對Target1雙擊之

后可以重命名,這里命名為STM32,

然后右擊,單擊ManageComponents,

如右圖所示。嵌入式系統(tǒng)原理與接口技術(shù)71添加程序文件在下圖對應(yīng)的Group上右鍵AddGroup和AddFilestoGroup,即可添加我們所需的文件。嵌入式系統(tǒng)原理與接口技術(shù)72添加程序文件程序調(diào)試與下載設(shè)置接下來進行的是程序調(diào)試和下載的相關(guān)設(shè)置,有關(guān)調(diào)試的設(shè)置在Debug選項卡中,此選項卡主要完成程序調(diào)試的相關(guān)設(shè)置,選項卡分為兩個部分,左側(cè)是使用模擬器進行仿真與調(diào)試的方式,點選后軟件會進入模擬器調(diào)試。右側(cè)是使用仿真器連接硬件開發(fā)平臺進行調(diào)試,首先從右側(cè)選擇所使用的仿真器,這里使用的是J-Link仿真器,故在下拉框中選擇Cortex-M/RJ-LINK/J-Trace,在兩側(cè)的下方可以通過勾選對應(yīng)的復(fù)選框來選擇是否需要在調(diào)試開始時下載程序和運行到主程序,其他部分的設(shè)置保持默認(rèn)即可。嵌入式系統(tǒng)原理與接口技術(shù)74程序調(diào)試與下載設(shè)置嵌入式系統(tǒng)原理與接口技術(shù)75程序調(diào)試與下載設(shè)置嵌入式系統(tǒng)原理與接口技術(shù)76第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1操作系統(tǒng)概述 8.1.1操作系統(tǒng)的作用 8.1.2操作系統(tǒng)的特征 8.1.3操作系統(tǒng)的發(fā)展

8.2嵌入式操作系統(tǒng)概述 8.3嵌入式實時操作系統(tǒng)μC/OS-Ⅱ簡介 8.4嵌入式實時操作系統(tǒng)μC/OS-Ⅱ內(nèi)核 8.5嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植 操作系統(tǒng)是一種為應(yīng)用程序提供服務(wù)的系統(tǒng)軟件,是一個完整計算機系統(tǒng)的有機組成部分。從層次來看,操作系統(tǒng)位于計算機硬件之上,應(yīng)用軟件之下。所以也把它叫做應(yīng)用軟件的運行平臺。什么是計算機操作系統(tǒng)(OperatingSystem,OS)第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1操作系統(tǒng)概述它在計算機應(yīng)用程序與計算機硬件系統(tǒng)之間,屏蔽了計算機硬件工作的一些細節(jié),并對系統(tǒng)中的資源進行有效的管理。通過提供函數(shù)(應(yīng)用程序接口(API)),從而使應(yīng)用程序的設(shè)計人員得以在一個友好的平臺上進行應(yīng)用程序的設(shè)計和開發(fā),大大地提高了應(yīng)用程序的開發(fā)效率。從用戶的角度來看,它就是一大堆函數(shù)(API和系統(tǒng)函數(shù)),用戶可以調(diào)用(普通調(diào)用或系統(tǒng)調(diào)用)它們來對系統(tǒng)資源進行操作。計算機硬件用匯編語言編寫的硬件抽象層高級語言的接口應(yīng)用軟件操作系統(tǒng)8.1.1操作系統(tǒng)的作用第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ1.OS作為用戶與計算機硬件系統(tǒng)之間的接口

第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ操作系統(tǒng)處理器的管理存儲管理網(wǎng)絡(luò)和通信的管理I/O設(shè)備管理文件管理任務(wù)管理(1)處理機管理:用于分配和控制處理機。

操作系統(tǒng)最核心的工作就是每個用戶任務(wù)的創(chuàng)建、執(zhí)行,以及多個任務(wù)的調(diào)度工作。(2)存儲器管理:主要負(fù)責(zé)內(nèi)存的分配與回收。

內(nèi)存是任務(wù)生存的空間,為用戶任務(wù)分配、管理、釋放內(nèi)存是操作系統(tǒng)的重要工作。(3)I/O設(shè)備管理:負(fù)責(zé)I/O設(shè)備的分配與操縱。

一般的計算機系統(tǒng)都配有各種類型的外部設(shè)備,操作系統(tǒng)可以提供相應(yīng)的驅(qū)動程序,方便用戶使用外部設(shè)備。(4)文件管理:負(fù)責(zé)文件的存取、共享和保護。

當(dāng)數(shù)據(jù)量很大或者程序本身體積很大的時候,就需要以文件的形式存儲在外存上(如FLASH、SD卡、硬盤等)。2.OS作為計算機系統(tǒng)資源的管理者第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1.2操作系統(tǒng)的特征1.并發(fā)并發(fā)是指宏觀上有多道程序同時運行,但在微觀上是交替執(zhí)行的。2.共享共享是指計算機系統(tǒng)中的資源可被多個并發(fā)執(zhí)行的用戶程序或系統(tǒng)程序共同使用,而不是被其中某一個程序所獨占。共享的原因如下。(1)用戶或任務(wù)獨占系統(tǒng)資源將導(dǎo)致資源浪費。(2)多個任務(wù)共享一個程序的同一副本,而不是分別向每個用戶提供一個副本,可以避免重復(fù)開發(fā)。并發(fā)和共享是緊密相關(guān)的。一方面,資源共享是以進程的并發(fā)執(zhí)行為條件的,若不允許進程的并發(fā)執(zhí)行,則不會有資源的共享;另一方面,進程的并發(fā)執(zhí)行以資源共享為條件,若系統(tǒng)不運行共享資源,則程序無法并發(fā)執(zhí)行。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ3.異步在多道程序系統(tǒng)中,多進程并發(fā)執(zhí)行,但在微觀上,進程是交替執(zhí)行的,因此進程以“走走停?!钡牟贿B續(xù)方式運行。并發(fā)運行環(huán)境具有復(fù)雜性,每個進程在何時開始執(zhí)行、何時暫停、以怎樣的速度向前推進、多長時間完成、何時發(fā)生中斷,都是不可預(yù)知的,此種特征稱為異步。4.虛擬虛擬指的是通過某種技術(shù)把一個物理實體映射為多個邏輯實體,用戶程序使用邏輯實體。邏輯實體是使用戶感覺上有但實際上不存在的事物,第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1.3操作系統(tǒng)的發(fā)展操作系統(tǒng)最早產(chǎn)生于1955年,至今已發(fā)展了60多年,其可以粗略地被劃分為四代。

第一代操作系統(tǒng):單任務(wù)自動批處理操作系統(tǒng)。多個程序可自動在計算機上連續(xù)運行,通過避免人工裝卸大大提高了機器利用率,但在程序執(zhí)行過程中進行輸入/輸出數(shù)據(jù)時,主機空閑降低了處理機的利用率。

第二代操作系統(tǒng):多任務(wù)和多用戶操作系統(tǒng),最大特征是采用并發(fā)技術(shù),當(dāng)一個程序在進行I/O操作時,CPU可轉(zhuǎn)去執(zhí)行其他程序,大大提高了機器利用率,但操作系統(tǒng)的復(fù)雜程度和功能規(guī)模大大增加,從而增加了操作系統(tǒng)的開發(fā)周期和開發(fā)成本,并影響了操作系統(tǒng)的正確性和可靠性。

第三代操作系統(tǒng):結(jié)構(gòu)化與小型化操作系統(tǒng),其典型特征是重視操作系統(tǒng)的結(jié)構(gòu)和功能精簡。第三代操作系統(tǒng)還具有網(wǎng)絡(luò)特征。第四代操作系統(tǒng):網(wǎng)絡(luò)和開放系統(tǒng)、并行與分布式操作系統(tǒng)。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ隨著計算機應(yīng)用技術(shù)的發(fā)展,適應(yīng)不同應(yīng)用系統(tǒng)的操作系統(tǒng)也相繼出現(xiàn),并在應(yīng)用中得以不斷發(fā)展。

嵌入式操作系統(tǒng):主要伴隨著個人數(shù)字助理PDA、掌上電腦、電視機頂盒、智能家電等設(shè)備的發(fā)展,對操作系統(tǒng)在功能和所占存儲空間的權(quán)衡上提出了新的要求,對實時響應(yīng)也有較高的要求。

實時操作系統(tǒng):對操作系統(tǒng)的實時響應(yīng)要求從來就沒有停止過,要求計算機的最大響應(yīng)時間越來越短,對任務(wù)調(diào)度時機、算法要求越來越高。特別是針對操作系統(tǒng)的實時性研究還在不斷發(fā)展中。

并行操作系統(tǒng):隨著高性能通用微處理器的發(fā)展,人們已經(jīng)成功地提出了用它們構(gòu)造“多處理機并行”的體系結(jié)構(gòu)。

網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng):計算機網(wǎng)絡(luò)系統(tǒng)還在不斷完善中,基于Client-Server模型的分布式系統(tǒng)已不斷走向應(yīng)用,完全分布式的系統(tǒng)還未成形,且仍將是研究的熱點。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1操作系統(tǒng)概述

8.2嵌入式操作系統(tǒng)概述8.2.1嵌入式操作系統(tǒng)的演變 8.2.2嵌入式操作系統(tǒng)的特點 8.2.3嵌入式操作系統(tǒng)與通用操作系統(tǒng)的區(qū)別 8.2.4常見的嵌入式操作系統(tǒng)

8.3嵌入式實時操作系統(tǒng)μC/OS-Ⅱ簡介 8.4嵌入式實時操作系統(tǒng)μC/OS-Ⅱ內(nèi)核 8.5嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植 嵌入式操作系統(tǒng)又稱為實時操作系統(tǒng),是一種支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬件、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器Browser等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的特點,如能夠有效管理越來越復(fù)雜的系統(tǒng)資源;能夠把底層虛擬化,使得開發(fā)人員可從繁忙的驅(qū)動程序移植和維護中解脫出來;能夠提供庫函數(shù)、驅(qū)動程序、工具集及應(yīng)用程序。嵌入式操作系統(tǒng)能夠負(fù)責(zé)嵌入式系統(tǒng)的全部硬件和軟件資源的分配、調(diào)度、控制、協(xié)調(diào)并發(fā)活動;它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.2嵌入式操作系統(tǒng)概述第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.2.1嵌入式操作系統(tǒng)的演變

嵌入式操作系統(tǒng)得到飛速的發(fā)展:

?從支持8位微處理器到支持16位、32位甚至64位微處理器;

?從支持單一品種的微處理器芯片到支持多品種微處理器芯片;

?從只有內(nèi)核到除內(nèi)核外還提供其他功能模塊,如文件系統(tǒng)、TCP/IP

網(wǎng)絡(luò)系統(tǒng)、窗口圖形系統(tǒng)等。

第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.2.1嵌入式操作系統(tǒng)的演變目前,嵌入式系統(tǒng)的研究和應(yīng)用產(chǎn)生了如下新的顯著變化。

?能夠在短時間內(nèi)支持更多的微處理器。

?提供強大的軟件開發(fā)支持包。

?通用計算機上使用的新技術(shù)、新觀念逐步被移植到嵌入式系統(tǒng)中

?各類嵌入式Linux操作系統(tǒng)迅速發(fā)展

?結(jié)構(gòu)變得更加復(fù)雜,網(wǎng)絡(luò)互聯(lián)成為必然趨勢。

?精簡系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟/硬件成本。

?提供更加友好的多媒體人機交互界面。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.2.2嵌入式操作系統(tǒng)的特點1.可裁剪性2.強實時性3.可移植性4.可擴展性8.2.3嵌入式操作系統(tǒng)與通用操作系統(tǒng)的區(qū)別1.地址空間:嵌入式操作系統(tǒng)在多數(shù)情況下不會采用這種內(nèi)存模型,而是操作系統(tǒng)和應(yīng)用程序公用一個地址空間2.內(nèi)存管理:嵌入式操作系統(tǒng)的首選是不采用虛擬內(nèi)存管理機制3.應(yīng)用方式:嵌入式操作系統(tǒng)不必自動檢測硬件,因而也不存在安裝的過程目前,在嵌入式領(lǐng)域廣泛使用的操作系統(tǒng)有:μC/OS-Ⅱ、μClinux、WindowsCE、VxWorks、ROS,以及應(yīng)用在智能手機和平板電腦的Android、iOS等。按照操作系統(tǒng)是否設(shè)置了實時響應(yīng)的機制,可分為實時操作系統(tǒng)和非實時操作系統(tǒng)。按照操作系統(tǒng)的發(fā)布方式,嵌入式操作系統(tǒng)可分為開源和非開源方式。大多數(shù)嵌入式操作系統(tǒng)對于研究和教學(xué)目的的應(yīng)用是免費的,而對于商業(yè)產(chǎn)品開發(fā),則有免費和需要購買許可證之分。

第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.2.4常見的嵌入式操作系統(tǒng)第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1操作系統(tǒng)概述

8.2嵌入式操作系統(tǒng)概述

8.3嵌入式實時操作系統(tǒng)μC/OS-Ⅱ簡介8.3.1μC/OS-Ⅱ的特點 8.3.2μC/OS-Ⅱ的文件結(jié)構(gòu)

8.4嵌入式實時操作系統(tǒng)μC/OS-Ⅱ內(nèi)核 8.5嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植 2023/12/22西安郵電學(xué)院計算機系92uC/OS由JeanJ.Labrosse先生(加拿大)1992編寫的RTOS,1999年改寫后命名為uC/OS-II。

2000年被美航空管理局認(rèn)證。

uC/OS-II中的代碼90%用C語言編寫,有少量的相關(guān)于硬件

的代碼用匯編編寫,易移植到各類體系結(jié)構(gòu)的處理器。官方網(wǎng)站:www.uCOS-II.com8.3嵌入式實時操作系統(tǒng)μC/OS-Ⅱ簡介1.有源代碼μC/OS-Ⅱ是一款源碼公開的實時操作系統(tǒng)。2.可移植性μC/OS-Ⅱ源碼絕大部分是用移植性很強的ANSIC編寫的,與微處理器硬件相關(guān)的部分是用匯編語言編寫的。匯編語言編寫的部分已經(jīng)壓到最低限度,以使μC/OS-Ⅱ便于移植到其他微處理器上。3.可固化μC/OS-Ⅱ是為嵌入式產(chǎn)品設(shè)計的,可以將μC/OS-Ⅱ嵌入產(chǎn)品中作為產(chǎn)品的一部分。4.可裁剪可裁剪指的是用戶可以在應(yīng)用程序中通過語句#defineconstants來定義所需的μC/OS-Ⅱ功能模塊,以減少不必要的存儲器空間的開支。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.3.1μC/OS-Ⅱ的特點5.可剝奪性μC/OS-Ⅱ總是運行就緒條件下優(yōu)先級最高的任務(wù)。6.多任務(wù)μC/OS-Ⅱ可以管理64個任務(wù),支持56個用戶任務(wù),8個系統(tǒng)保留任務(wù)。7.可確定性絕大多數(shù)μC/OS-Ⅱ的函數(shù)調(diào)用和服務(wù)的執(zhí)行時間具有可確定性。8.任務(wù)棧μC/OS-Ⅱ的每個任務(wù)都有單獨的棧,它允許每個任務(wù)有不同的棧空間,以便壓低應(yīng)用程序?qū)AM的需求。9.系統(tǒng)服務(wù)μC/OS-Ⅱ提供很多系統(tǒng)服務(wù),如信號量、互斥型信號量、事件標(biāo)志、消息郵箱、消息隊列、塊大小固定的內(nèi)存的申請與釋放及時間管理函數(shù)等。10.中斷管理中斷可以使正在執(zhí)行的任務(wù)暫時掛起。中斷嵌套層數(shù)可達255層。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.3.2μC/OS-Ⅱ的文件結(jié)構(gòu)μC/OS-II中的數(shù)據(jù)類型備注:這些類型定義在ARM\OS_CPU.H文件中。μC/OS-II的文件結(jié)構(gòu)μC/OS-Ⅱ主要可以分成核心部分(包含任務(wù)調(diào)度)、任務(wù)管理、時鐘部分、時間管理、多任務(wù)同步與通信、內(nèi)存管理、CPU移植等部分。(1)核心部分(OSCore.c):μC/OS-Ⅱ處理核心,包括初始化、啟動、中斷管理、時鐘中斷、任務(wù)調(diào)度及事件處理等用于系統(tǒng)基本維持的函數(shù)。(2)任務(wù)管理(OSTask.c):包含與任務(wù)操作密切相關(guān)的函數(shù),包括任務(wù)建立、刪除、掛起及恢復(fù)等,μC/OS-Ⅱ以任務(wù)為基本單位進行調(diào)度。(3)時鐘部分(OSTime.c):μC/OS-Ⅱ中的最小時鐘單位是timetick(時鐘節(jié)拍),其中包含時間延遲、時鐘設(shè)置及時鐘恢復(fù)等與時鐘相關(guān)的函數(shù)。(4)多任務(wù)同步與通信(OSMbox.c、OSQ.c、OSSem.c、OSMutex.c、OSFlag.c):包含事件管理函數(shù),涉及Mbox、msgQ、Sem、Mutex、Flag等。(5)內(nèi)存管理(OSMem.c):主要用于構(gòu)建私有的內(nèi)存分區(qū)管理機制,其中包含創(chuàng)建memPart、申請/釋放memPart、獲取分區(qū)信息等函數(shù)。(6)CPU移植:μC/OS-Ⅱ針對特定CPU的移植部分,由于涉及SP等系統(tǒng)指針,因此通常用匯編語言編寫,包括任務(wù)切換、中斷處理等內(nèi)容第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ一.數(shù)組⒈數(shù)組:①同一數(shù)據(jù)類型數(shù)據(jù)的集合;②占用連續(xù)內(nèi)存空間;③其中的所有元素名稱都相同,但每個元素都有一個編號;④元素名去掉編號(下標(biāo)),得到的是數(shù)組名,數(shù)組名是個指針。⒉使用上的特點:①分類存放;②檢索速度快且恒定;③缺點:占用連續(xù)空間大。⒊應(yīng)用:記錄同類事物的表。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ補充:操作系統(tǒng)中常用的數(shù)據(jù)結(jié)構(gòu)(了解)二.位圖⒈位圖是數(shù)組的一種特殊應(yīng)用。⒉應(yīng)用:登記表。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ三.結(jié)構(gòu)⒈結(jié)構(gòu):①不同數(shù)據(jù)類型數(shù)據(jù)的集合;②占用連續(xù)內(nèi)存空間。⒉使用上的特點:①不分類存放,但用來描述同一事物;②檢索速度快且恒定。⒊應(yīng)用:通訊錄中的一條記錄、工具箱、廚房等等。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ四.鏈表⒈鏈表:①同數(shù)據(jù)類型數(shù)據(jù)的集合;②不占用連續(xù)內(nèi)存空間。⒉使用上的特點:①分類存放,但空間上不連續(xù)(不需要大量的連續(xù)存儲空間;②檢索速度慢,且耗費的時間不固定。⒊應(yīng)用:存放大量的較大的表,類似檔案柜第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ五.隊列:①隊列是一種特殊的線性表。在隊列中,僅允許一端進行插入,在另一端進行刪除。②允許插入的一端叫做隊尾(rear);允許刪除的另一端叫做隊頭(front)。③隊列又稱先進先出(FirstinFirstOut,簡寫為FIFO)表。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ六.堆棧:①限定只能在表的一端進行插入和刪除的線性表。②在表中允許插入和刪除的一端叫做棧頂(top),表的另一端叫做棧底(bottom)。③棧又稱后進先出(LastInFirstOut,簡寫為LIFO)表。第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ第8章嵌入式實時操作系統(tǒng)μC/OS-Ⅱ8.1操作系

溫馨提示

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

評論

0/150

提交評論