单片机与嵌入式系统原理及应用 课件 第7、8章 ARM嵌入式微处理器及应用、嵌入式实时操作系统μCOS-Ⅱ_第1页
单片机与嵌入式系统原理及应用 课件 第7、8章 ARM嵌入式微处理器及应用、嵌入式实时操作系统μCOS-Ⅱ_第2页
单片机与嵌入式系统原理及应用 课件 第7、8章 ARM嵌入式微处理器及应用、嵌入式实时操作系统μCOS-Ⅱ_第3页
单片机与嵌入式系统原理及应用 课件 第7、8章 ARM嵌入式微处理器及应用、嵌入式实时操作系统μCOS-Ⅱ_第4页
单片机与嵌入式系统原理及应用 课件 第7、8章 ARM嵌入式微处理器及应用、嵌入式实时操作系统μCOS-Ⅱ_第5页
已阅读5页,还剩136页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章ARM嵌入式微处理器及应用7.1ARM微处理器

7.1.1ARM简介 7.1.2ARM微处理器系列 7.1.3ARM微处理器的应用领域及特点7.1.4ARM微处理器的应用选型

7.2ARM微处理器的体系结构 7.3STM32F103系列微控制器基本原理及应用ARM——AdvanceRISCMachineARM——RISC结构知识产权(IP)提供商第7章ARM嵌入式微处理器及应用英国剑桥的ARM总部7.1.1ARM简介将技术授权给其它芯片厂商形成各具特色的ARM芯片...第7章ARM嵌入式微处理器及应用成立于1990年11月前身为Acorn计算机公司AcornRISCMachineAdvanceRISCMachine(ARM)主要设计ARM系列RISC处理器内核授权ARM内核给生产和销售半导体的合作伙伴ARM公司不生产芯片知识产权IP(IntelligenceProperty)提供基于ARM架构的开发设计技术软件工具,评估板,调试工具,应用软件总线架构,外围设备单元等第7章ARM嵌入式微处理器及应用7.1.2ARM微处理器系列Classic系列ARM7微处理器ARM7为低功耗的32位RISC处理器,采用冯

诺依曼体系结构。ARM7微处理器系列具有如下特点:具有嵌入式ICE-RT逻辑,无论调试还是开发都很方便。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。支持WindowsCE、Linux、PalmOS等嵌入式操作系统。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户程序的升级和产品的更新换代。主频最高可达130MIPS。第7章ARM嵌入式微处理器及应用Classic系列ARM9微处理器ARM9内核为32位RISC处理器,采用哈佛结构。ARM9内核微处理器具有以下特点:5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的运行速率。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。内含全性能的MMU。内含MPU,支持实时操作系统。支持数据Cache和指令Cache。第7章ARM嵌入式微处理器及应用Classic系列ARM11微处理器ARM1136J-S是第一个执行ARMv6架构指令的处理器。ARM1136J-S的主要特点如下:集成了具有独立的load-sotore和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令流多数据流(SIMD)扩展。采用特殊的设计,以改善视频处理性能。为了进行快速浮点运算,增加了向量浮点单元。第7章ARM嵌入式微处理器及应用Cortex系列内核第7章ARM嵌入式微处理器及应用Cortex-M—面向各类嵌入式应用的微控制器内核Cortex-R—面向实时应用的高性能内核Cortex-A—面向性能密集型系统的应用处理器内核Cortex-A50—基于ARMv8架构,支持64位处理Cortex系列内核1.25Thumb-20.74Thumb/0.93ARMDMIPS/MHzxPSR.2modes.Stackedregs(1bank)PSR.6modes.20Bankedregs系统状态ArchitectureDefinedUndefined存储器印射Three

No睡眠模式12Cycles(6whenTailChaining)24-42Cycles(DependingonLSM)中断响应时间NMI,SysTickandupto240interrupts.IntegratedNVICInterruptControllerupto1-255PrioritiesFIQ/IRQ中断3-Stage+BranchSpeculation3-Stage流水线Thumb-2(Merged32/16-bit)ARM(32-bit)&Thumb(16-bit)指令集v7Mv4T体系结构Cortex-M3ARM7TDMI-S第7章ARM嵌入式微处理器及应用Cortex系列内核第7章ARM嵌入式微处理器及应用

该处理器是首款基于ARMv7-M架构的处理器,采用了纯Thumb2指令的执行方式,具有极高的运算能力和中断相应能力。

Cortex-M3主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域。目前最便宜的基于该内核的ARM单片机售价为1美元。CortexTM-M3处理器简介Cortex系列内核第7章ARM嵌入式微处理器及应用STM32F103系列微控制器新的基于ARM内核的32位MCU系列内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M3内核超前的体系结构高性能,低电压,低功耗,创新的内核以及外设简单易用/自由/低风险第7章ARM嵌入式微处理器及应用1.ARM微处理器的应用领域(1)工业控制领域:作为32位的RISC架构,基于ARM核的微控制器芯

片不但占据了高端微控制器市场的大部分市场份额,而且逐渐向低

端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比向传

统的8位/16位微控制器提出了挑战。(2)无线通信领域:目前已有超过85%的无线通信设备采用了ARM技术。(3)网络应用(4)消费类电子产品(5)成像和安全产品7.1.3ARM微处理器的应用领域及特点第7章ARM嵌入式微处理器及应用2.ARM微处理器的特点采用RISC架构的ARM微处理器一般具有如下特点。(1)体积小、低功耗、低成本、高性能;(2)支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位

/16位器件;(3)大量使用寄存器,指令执行速度更快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高;(6)指令长度固定。7.1.3ARM微处理器的应用领域及特点第7章ARM嵌入式微处理器及应用1.ARM微处理器内核的选择2.系统的工作频率3.芯片内存储器的容量4.片内外围电路的选择7.1.4ARM微处理器的应用选型第7章ARM嵌入式微处理器及应用第7章ARM嵌入式微处理器及应用7.1ARM微处理器 7.2ARM微处理器的体系结构 7.2.1嵌入式微处理器的体系结构 7.2.2ARM微处理器的工作模式及状态 7.2.3ARM微处理器的寄存器结构 7.2.4ARM微处理器支持的数据类型和存储模式7.3STM32F103系列微控制器基本原理及应用 1.RISC架构RISC是精简指令集计算机的缩写,其目标是设计出在高时钟频率下单周期执行,简单而有效的指令集。ARM内核采用RISC架构。精简指令集计算机RISC(ReducedInstructionSetComputer)是在复杂指令集计算机CISC(ComplexInstructionSetComputer)的基础上产生并发展起来的;RISC通过简化指令系统使计算机的结构更加简单合理,运算效率更高;RISC优先选取使用频率最高的简单指令,避免复杂指令;指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等,RISC已经成为当前计算机发展不可逆转的趋势。7.2.1嵌入式微处理器的体系结构第7章ARM嵌入式微处理器及应用到目前为止,RISC架构也没有严格的定义,一般认为,RISC架构应具有如下特点。(1)采用固定长度的指令格式,指令规整、简单,基本寻址方式有2~3种。(2)使用单周期指令,便于流水线操作执行。(3)大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。除此以外,ARM还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:(1)所有指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率;(2)可用加载/存储指令批量传输数据,以提高数据的传输效率;(3)可在一条数据处理指令中同时完成逻辑处理和移位处理;(4)在循环处理中使用地址的自动增减来提高运行效率。第7章ARM嵌入式微处理器及应用2.体系结构冯·诺依曼结构

冯·诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。其主要内容如下。(1)计算机由控制器、运算器、存储器、输入设备、输出设备5部分组成。(2)程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。(3)控制器根据存放在存储器中的指令序列(程序)进行工作,并由一个程序计数器控制指令执行。控制器具有判断能力,能根据计算结果选择不同的工作流程。第7章ARM嵌入式微处理器及应用哈佛(Harvard)结构哈佛体系结构的特点如下。(1)使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理。(2)具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输。第7章ARM嵌入式微处理器及应用3.流水线技术是将一个重复的时序分解成若干个子过程,而每个子过程都可以有效地在其专用功能段上与其它子过程同时执行。指令流水线就是将一条指令分解成一连串执行的子过程。ARM7采用冯•诺依曼结构,典型的三级流水线;而ARM9则采用哈佛结构,五级流水线。第7章ARM嵌入式微处理器及应用ARM7的三级最佳流水线:取指--译码--执行ARM9的五级最佳流水线第7章ARM嵌入式微处理器及应用7.2.2ARM微处理器工作模式及状态1.ARM微处理器的7种工作模式除用户模式外,其他模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)在特权模式下访问。此外,特权模式可以自由地切换处理器模式,而用户模式不能直接切换到别的模式。第7章ARM嵌入式微处理器及应用2.ARM处理器的2种工作状态

ARM状态

32位,ARM状态下执行字对准的32位ARM指令;Thumb状态

16位,Thumb状态下执行半字对准的16位Thumb指令。

Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%的存储空间,同时具备32位代码的所有优点。第7章ARM嵌入式微处理器及应用3.控制程序的3种执行流程方式

顺序执行

跳转指令

异常中断第7章ARM嵌入式微处理器及应用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个状态寄存器CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiqARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。第7章ARM嵌入式微处理器及应用ARM状态各模式下的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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状态寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq

所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。第7章ARM嵌入式微处理器及应用ARM状态各模式下可以访问的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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状态寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq第7章ARM嵌入式微处理器及应用第7章ARM嵌入式微处理器及应用未分组的通用寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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状态寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq寄存器R0~R7为未分组的通用寄存器,它们在任何处理器模式都对应于相同的32位物理寄存器。第一类分组的通用寄存器寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。在发生FIQ中断后,处理器不必为保护寄存器而浪费时间,从而加速了FIQ的处理速度。第二类分组的通用寄存器寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的内容。寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能:当使用BL指令调用子程序时,返回地址将自动存入R14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。程序计数器寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。状态寄存器寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。寄存器说明第7章ARM嵌入式微处理器及应用程序状态寄存器

ARM内核包含1个CPSR和5个仅供异常处理程序使用的SPSR。CPSR反映当前处理器的状态,其包含:4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V);2个中断禁止位(IRQ禁止与FIQ禁止);5个对当前处理器模式进行编码的位(M[4:0]);1个用于指示当前执行指令的位(ARM指令还是Thumb指令)。第7章ARM嵌入式微处理器及应用程序状态寄存器的格式NZCV——IM0M1M2M3M4TF—...313029282726876543210条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVIM0M1M2M3M4TF第7章ARM嵌入式微处理器及应用条件代码标志各标志位的含义如下:负标志N:运算结果的第31位值,记录标志设置操作的结果;零标志Z:如果标志设置的操作为0,则置位;进位标志C:记录无符号加法溢出,减法无借位,循环移位;溢出标志V:记录标志设置操作的有符号溢出。注意:ARM处理器对这些位进行测试,以决定是否执行一条指令,这样就可以不用程序跳转也能实现条件执行。第7章ARM嵌入式微处理器及应用

警告:绝对不要强制改变CPSR寄存器中的控制位T。如果这样做,处理器将进入一个无法预测的状态。控制位1、中断禁止控制位I和F;2、处理器状态位T;3、处理器模式位M0~M4。当控制位I置位时,IRQ中断被禁止;当控制位F置位时,FIQ中断被禁止。当控制位T置位时,处理器正在Thumb状态下运行;当控制位T清零时,处理器正在ARM状态下运行。M[4:0]模式可见的Thumb状态寄存器可见的ARM状态寄存器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系统R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR

注意:不是所有模式位的组合都定义了有效的处理器模式,如果将非法值写入M[4:0]中,处理器将进入一个无法恢复的模式。第7章ARM嵌入式微处理器及应用保留位CPSR中的保留位被保留将来使用。当改变CPSR标志和控制位时,请确认没有改变这些保留位。另外,请确保您的程序不依赖于包含特定值的保留位,因为将来的处理器可能会将这些位设置为1或者0。第7章ARM嵌入式微处理器及应用7.2.4ARM支持的数据类型和存储模式1.ARM支持的数据类型(1)字:在ARM体系中,每个字的长度是32位,占4个字节的存储单元,

而在8/16位处理器中字长一般是16位。(2)半字:在ARM体系中,半字的长度是16位,占2个字节的存储单元。(3)字节:在ARM体系中,每个字节的长度是8位,占一个存储单元,

这与8/16位处理器中字节的长度是一样的。第7章ARM嵌入式微处理器及应用2.ARM支持的存储模式最小的可寻址的存储器单位为一个字节。一个字节对应一个唯一的地址,所有地址的集合称为存储器空间。对于一个多字节类型的数据,在存储器中有两种数据存放方法:一种是低字节数据存放在内存低地址处,高字节数据存放在内存高地址处,称为小端字节顺序存储法;另一种是高字节数据存放在低地址处,低字节数据存放在高地址处,称为大端字节顺序存储法。第7章ARM嵌入式微处理器及应用第7章ARM嵌入式微处理器及应用7.1ARM微处理器 7.2ARM微处理器的体系结构 7.3STM32F103系列微控制器基本原理及应用7.3.1STM32F103系列微控制器内部结构 7.3.2STM32F103系列微控制器片内外设概述7.3.3基于标准外设库的软件开发STM32系列微控制器概述STM32系列微控制器使用来自于ARM公司具有突破性的Cortex-M3内核,该内核是专门设计于满足集高性能、低功耗、实时应用、高性价比于一体的嵌入式领域的要求。STM32系列给MCU用户带来了前所未有的自由空间,提供了全新的32位产品选项,结合了高性能、实时、低功耗、低电压等特性,同时保持了高集成度和易于开发的优势。嵌入式系统原理与接口技术39第7章ARM嵌入式微处理器及应用STM32系列微控制器新的基于ARM内核的32位MCU系列内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M3内核超前的体系结构高性能,低电压,低功耗,创新的内核以及外设简单易用/自由/低风险管脚,软件和外设全线兼容FLASH——32KB,64KB,128KBRAM——6KB,10KB,20KB封装——LQFP-48/LQFP-64/LQFP-100/BGA-100电压范围2.0到3.6VI/O电压容限为5V第7章ARM嵌入式微处理器及应用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的两条产品线第7章ARM嵌入式微处理器及应用STM32系列微控制器的优势由于STM32系列微控制器的定位是针对传统的嵌入式入门市场,因此相对于传统的8051、AVR等单片机,其巨大的优势显露无遗。主要体现在以下几个方面:1.25DMIPS/MHz和0.19mW/MHz;支持Thumb-2指令集;单周期乘法指令和硬件除法指令;内置了快速的中断控制器,提供了优越的实时特性,中断间的延迟时间降到只需6个CPU周期,从低功耗模式唤醒的时间也只需6个CPU周期;与ARM7TDMI相比运行速度最多可快35%且代码最多可节省45%;提供更为丰富的外设和网络接口,使用更为灵活方便。42第7章ARM嵌入式微处理器及应用STM32系列微控制器的应用STM32系列微控制器主要应用在以下场合:工业领域:可编程逻辑控制器(PLC)、变频器、打印机、扫描仪和工控网络。建筑和安防领域:警报系统、可视电话和HVAC。低功耗领域:血糖测量仪、电表和电池供电应用。家电领域:电机控制和应用控制。消费类产品领域:PC外设、游戏机、数码相机和GPS平台。嵌入式系统原理与接口技术43第7章ARM嵌入式微处理器及应用STM32系列微控制器功能概述STM32F103系列微控制器的工作频率为72MHz,内置高速存储器,丰富的增强I/O接口和连接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、1个USB和1个CAN。主要功能如下:(1)内置了多达512KB的嵌入式Flash,可用于存储程序和数据。多达64KB的嵌入式SRAM,可以以CPU时钟速度进行读/写(不带等待状态)。(2)可变静态存储控制器(FSMC)嵌入在STM32F103xC、STM32F103xD和STM32F103xE中,带有4个片选,支持Flash、RAM、PSRAM、NOR和NAND这4种模式。第7章ARM嵌入式微处理器及应用(3)STM32F103系列微控制器嵌入了一个嵌套矢量中断控制器(NVIC),可以处理43个可屏蔽中断通道(不包括Cortex-M3的16根中断线),提供16个中断优先级。(4)外部中断/事件控制器(EXTI)由用于19条产生中断/事件请求的边沿探测器线组成。每条线可以被单独配置用于选择触发事件(上升沿、下降沿或者两者都可以),也可以被单独屏蔽。(5)在启动的时候还要进行系统时钟选择,但复位的时候内部8MHz的晶振被选作CPU时钟。在启动的时候,boot引脚被用来在3种boot选项中选择一种:从用户Flash导入;从系统存储器导入;从SRAM导入。第7章ARM嵌入式微处理器及应用(6)3种电源供电方案:VDD,电压范围为2.0~3.6V,用于I/O和内部调压器;VSSA,VDDA,电压范围为2.0~3.6V,用于ADC、复位模块、RC和PLL;VBAT,电压范围为1.8~3.6V。调压器有3种运行模式:主(MR),用在传统意义上的调节模式(运行模式);低功耗(LPR),用在停止模式;掉电,用在待机模式。3种低功耗模式:休眠模式时,只有CPU停止工作,所有的外设继续运行,在中断/事件发生时唤醒CPU;停止模式时,允许以最小的功耗来保持SRAM和寄存器的内容,设备可以通过外部中断线从停止模式唤醒;待机模式时,除了备份寄存器和待机电路,SRAM和寄存器的内容会丢失,以追求最小的功耗。第7章ARM嵌入式微处理器及应用1.STM32F103架构STM32F103系列微控制器的主系统由4个驱动单元和4个被动单元构成;4个驱动单元由Cortex-M3内核DCode总线(D-bus)、系统总线(S-bus)、通用DMA1和通用DMA2构成;4个被动单元由内部SRAM、内部闪存存储器、FSMC、AHB到APB的桥(AHB2APBx)以及它所连接的所有的APB设备构成。7.3.1STM32F103系列微控制器内部结构第7章ARM嵌入式微处理器及应用STM32F103系列微控制器的系统结构(1)ICode总线:将Cortex-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。(2)DCode总线:将Cortex-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。(3)系统总线:连接Cortex-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。(4)DMA总线:将DMA的AHB主控接口与总线矩阵相连,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。(5)总线矩阵:协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。(6)AHB/APB桥(APB):两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1的操作速度限于36MHz,APB2操作于全速(最高72MHz)。第7章ARM嵌入式微处理器及应用2.存储器的地址空间

STM32F103系列微控制器基于的ARMCortex-M3核采用冯·诺依曼体系结构,它的存储系统采用统一编址的方式;程序存储器、数据存储器和寄存器被组织在4GB的线性地址空间内,以小端格式存储。由于Cortex-M3是32位的内核,因此其PC指针可以指向232B=4GB的地址空间,也就是0x0000_0000~0xFFFF_FFFF这块空间。第7章ARM嵌入式微处理器及应用Cortex-M3内核将0x0000_0000~0xFFFF_FFFF这块4GB的空间分成8大块:代码、SRAM、外设、外部RAM、外部设备、专用外设总线−内部、专用外设总线−外部、特定厂商,这导致使用该内核的芯片厂家必须按照这个进行各自芯片的存储器结构设计,如STM32。STM32加入了很多实际的内容,如Flash、SRAM等。只有加入了这些,才能成为一个拥有实际意义的、可以工作的处理芯片。第7章ARM嵌入式微处理器及应用STM32的存储器地址空间被划分为大小相等的8块区域,每块区域的大小为512MB(如0x20000000~0x40000000)。

1.根据STM32的内存映射图,在代码区,0x00000000地址为启动区,上电以后,CPU从这个地址开始执行代码。0x08000000是用户Flash的起始地址,0x20000000是SRAM的起始地址。对STM32存储器知识的掌握,实际上就是对Flash和SRAM这两个区域知识的掌握。

2.不同类型的STM32系列微控制器的SRAM的大小是不一样的,但是它们的起始地址都是0x20000000,终止地址都是0x20000000+其固定的容量大小。SRAM作用:存取各种动态的输入/输出数据、中间计算结果,以及与外部存储器交换的数据和暂存数据。设备断电后,SRAM中存储的数据就会丢失。第7章ARM嵌入式微处理器及应用3.STM32的3个Flash分区的称呼与datasheet保持一致。包括:(1)Flash主存储区(Mainmemory):存放代码的地方,

(2)Flash信息区(Informationblock),该区域又可以分为OptionBytes和SystemMemory。SystemMemory区域:存储无法修改的BootLoader程序;OptionBytes区域:可以按照用户的需要进行配置(如配置看门狗为硬件实现还是软件实现),除了互联型,其他型号地址都一样。(3)Flash存储接口寄存器区(Flashmemoryinterface),用于片上外设,也被称作外设存储器映射。对该区域进行操作,就是对相应的外设进行操作。第7章ARM嵌入式微处理器及应用STM32F103系列微控制器片内具有多种高速总线,指令总线(ICodeBus)简称I-Bus,连接Flash存储器指令接口和Cortex-M3内核;数据总线(DCodeBus)简称D-Bus,连接Flash存储器数据接口和Cortex-M3内核;系统总线(SystemBus)简称S-Bus,通过总线阵列(BusMatrix)与DMA、AHB和APB总线相连接;DMA总线(DMA-Bus),连接DMA控制器和总线阵列;高性能总线(AHB),通过AHB/APB桥与高级外设总线相连接,AHB总线与总线阵列相连接。7.3.2STM32F103系列微控制器片内外设概述第7章ARM嵌入式微处理器及应用STM32F103系列微控制器的片内外单元:1.CRC计算单元:用于计算给定的32位长的字数据的CRC校验码,生成多项式。2.复位与时钟管理单元(RCC)3.通用目的输入/输出(GPIO)单元:是STM32F103系列微控制器与外部进行通信的主要通道,可以输入或输出数字信号。4.替换功能输入/输出(AFIO)单元:复用GPIO口的替换功能输入/输出(AFIO)单元,需要借助GPIO配置寄存器将端口配置为合适的工作模式5.ADC单元和DAC单元6.定时器:STM32F103芯片共有8个定时器7.RTC时钟:主要用于产生日期和时间,集成了2个看门狗定时器,用于监测软件运行错误8.数据通信的外设模块:这些模块需要专用的通信时序和协议9.芯片的身份号第7章ARM嵌入式微处理器及应用STM32F103ZET6结构框图第7章ARM嵌入式微处理器及应用STM32标准外设库概述STM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。嵌入式系统原理与接口技术567.3.3基于标准外设库的软件开发第7章ARM嵌入式微处理器及应用使用标准外设库开发的优势简单地说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等的所有标准外设。对应的C源代码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。嵌入式系统原理与接口技术57第7章ARM嵌入式微处理器及应用1.基于CMSIS标准的软件架构嵌入式系统原理与接口技术58基于CMSIS标准的软件架构基于CMSIS标准的软件架构主要分为以下4层:用户应用层、操作系统及中间件接口层、CMSIS层、硬件寄存器层。CMSIS层起着承上启下的作用:

一方面该层对硬件寄存器层进行统一实现,屏蔽了不同厂商对Cortex-M系列微处理器核内外设寄存器的不同定义;另一方面又向上层的操作系统及中间件接口层和应用层提供接口,简化了应用程序开发难度,使开发人员能够在完全透明的情况下进行应用程序开发。也正是如此,CMSIS层的实现相对复杂。嵌入式系统原理与接口技术59CMSIS层主要分为3部分。(1)核内外设访问层(CPAL),由ARM负责实现对寄存器名称、地址定义、NVIC接口等定义,统一用_INLINE屏蔽差异,其接口函数均是可重入的。(2)片上外设访问层(DPAL),由芯片厂商负责实现,可调用CPAL提供的接口函数处理相应的外设中断请求。(3)外设访问函数(AFP),由芯片厂商负责,提供访问片上外设的函数嵌入式系统原理与接口技术60基于CMSIS标准的软件架构的优势为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M上操作系统的移植难度减少了新入门的微控制器开发者的学习曲线和新产品的上市时间独立于供应商的Cortex-M处理器系列硬件抽象层,统一了接口嵌入式系统原理与接口技术61STM32F10xxx标准外设库结构嵌入式系统原理与接口技术622.STM32F10xxx标准外设库结构与文件描述STM32F10xxx标准外设库文件功能说明嵌入式系统原理与接口技术63文件名功能描述具体功能说明core_cm3.hcore_cm3.cCortex-M3内核及其设备文件访问Cortex-M3内核及其设备:NVIC,SysTick等访问Cortex-M3的CPU寄存器和内核外设的函数stm32f10x.h微控制器专用头文件这个文件包含了STM32F10x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等system_stm32f10x.hsystem_stm32f10x.c微控制器专用系统文件函数SystemInit,用来初始化微控制器函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm32f10x_xx.s/.c,在跳转到main前调用SystemFrequncy,该值代表系统时钟频率startup_stm32f10x_Xd.s编译器启动代码微控制器专用的中断处理程序列表(与头文件一致)弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖)该文件是与编译器相关的stm32f10x_conf.h固件库配置文件通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。stm32f10x_it.hstm32f10x_it.c外设中断函数文件用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。stm32f10x_ppp.hstm32f10x_ppp.c外设驱动函数文件包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。Application.c用户文件用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。文件描述示例嵌入式系统原理与接口技术64CMSIS文件夹结构嵌入式系统原理与接口技术65标准外设库中包含了众多变量定义和功能函数,有必要了解它们的命名规范和使用规律。缩写定义。库中的主要外设都使用了缩写,可以查阅相关对应资料进行了解。命名规则。标准外设库命名时用PPP表示任一外设缩写,如:ADC。源程序文件和头文件命名以“stm32f10x_”作为开头,如:stm32f10x_conf.h。变量定义。在早期的版本中有24个变量定义,在Keil的安装根目录下,可以找到对应的定义,路径为:Keil\ARM\INC\ST\STM32F10x\stm32f10x_type.h。嵌入式系统原理与接口技术663.STM32F10xxx标准外设库的使用STM32F10xxx标准外设库的使用新建一个项目并设置工具链对应的启动文件,可以使用标准外设库中提供的模板,也可以根据自己的需求新建按照使用产品的具体型号选择具体的启动文件,加入工程调用对应的函数进行相应的功能设计使用KeilMDK以及标准外设库创建STM32工程开发工具与开发环境软件版本本节所使用KeilMDK为目前的最新版V4.21,使用的标准外设库为目前最新的V3.5版本。使用的开发调试工具为JLINK-V8,使用的驱动版本为V4.08l。建立工程目录首先建立一个用于存放工程的文件夹,在文件夹下分别建立LIB、USER、MDK三个文件夹,分别用于存放标准外设库文件、用户程序文件、工程目录。在MDK文件夹下建立List、Obj两个文件夹,分别用于存放在编译过程中产生的临时文件和输出文件。然后拷贝标准外设库和相应的文件到工程目录中。嵌入式系统原理与接口技术67MDK的操作与设置新建工程首先启动KeiluVision4,点击菜单栏Project-NewuVisionProject,选择工程的保存位置。嵌入式系统原理与接口技术68新建工程在弹出的界面中选择所使用的芯片信号,在本节中选择STM32F103ZE。嵌入式系统原理与接口技术69新建工程芯片选择完成后软件会弹出一条提示,提示是否要拷贝STM32大容量启动代码并添加到工程,由于我们使用新版本标准外设库中提供的启动代码,因此此处选择否。至此,建立了一个新的工程。嵌入式系统原理与接口技术70添加程序文件在左侧Project一栏中对Target1双击之

后可以重命名,这里命名为STM32,

然后右击,单击ManageComponents,

如右图所示。嵌入式系统原理与接口技术71添加程序文件在下图对应的Group上右键AddGroup和AddFilestoGroup,即可添加我们所需的文件。嵌入式系统原理与接口技术72添加程序文件程序调试与下载设置接下来进行的是程序调试和下载的相关设置,有关调试的设置在Debug选项卡中,此选项卡主要完成程序调试的相关设置,选项卡分为两个部分,左侧是使用模拟器进行仿真与调试的方式,点选后软件会进入模拟器调试。右侧是使用仿真器连接硬件开发平台进行调试,首先从右侧选择所使用的仿真器,这里使用的是J-Link仿真器,故在下拉框中选择Cortex-M/RJ-LINK/J-Trace,在两侧的下方可以通过勾选对应的复选框来选择是否需要在调试开始时下载程序和运行到主程序,其他部分的设置保持默认即可。嵌入式系统原理与接口技术74程序调试与下载设置嵌入式系统原理与接口技术75程序调试与下载设置嵌入式系统原理与接口技术76第8章嵌入式实时操作系统μC/OS-Ⅱ8.1操作系统概述 8.1.1操作系统的作用 8.1.2操作系统的特征 8.1.3操作系统的发展

8.2嵌入式操作系统概述 8.3嵌入式实时操作系统μC/OS-Ⅱ简介 8.4嵌入式实时操作系统μC/OS-Ⅱ内核 8.5嵌入式实时操作系统μC/OS-Ⅱ的移植 操作系统是一种为应用程序提供服务的系统软件,是一个完整计算机系统的有机组成部分。从层次来看,操作系统位于计算机硬件之上,应用软件之下。所以也把它叫做应用软件的运行平台。什么是计算机操作系统(OperatingSystem,OS)第8章嵌入式实时操作系统μC/OS-Ⅱ8.1操作系统概述它在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。通过提供函数(应用程序接口(API)),从而使应用程序的设计人员得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。从用户的角度来看,它就是一大堆函数(API和系统函数),用户可以调用(普通调用或系统调用)它们来对系统资源进行操作。计算机硬件用汇编语言编写的硬件抽象层高级语言的接口应用软件操作系统8.1.1操作系统的作用第8章嵌入式实时操作系统μC/OS-Ⅱ1.OS作为用户与计算机硬件系统之间的接口

第8章嵌入式实时操作系统μC/OS-Ⅱ操作系统处理器的管理存储管理网络和通信的管理I/O设备管理文件管理任务管理(1)处理机管理:用于分配和控制处理机。

操作系统最核心的工作就是每个用户任务的创建、执行,以及多个任务的调度工作。(2)存储器管理:主要负责内存的分配与回收。

内存是任务生存的空间,为用户任务分配、管理、释放内存是操作系统的重要工作。(3)I/O设备管理:负责I/O设备的分配与操纵。

一般的计算机系统都配有各种类型的外部设备,操作系统可以提供相应的驱动程序,方便用户使用外部设备。(4)文件管理:负责文件的存取、共享和保护。

当数据量很大或者程序本身体积很大的时候,就需要以文件的形式存储在外存上(如FLASH、SD卡、硬盘等)。2.OS作为计算机系统资源的管理者第8章嵌入式实时操作系统μC/OS-Ⅱ8.1.2操作系统的特征1.并发并发是指宏观上有多道程序同时运行,但在微观上是交替执行的。2.共享共享是指计算机系统中的资源可被多个并发执行的用户程序或系统程序共同使用,而不是被其中某一个程序所独占。共享的原因如下。(1)用户或任务独占系统资源将导致资源浪费。(2)多个任务共享一个程序的同一副本,而不是分别向每个用户提供一个副本,可以避免重复开发。并发和共享是紧密相关的。一方面,资源共享是以进程的并发执行为条件的,若不允许进程的并发执行,则不会有资源的共享;另一方面,进程的并发执行以资源共享为条件,若系统不运行共享资源,则程序无法并发执行。第8章嵌入式实时操作系统μC/OS-Ⅱ3.异步在多道程序系统中,多进程并发执行,但在微观上,进程是交替执行的,因此进程以“走走停停”的不连续方式运行。并发运行环境具有复杂性,每个进程在何时开始执行、何时暂停、以怎样的速度向前推进、多长时间完成、何时发生中断,都是不可预知的,此种特征称为异步。4.虚拟虚拟指的是通过某种技术把一个物理实体映射为多个逻辑实体,用户程序使用逻辑实体。逻辑实体是使用户感觉上有但实际上不存在的事物,第8章嵌入式实时操作系统μC/OS-Ⅱ8.1.3操作系统的发展操作系统最早产生于1955年,至今已发展了60多年,其可以粗略地被划分为四代。

第一代操作系统:单任务自动批处理操作系统。多个程序可自动在计算机上连续运行,通过避免人工装卸大大提高了机器利用率,但在程序执行过程中进行输入/输出数据时,主机空闲降低了处理机的利用率。

第二代操作系统:多任务和多用户操作系统,最大特征是采用并发技术,当一个程序在进行I/O操作时,CPU可转去执行其他程序,大大提高了机器利用率,但操作系统的复杂程度和功能规模大大增加,从而增加了操作系统的开发周期和开发成本,并影响了操作系统的正确性和可靠性。

第三代操作系统:结构化与小型化操作系统,其典型特征是重视操作系统的结构和功能精简。第三代操作系统还具有网络特征。第四代操作系统:网络和开放系统、并行与分布式操作系统。第8章嵌入式实时操作系统μC/OS-Ⅱ随着计算机应用技术的发展,适应不同应用系统的操作系统也相继出现,并在应用中得以不断发展。

嵌入式操作系统:主要伴随着个人数字助理PDA、掌上电脑、电视机顶盒、智能家电等设备的发展,对操作系统在功能和所占存储空间的权衡上提出了新的要求,对实时响应也有较高的要求。

实时操作系统:对操作系统的实时响应要求从来就没有停止过,要求计算机的最大响应时间越来越短,对任务调度时机、算法要求越来越高。特别是针对操作系统的实时性研究还在不断发展中。

并行操作系统:随着高性能通用微处理器的发展,人们已经成功地提出了用它们构造“多处理机并行”的体系结构。

网络操作系统和分布式操作系统:计算机网络系统还在不断完善中,基于Client-Server模型的分布式系统已不断走向应用,完全分布式的系统还未成形,且仍将是研究的热点。第8章嵌入式实时操作系统μC/OS-Ⅱ8.1操作系统概述

8.2嵌入式操作系统概述8.2.1嵌入式操作系统的演变 8.2.2嵌入式操作系统的特点 8.2.3嵌入式操作系统与通用操作系统的区别 8.2.4常见的嵌入式操作系统

8.3嵌入式实时操作系统μC/OS-Ⅱ简介 8.4嵌入式实时操作系统μC/OS-Ⅱ内核 8.5嵌入式实时操作系统μC/OS-Ⅱ的移植 嵌入式操作系统又称为实时操作系统,是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬件、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等。嵌入式操作系统具有通用操作系统的特点,如能够有效管理越来越复杂的系统资源;能够把底层虚拟化,使得开发人员可从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集及应用程序。嵌入式操作系统能够负责嵌入式系统的全部硬件和软件资源的分配、调度、控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。第8章嵌入式实时操作系统μC/OS-Ⅱ8.2嵌入式操作系统概述第8章嵌入式实时操作系统μC/OS-Ⅱ8.2.1嵌入式操作系统的演变

嵌入式操作系统得到飞速的发展:

•从支持8位微处理器到支持16位、32位甚至64位微处理器;

•从支持单一品种的微处理器芯片到支持多品种微处理器芯片;

•从只有内核到除内核外还提供其他功能模块,如文件系统、TCP/IP

网络系统、窗口图形系统等。

第8章嵌入式实时操作系统μC/OS-Ⅱ8.2.1嵌入式操作系统的演变目前,嵌入式系统的研究和应用产生了如下新的显著变化。

•能够在短时间内支持更多的微处理器。

•提供强大的软件开发支持包。

•通用计算机上使用的新技术、新观念逐步被移植到嵌入式系统中

•各类嵌入式Linux操作系统迅速发展

•结构变得更加复杂,网络互联成为必然趋势。

•精简系统内核,优化关键算法,降低功耗和软/硬件成本。

•提供更加友好的多媒体人机交互界面。第8章嵌入式实时操作系统μC/OS-Ⅱ8.2.2嵌入式操作系统的特点1.可裁剪性2.强实时性3.可移植性4.可扩展性8.2.3嵌入式操作系统与通用操作系统的区别1.地址空间:嵌入式操作系统在多数情况下不会采用这种内存模型,而是操作系统和应用程序公用一个地址空间2.内存管理:嵌入式操作系统的首选是不采用虚拟内存管理机制3.应用方式:嵌入式操作系统不必自动检测硬件,因而也不存在安装的过程目前,在嵌入式领域广泛使用的操作系统有:µC/OS-Ⅱ、μClinux、WindowsCE、VxWorks、ROS,以及应用在智能手机和平板电脑的Android、iOS等。按照操作系统是否设置了实时响应的机制,可分为实时操作系统和非实时操作系统。按照操作系统的发布方式,嵌入式操作系统可分为开源和非开源方式。大多数嵌入式操作系统对于研究和教学目的的应用是免费的,而对于商业产品开发,则有免费和需要购买许可证之分。

第8章嵌入式实时操作系统μC/OS-Ⅱ8.2.4常见的嵌入式操作系统第8章嵌入式实时操作系统μC/OS-Ⅱ8.1操作系统概述

8.2嵌入式操作系统概述

8.3嵌入式实时操作系统μC/OS-Ⅱ简介8.3.1μC/OS-Ⅱ的特点 8.3.2μC/OS-Ⅱ的文件结构

8.4嵌入式实时操作系统μC/OS-Ⅱ内核 8.5嵌入式实时操作系统μC/OS-Ⅱ的移植 2023/12/22西安邮电学院计算机系92uC/OS由JeanJ.Labrosse先生(加拿大)1992编写的RTOS,1999年改写后命名为uC/OS-II。

2000年被美航空管理局认证。

uC/OS-II中的代码90%用C语言编写,有少量的相关于硬件

的代码用汇编编写,易移植到各类体系结构的处理器。官方网站:www.uCOS-II.com8.3嵌入式实时操作系统μC/OS-Ⅱ简介1.有源代码μC/OS-Ⅱ是一款源码公开的实时操作系统。2.可移植性μC/OS-Ⅱ源码绝大部分是用移植性很强的ANSIC编写的,与微处理器硬件相关的部分是用汇编语言编写的。汇编语言编写的部分已经压到最低限度,以使μC/OS-Ⅱ便于移植到其他微处理器上。3.可固化μC/OS-Ⅱ是为嵌入式产品设计的,可以将μC/OS-Ⅱ嵌入产品中作为产品的一部分。4.可裁剪可裁剪指的是用户可以在应用程序中通过语句#defineconstants来定义所需的μC/OS-Ⅱ功能模块,以减少不必要的存储器空间的开支。第8章嵌入式实时操作系统μC/OS-Ⅱ8.3.1μC/OS-Ⅱ的特点5.可剥夺性μC/OS-Ⅱ总是运行就绪条件下优先级最高的任务。6.多任务μC/OS-Ⅱ可以管理64个任务,支持56个用户任务,8个系统保留任务。7.可确定性绝大多数μC/OS-Ⅱ的函数调用和服务的执行时间具有可确定性。8.任务栈μC/OS-Ⅱ的每个任务都有单独的栈,它允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。9.系统服务μC/OS-Ⅱ提供很多系统服务,如信号量、互斥型信号量、事件标志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函数等。10.中断管理中断可以使正在执行的任务暂时挂起。中断嵌套层数可达255层。第8章嵌入式实时操作系统μC/OS-Ⅱ第8章嵌入式实时操作系统μC/OS-Ⅱ8.3.2μC/OS-Ⅱ的文件结构μC/OS-II中的数据类型备注:这些类型定义在ARM\OS_CPU.H文件中。μC/OS-II的文件结构μC/OS-Ⅱ主要可以分成核心部分(包含任务调度)、任务管理、时钟部分、时间管理、多任务同步与通信、内存管理、CPU移植等部分。(1)核心部分(OSCore.c):μC/OS-Ⅱ处理核心,包括初始化、启动、中断管理、时钟中断、任务调度及事件处理等用于系统基本维持的函数。(2)任务管理(OSTask.c):包含与任务操作密切相关的函数,包括任务建立、删除、挂起及恢复等,μC/OS-Ⅱ以任务为基本单位进行调度。(3)时钟部分(OSTime.c):μC/OS-Ⅱ中的最小时钟单位是timetick(时钟节拍),其中包含时间延迟、时钟设置及时钟恢复等与时钟相关的函数。(4)多任务同步与通信(OSMbox.c、OSQ.c、OSSem.c、OSMutex.c、OSFlag.c):包含事件管理函数,涉及Mbox、msgQ、Sem、Mutex、Flag等。(5)内存管理(OSMem.c):主要用于构建私有的内存分区管理机制,其中包含创建memPart、申请/释放memPart、获取分区信息等函数。(6)CPU移植:μC/OS-Ⅱ针对特定CPU的移植部分,由于涉及SP等系统指针,因此通常用汇编语言编写,包括任务切换、中断处理等内容第8章嵌入式实时操作系统μC/OS-Ⅱ一.数组⒈数组:①同一数据类型数据的集合;②占用连续内存空间;③其中的所有元素名称都相同,但每个元素都有一个编号;④元素名去掉编号(下标),得到的是数组名,数组名是个指针。⒉使用上的特点:①分类存放;②检索速度快且恒定;③缺点:占用连续空间大。⒊应用:记录同类事物的表。第8章嵌入式实时操作系统μC/OS-Ⅱ补充:操作系统中常用的数据结构(了解)二.位图⒈位图是数组的一种特殊应用。⒉应用:登记表。第8章嵌入式实时操作系统μC/OS-Ⅱ三.结构⒈结构:①不同数据类型数据的集合;②占用连续内存空间。⒉使用上的特点:①不分类存放,但用来描述同一事物;②检索速度快且恒定。⒊应用:通讯录中的一条记录、工具箱、厨房等等。第8章嵌入式实时操作系统μC/OS-Ⅱ四.链表⒈链表:①同数据类型数据的集合;②不占用连续内存空间。⒉使用上的特点:①分类存放,但空间上不连续(不需要大量的连续存储空间;②检索速度慢,且耗费的时间不固定。⒊应用:存放大量的较大的表,类似档案柜第8章嵌入式实时操作系统μC/OS-Ⅱ五.队列:①队列是一种特殊的线性表。在队列中,仅允许一端进行插入,在另一端进行删除。②允许插入的一端叫做队尾(rear);允许删除的另一端叫做队头(front)。③队列又称先进先出(FirstinFirstOut,简写为FIFO)表。第8章嵌入式实时操作系统μC/OS-Ⅱ六.堆栈:①限定只能在表的一端进行插入和删除的线性表。②在表中允许插入和删除的一端叫做栈顶(top),表的另一端叫做栈底(bottom)。③栈又称后进先出(LastInFirstOut,简写为LIFO)表。第8章嵌入式实时操作系统μC/OS-Ⅱ第8章嵌入式实时操作系统μC/OS-Ⅱ8.1操作系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论