模板课件系列之-chapter7第七章 ARM嵌入式处理器_第1页
模板课件系列之-chapter7第七章 ARM嵌入式处理器_第2页
模板课件系列之-chapter7第七章 ARM嵌入式处理器_第3页
模板课件系列之-chapter7第七章 ARM嵌入式处理器_第4页
免费预览已结束,剩余82页可下载查看

下载本文档

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

文档简介

1、chapter7第七章 ARM嵌入式处理器7.1 ARM处理器7.2 ARM处理器的体系结构7.3 STM32F103微控制器7.4 STM32F10 x固件库简介与应用举例chapter7了解ARM处理器的种类,ARM处理器的工作模式、寄存器结构、异常处理的概念;了解STM32微控制器的基本结构;了解STM32 固件库的使用方法;了解在MDK开发环境下开发STM32程序的方法。ARMAdvance RISC MachineARM32位RISC结构IP核提供商位于英国剑桥的ARM总部7.1 ARM处理器简介成立于1990年11月前身为 Acorn计算机公司Acorn RISC MachineA

2、dvance RISC Machine(ARM)主要设计ARM系列RISC处理器内核授权ARM内核给生产和销售半导体的合作伙伴ARM 公司不生产芯片知识产权IP(Intelligence Property)提供基于ARM架构的开发设计技术软件工具, 评估板, 调试工具,应用软件总线架构, 外围设备单元等ARM是知识产权(IP)供应商将技术授权给其它芯片厂商形成各具特色的ARM芯片. . .低能耗:ARM架构的能效比优势非常明显。应用方案非常灵活:由于ARM公司只是提供了一个高效精简的核心,各半导体厂商可根据自身需求进行应用设计,架构灵活简便、扩展力很强。得到大量的软件支持:包括Windows

3、CE、Symbian和Palm OS在内的三种手持设备操作系统系统都是基于ARM架构所设计。目前,ARM已经牢牢占领手机、PDA以及其他的掌上电子产品市场,ARM在这些领域会继续保持优势。ARM处理器的技术优势ARM处理器核:由高到低:Cortex-A57、Cortex-A53、Cortex-A15、Cortex-A12、Cortex-A9、Cortex-A8、Cortex-A7、Cortex-A5、ARM11、ARM9、ARM7处理器。ARM处理器特点1支持Thumb(16位)/ARM(32位)双指令集,兼容8位/16位器件;(2)指令执行采用流水线/技术;(3)带有指令Cache和数据Ca

4、che,大量使用寄存器,指令执行速度更快;(4)支持大端格式和小端格式两种方法存储字数据;端模式Endian:源自(格列佛游记)不同的计算机存放多字节值的顺序不同,有些机器低位先存,即小端模式;有的机器高位先存,即大端模式。16bit宽的数0 x1234在Little-endian模式(以及Big-endian模式)CPU内存中的存放方式为:内存地址小端模式大端模式0 x40000 x340 x120 x40010 x120 x345支持Byte(字节,8位)、Halfword(半字,16位)和Word(字,32位)三种数据类型;(6)支持用户、快中断、中断、管理、中止、系统和未定义等7种处理

5、器模式,除了用户模式外,其余的均为特权模式;7处理器芯片上都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试;在处理器核中还可以嵌入跟踪宏单元ETM,用于监控内部总线,实时跟踪指令和数据的执行; (8)具有片上总线AMBA(Advanced Micro-controller Bus Architecture)。通过AMBA可以方便地扩充各种处理器及I/O,可以把DSP、其他处理器和I/O都集成在一块芯片中。1. RISC结构精简指令集计算机RISCReduced Instruction Set Computer体系结构是在复杂指令集计算机CISC (Complex Instructi

6、on Set Computer)的基础上产生并发展起来的;7.2 ARM处理器的体系结构7.2.1 嵌入式微处理器的体系结构RISC通过简化指令系统使计算机的结构更加简单合理,运算效率更高;RISC体系结构优先选取使用频率最高的简单指令,避免复杂指令;指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等,RISC已经成为当前计算机发展不可逆转的趋势。RISC体系结构的特点:1采用固定长度的指令格式,基本寻址方式有23种。(2)使用单周期指令,便于流水线操作执行。(3)大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率

7、。ARM体系结构在保证高性能的前提下尽量缩小芯片的面积,并降低功耗,采用以下技术:所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率;可用加载/存储指令批量传输数据,以提高数据的传输效率;可在一条数据处理指令中同时完成逻辑处理和移位处理;在循环处理中使用地址的自动增减来提高运行效率。2. 哈佛Harvard结构哈佛结构主要特点是程序存储器和数据存储器相互独立,独立编址、独立访问。系统中分离的程序总线和数据总线可允许在一个机器周期内同时获取指令和操作数,从而提高了执行速度及数据的吞吐率。取指和执行能完全重叠,具有较高的执行效率。3. 流水线技术是将一个重复的时序分解成若干个子

8、过程,而每个子过程都可以有效地在其专用功能段上与其它子过程同时执行。指令流水线就是将一条指令分解成一连串执行的子过程。ARM7为三级流水线, ARM9为五级流水线, ARM10为六级流水线, ARM11为八级流水线 。CycleOperationADDSUBORRANDEORORR123456789FDEFDEFEFDEFDEFDEWMF 取指D 解码E 执行该例中用6个时钟周期执行了6条指令,所有的操作都在寄存器中单周期执行,指令周期数 (CPI) = 1FFFFFFFFDDDDDEEEEE流水线技术ARM7的3级流水线 :取指级-译码级 -执行级 chapter77.2.2 ARM微处理器

9、工作模式及状态ARM处理器核可以工作在以下2种状态 ARM状态32位,ARM状态下执行字对准的32位ARM指令;Thumb状态16位,Thumb状态下执行半字对准的16位Thumb指令。7.2.3 ARM寄存器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_fiq 7.2.4 ARM微处理器的异常处理在一个正常的程序流程执行过程中,由内部或外部源

10、产生的一个事件使正常的程序产生暂时的停止时,称之为异常。在处理异常之前,当前处理器的状态必须保留,当异常处理完成之后,恢复保留的当前处理器状态,继续执行当前程序。多个异常同时发生时,处理器将会按固定的优先级进行处理。1. 异常处理分类ARM体系结构支持7种类型的异常,异常类型、异常处理模式和优先级如表所示。1、进入异常当发生异常时,除了复位异常立即中止当前指令外,处理器尽量完成当前指令,然后脱离当前的程序去处理异常。ARM处理器对异常中断的响应过程如下 :2. ARM异常中断响应过程1、保存返回地址将引起异常指令的下一条指令的地址保存,使异常处理程序执行完后能正确返回原程序。(2)、保存当前状

11、态寄存器CPSR的内容将CPSR的内容保存到将要执行的异常中断对应的SPSR中,便于中断返回时恢复处理器当前的状态位、中断屏蔽位以及各条件标志位。3、设置当前状态寄存器CPSR中的相应位包括使处理器进入相应的执行模式,禁止IRQ中断等。(4)、转去执行中断处理程序取相应的中断向量给程序计数器PC,使程序开始执行中断处理程序。通常矢量地址处将包含一条指向相应程序的转移指令,从而可跳转到相应的异常中断处理程序处执行异常中断处理程序 。2、异常返回1)、异常返回应执行的操作异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将返回地址装入PC 。恢复CPSR的值。清除中断屏蔽位。可以认为应

12、用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。2、各种异常返回方法FIQ中断返回无论是在ARM状态还是在Thumb状态下进入FIQ模式,FIQ处理程序均可以执行以下指令从FIQ模式返回:SUBS PC,R14-fiq ,#4指令预取中止( Abort )异常返回当处理器试图执行无效指令时,指令预取中止异常才会发生。如果发生了指令预取中止异常,无论是在ARM状态还是Thumb状态,其返回指令为:SUBS PC, R14_abt, #4;重新执行被中止的指令未定义指令异常返回当ARM处理器遇到不能处理的指令时,会产生未定义指令异常。采用这种机制,可以通过软件仿真扩展ARM

13、或Thumb指令集。处理器执行以下程序返回,无论是在ARM还是Thumb状态:MOVS PC, R14_und7.2.5 ARM支持的数据类型和存储模式1. ARM支持的数据类型1字:在ARM体系中,每个字的长度是32位,占4个字节的存储单元,而在8/16位处理器中字长一般是16位。(2)半字:在ARM体系中,半字的长度是16位,占2个字节的存储单元。(3)字节:在ARM体系中,每个字节的长度是8位,占一个存储单元,这与8/16位处理器中字节的长度是一样的。2. ARM支持的存储模式最小的可寻址的存储器单位为一个字节。一个字节对应一个唯一的地址,所有地址的集合称为存储器空间。对于一个多字节类型

14、的数据,在存储器中有两种数据存放方法:一种是低字节数据存放在内存低地址处,高字节数据存放在内存高地址处,称为小端字节顺序存储法;另一种是高字节数据存放在低地址处,低字节数据存放在高地址处,称为大端字节顺序存储法。7.3 STM32F103微控制器重要的参考资料1、Cortex-M3权威指南 宋岩译权威资料的精简版,思路清晰,有条理,适合学Cortex-M3处理器的所有人。2、STM32技术参考手册a)STM32微控制器产品的技术参考手册是讲述如何使用该产品的;b)包含各个功能模块的内部结构、所有可能的功能描述、各种工作模式的使用和寄存器配置等详细信息。3、STM32F103RB数据手册a)产品

15、的基本配置内置FLASH和RAM的容量、外设模块的种类和数量等;b)管脚的数量和分配,电气特性,封装信息和订购代码等。4、STM32开发板手册与开发板配套的参考资料,有很多经验值得借鉴。5、stm32固件库a)相关定义,文档约定和固件库规则;b)库的架构,安装指南及使用实例;c)每个外围模块的函数及解释。6、开发板原理图必不可少的硬件电路参考。7、网络资源。必要的学习步骤1、了解Cortex-M3内核参考Cortex-M3权威指南。2、认识STM32F103RBT6处理器a)了解STM32F10 xxx技术参考手册与数据手册;b)了解STM32F10 xxx技术参考手册第二章存储器和总线构架,

16、需要了解外设时,再具体查看具体的功能模块;c)芯片选型初期看数据手册以评估该芯片是否能满足功能需求;d)基本选定芯片后就需要查看技术参考手册以确定各功能模块的功能是否符合要求;e)确定芯片型号,进入编程阶段后需要详细阅读技术参考手册以获知各项功能的具体实现方式和寄存器的配置使用;f)在设计硬件时还需要参考数据手册以获得电压、电流、管脚分配、驱动能力等信息。3、了解开发板原理图参考开发板原理图,了解可支配的资源。4、了解库的结构与使用参考STM32固件库中文版UM0427前三章。5、熟悉开发工具的使用a)KEIL MDK的使用b) 程序下载软件FlyMcu的使用c) 串口调试助手的使用6、了解时

17、钟系统时钟的配置涉及到所有的外设资源。7、GPIOGeneral Purpose Input Output 通用输入/输出8、定时器与中断9、串口10、ADC、SPI、IIC、USB。STM32系列微控制器是ST意法半导体公司以Cortex-M0,Cortex-M3,Coretex-M4,Coretex-M7四种RISC内核开发的系列产品。 STM32系列在指令集方面向后兼容,相同封装的芯片,大部分管脚功能也相同,用户可以在不修改PCB电路板的条件下,根据需要更换不同资源(Flash、RAM),甚至不同内核的芯片来完善自己的设计工作。STM32F103:采用Cortex-M3内核、工作频率可达

18、72MHz、有丰富的增强I/O端口和外设,应用范围广泛、性价比很高。1STM32 F103微控制器的系统架构主系统由以下部分构成:四个驱动单元:Cortex-M3内核 ICode总线(I-bus),DCode总线(D-bus),系统总线(S-bus)GP-DMA(通用DMA)三个被动单元内部SRAM内部闪存存储器AHB到APB的桥(AHB2APBx),它连接所有的APB设备通过一个多级的AHB总线构架相互连接ICode总线:将Cortex-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。DCoce总线:将Cortex-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加

19、载和调试访问)。System总线:连接Cortex-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。DMA总线:将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到 SRAM、闪存和外设的访问。AHB/APB桥(APB):两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。总线矩阵:总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。对于STM32F103微控制器,总线矩阵包含:4个驱动部件:CPU的DCode、系统总线、DMA1总线和

20、DMA2总线4个被动部件:闪存存储器接口(FLITF)、SRAM、FSMC和AHB2APB桥。 AHB外设通过总线矩阵与系统总线相连,允许DMA访问。程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。STM32F10 xxx内置64K字节的静态SRAM。可以以字节、半字(16位)或全字(32位)访问。2存储器的地址空间在STM32F10 xxx里,可以通过BOOT1:0引脚选择三种不同启动模式。X 0 主FLASH0 1 系统存储器1 1 内置SRAM内嵌的自举程序存放在系统存储器,由ST在生产线上写入,用于通过可用的串行接口对

21、FLASH进行重新编程。STM32F103支持三种复位形式,分别为系统复位、上电复位和备份区域复位。3复位STM32F103的时钟源共有4种:HSI,高速内部时钟,由内部8MHz的RC振荡器产生。系统复位后,HSI振荡器被选为系统时钟,直到系统时钟被切换,HSI振荡器才可以被停止。HSE,高速外部时钟信号振荡器时钟,由外接晶振325MHz或输入时钟信号(最高50MHz)产生。4时钟LSE,低速外部时钟,LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。LSI,低速内部时钟,内部RC振荡器,担当一个低功耗时钟源的角色,它可以在

22、停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。LSI时钟频率大约40kHz(30kHz至60kHz之间)。STM32F103内核所使用的系统时钟SYSCLK可以使用HSI、HSE或者以这两者之一作为输入的PLL产生的时钟最高72MHz。STM32F103外设的时钟由系统时钟SYSCLK分频得到,其中AHB、APB2总线时钟频率最高72MHz,APB1总线时钟频率最高36MHz。STM32F103闪存编程的接口时钟只能使用HSI。循环冗余校验(CRC)计算单元:是根据固定的生成多项式得到任一32位全字的CRC计算结果。 在其他的应用中, CRC技术主要应用于核实数据传输或者数据存

23、储的正确性和完整性。备份寄存器:是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电。5其他RTC实时时钟:是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。器件电子签名:STM32F103在系统存储区域存放96位的电子签名,可以通过JTAG/SWD或者CPU读取,是芯片的唯一身份标识。适合用来作为序列号、密码或者用来激活带安全机制的自举过程。两个看门狗:独立看门狗和窗口看门狗。独立看门狗(IWDG)由专用的低速时钟(LSI)

24、驱动,即使主时钟发生故障它也仍然有效。IWDG最适合应用于需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。窗口看门狗(WWDG)由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。7.3.2 STM32F103微控制器的外设端口1. 通用和复用功能I/O1) STM32F103有PA、PB、PC、PD、PE共5个16位GPIO端口。每位可分别配置成多种模式:输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽式输出、推挽式复用功能、开漏复用功能2)STM

25、32F103的其余外设与GPIO复用端口,如定时器、AD/DA、串行通信2.定时器STM32F103有1个Cortex-M3内核所有的24位系统定时器SYSTICK和3种 16位的定时器系统定时器: SYSTICK24位自动装载递减计数器基本定时器:TIM6,TIM716位自动重装载累加计数器。触发DAC的同步电路。在更新事件(计数器溢出)时产生中断/DMA请求。高级控制定时器: TIM1,TIM816位向上、向下、向上/下自动装载计数器多达4个独立通道:输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出。死区时间可编程的互补输出。使用外部信号控制定时器和定时器互联的同步电路

26、。允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器。通用定时器:TIM2,TIM3,TIM4,TIM516位向上、向下、向上/向下自动装载计数器。4个独立通道:输入捕获、输出比较、PWM生成、单脉冲模式输出。使用外部信号控制定时器和定时器互连的同步电路。如下事件发生时产生中断/DMA:更新,触发事件,输入捕获 ,输出比较。支持针对定位的增量(正交)编码器和霍尔传感器电路。触发输入作为外部时钟或者按周期的电流管理。3. ADC/DACSTM32F103有3个12 位分辨率的ADC,每个ADC最多有16个外部通道和2个内部通道,最短转换时间1s。各通道的A/D转换可以单次、连续、扫描或间

27、断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。启动ADC的触发信号可以是软件启动、也可以是定时器或外部触发启动。转换结束和发生看门狗事件时可以产生中断。可以通过DMA请求,将转换的数据传输到用户指定RAM中。STM32F103有2个12位电压输出DAC,可以独立获同步地更新2个通道的输出。DAC可以配置为8位或12位输出。具有噪声波形生成和三角波形生成功能。每个通道都有DMA功能。DAC启动可通过软件触发、定时器触发或者外部引脚触发转换。4. 通信接口STM32F103有I2C、USART、SPI、

28、CAN、USB、SDIO共6种通信接口。(1) I2C:STM32F103的I2C接口既可以做主设备也可以做从设备,支持100 kHz标准和400 kHz快速两种通信速度。兼容SMBus 2.0 和PMBus。支持单字节缓冲器的DMA。能产生地址/数据通信成功和错误2个中断。(2) USART:通用同步异步收发器。STM32F103最多可有5个USART,可以实现基本的全双工异步通信、同步单向通信、LIN局域互联网、智能卡协议和IrDA(红外数据组织)SIR ENDEC规范。(3)SPI:串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。STM32F103的SPI接口可

29、配置为主模式或从模式8位或16位传输帧格式最高波特率18Mbits/s可编程的时钟极性和相位,可编程的数据顺序支持DMA功能的1字节发送和接收缓冲器支持发送、接收、故障、过载和CRC错误中断。(4)CAN:STM32F103的CAN模块称为bxCAN (Basic Extended CAN),支持CAN协议2.0A和2.0B主动模式和从模式,波特率最高1Mbits/s,具有3个发送邮箱、2个3级深度接收FIFO,14个过滤器组,支持时间触发通信功能,可占用发送、FIFO1、FIFO2、状态改变错误等4个中断。(5)USB:STM32F103实现了USB2.0全速接口,可配置1到8个USB端点,

30、支持同步传输,支持批量/同步端点的双缓冲区机制,支持USB挂起/恢复操作。USB专用的48MHz时钟由PLL产生必须使用HSE做时钟源。USB和CAN共用一个专用的512字节的SRAM存储器用于数据的发送和接收,因此USB和CAN可以同时用于一个应用中但不能在同一个时间使用。(6)SDIO:STM32F103实现了SD/SDIO/MMC操作接口,兼容多媒体卡系统规格书4.2版本, SD存储卡规格2.0版本,SD I/O卡规格2.0版本,CE-ATA数字协议1.1版本,8位总线模式下数据传输率可达48MHz。FSMC:全称flexible static memory controller灵活的静

31、态存储器控制器,可以实现对SRAM、ROM、NOR闪存和PSRAM的接口。DBG:调试支持,STM32F103使用Cortex-M3内核,该内核内含硬件调试模块,支持串行接口和JTAG调试接口。硬件调试模块允许内核在取指或访问数据时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。5.其他1 嵌套向量中断控制器嵌套向量中断控制器NVIC和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地处理晚到的中断。2) DMA控制器STM32F103有2个DMA控制器,可配置12个独立通道。7.3.3 STM32F103的中断控制器与D

32、MA控制器7.4 STM32F10 x固件库简介与应用举例在ST公司的官方网站,能够下载到大量有关STM32系列微控制器的软件,包括:开发工具、固件库和示例程序等。ST公司开发了个免费的集成开发工具STVP,同时还有许多其他公司的开发工具也支持STM32系列微控制器的软件开发,如:Keil公司的MDK-ARM、IAR公司的IAR-EWARM、ARM公司的DS-5、CooCox公司的CoIDE、Embest的EmbestIDE等。针对不同芯片和不同应用场合,ST公司和一些第三方公司开发了许多软件中间件底层驱动、硬件抽象层以及RTOS、USB栈、图形栈等,帮助用户快速高效地开发应用程序。结合ST公

33、司的硬件评估板,还有许多包括网络应用、无线通信、实时操作系统、触摸屏应用等示例程序提供给用户参考。对于STM32F103系列微控制器的通用外设,可以使用STM32F10 x固件库(STM32F10 x Standard Peripherals Firmware Library)辅助用户开发程序。7.4.1 STM32F10 x固件库概述STM32F10 x固件库已经过多次改进更新。以2011年4月发布的V3.5.0版简要说明其使用方法。STM32F10 x固件库支持STM32F1系列低中高密度FLASH容量从16K字节到1M字节的所有芯片(包括互联型芯片STM32F105、STM32F107,

34、但互联型芯片所特有的以太网和USB部分的驱动在另外的固件库中提供)。STM32F10 x固件库的压缩包解压后产生一个名为“STM32F10 x_StdPeriph_Lib_V3.5.0的文件夹其下包含2个文件帮助文件stm32f10 x_stdperiph_lib_um.chm,发行说明Release_Notes.html4个子文件夹(_htmresc、Libraries、Project和Utilities)。1) STM32F10 x固件库的文件夹结构个子文件夹的内容说明如下:_htmresc:存放了2张logo图片一个是ST公司的logo,另一个是CMSIS的logo。Libraries,

35、函数库文件夹,包括芯片接口、外设驱动程序和头文件。Project,包括外设在不同情况下的应用示例程序和不同集成开发软件下的工程项目模板。Utilities,提供了ST公司的几款评估板用到的特定的接口函数库。一般编写用户程序,需要复制Libraries文件夹,然后改写Project下的文件,以实现需求目标CMSIS是Cortex Microcontroller Software Interface Standard的缩写是ARM公司于2008年11月12日发布的ARM Cortex微控制器软件接口标准CMSIS是独立于供应商的ARM Cortex处理器的硬件抽象层基于CMSIS标准的软件架构如下

36、图。2) CMSIS架构CMSIS层分为部分:核内外设访问层CPALCore Peripheral Access Layer,由ARM负责实现,定义对内核寄存器地址,对寄存器、NVIC、调试子系统的访问接口。中间件访问层MWAL(Middleware Access Layer),由ARM负责实现,定义一些中间件访问的API函数(如TCP/IP协议栈、USB协议以及实时操作系统的访问与调试接口)。设备外设访问层DPAL(Device Peripheral Access Layer),由芯片厂商定义外设硬件寄存器地址和访问接口。CMSIS子文件夹下包含了核内外设访问层CPAL的头文件core_cm

37、3.h,设备外设访问层DPAL头文件stm32f10 x.h,系统外设访问层头文件system_stm32f10 x.h系统时钟管理,以及针对种不同编译环境的startup汇编启动代码。CMSIS层统一了不同厂商对Cortex-M系列微处理器核内外设寄存器的定义,同时向上层的操作系统及中间件接口层和用户层提供了接口,简化了应用程序的开发难度,加快了开发速度。chapter7_htmresc本文件夹包含了所有的html页面资源LibrariesCMSIS见表STM32F10 x_StdPeriph_Driverinc标准外设库驱动头文件src标准外设库驱动源文件ProjectExamples标准

38、外设库驱动的完整例程TemplateMDK-ARMKEIL RVMDK的项目模板示例RIDERaisonance RIDE的项目模板示例EWARMIAR EWARM的项目模板示例UtilitiesSTM3210-EVAL本文件夹包含了用于STM3210B-EVAL和STM3210E-EVAL评估板的专用驱动chapter7CM3CoreSupportcore_cm3.hcore_cm3.cCMSIS的Cortex-M3内核设备访问层头文件,提供进入 M3 内核接口DeviceSupportstm32f10 x.h系统寄存器定义申明以及包装内存操作system_stm32f10 x.hsystem_stm32f10 x.c设置系统以及总线时钟,SystemInit函数,系统启动的时候都会调用,用来设置系统的整个时钟系统startu

温馨提示

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

评论

0/150

提交评论