CORTEX-M4知识点总结.docx

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CORTEX-M4知识点总结

Cortex-M4内核知识点总结余明1 ARM处理器简介ARM处理器的种类很多,从手机上的高端处理器芯片到面向微控制器的芯片,都有ARM的身影。2011年基于ARM处理器的芯片的出货量已经到达79亿。这一章首先对ARM处理器有个简单的了解。在早期的时候,ARM处理器使用后缀表明特性。例如ARM7TDMI,T表示支持Thumb指令,D表示JTAG,M表示快速乘法器,I则表示嵌入式ICE模块。近几年,ARM改变处理器的命名方式,统一使用了Cortex处理器的名称。Cortex处理器下分为三类:Cortex-A系列:需要处理高端嵌入式系统等复杂应用的应用处理器Cortex-R系列:实时、高性能的处理器,面向较高端的实时市场Cortex-M系列:面向微控制器和混合信号设计等小型应用,注重低成本、低功耗。不同系列的处理器使用不同版本的架构Cortex-A系列ARMv7-A架构Cortex-R系列ARMv7-R架构Cortex-M系列ARMv7-M、ARMv6-M在Cortex-M系列中,进一步都处理器进行了划分处理器功能架构Cortex-M0、Cortex-M0+低功耗ARMv6-MCortex-M1FPGAARMv6-MCortex-M3微控制器ARMv7-MCortex-M4增加DSPARMv7E-M2架构2.1架构简介Cortex-M3和Cortex-M4处理器都是基于ARMv7-M架构。最初ARMv-7M架构是随着Cortex-M3处理器一同引进的,而在Cortex-M4发布时,架构中又额外增加了新的指令和特性,改进后的架构有时也被称为ARMv7E-M。2.2编程模型2.2.1操作模式和状态Cortex-M4处理器包括两种操作状态和模式,还有两种访问等级。操作状态调试状态:处理器被暂停后,就会进入调试状态,比如利用调试器触发断点,单步执行等。·Thumb状态:处理器执行程序代码,它就是处在Thumb状态,因为Cortex-M4用的是Thumb指令,所以称为Thumb状态,并且在Cortex-M处理器中已经不支持ARM指令,也就不存在ARM状态。操作模式处理模式:执行中断服务程序等异常处理。在处理模式下,处理器总是具有特权访问等级。线程模式:执行普通的程序代码。访问等级特权访问等级:可以访问处理器中的所有资源。非特权访问等级:有些存储器区域无法访问,有些操作也无法使用。访问等级有特殊寄存器CONTROL控制。软件可将处理器从特权访问等级转换至非特权访问等级,但反之无法直接转换,需要借助异常机制。处理器的操作模式和状态可由图1.1来表示,在上电后,默认处于特权线程模式下的Thumb状态。2.2.2 寄存器对于ARM架构来讲,处理存储器中的数据时,需将其从存储器加载到寄存器中,处理完毕后,若有必要,还可以再写回存储器。这种方式被称作“加载-存储架构”(LOAD-STORE)。Cortex-M4处理器的寄存器组中有16个寄存器,其中包括13个通用寄存器和3个有特殊用途的寄存器。1 通用寄存器R0-R12R0-R7被称作低寄存器,许多16位指令只能访问低寄存器。R8-R12称作高寄存器,可用32位指令和几个16位指令访问。R0-R12初始值未定义。2 栈指针R13R13为栈指针,可通过PUSH和POP操作实现栈存储的访问。栈指针包括两个:主栈指针MSP和进程栈指针PSP。MSP为默认指针,复位后或处理模式时只能是MSP,而PSP只能在线程模式使用。栈指针的选择有CONTROL寄存器控制。MSP和PSP的最低两位必须是0,也就是栈指针的地址操作必须4字节对齐。3 链接寄存器(LR)R14用于函数或子程序调用时返回地址的保存,在异常中则用来保存进异常前状态信息,包括系统模式、栈指针模式等。异常返回时参考LR中的信息返回到相应状态。4 程序计数器(PC)R15R15为程序计数器,读操作返回当前地址加4,写操作引起跳转。2.2.3 特殊寄存器特殊寄存器有三类:程序状态寄存器、中断/异常屏蔽寄存器、处理器控制寄存器。1 程序状态寄存器:应用PSR(APSR)、执行PSR(EPSR)、中断PSR(IPSR)。三个寄存器可以单独访问,也可以组合到一个寄存器中访问。在APSR中包含N(负标志)、Z(零标志)、C(进位标志)、V(溢出标志)、Q(饱和标志)和GE(大于或等于标志,只在M4中有)。IPSR中是中断号,只读。EPSR中,T为表示Thumb状态,由于M4支持Thumb状态,不支持ARM状态,T位始终为1。ICI是中断继续指令位,保存的是中断被打断时的信息。IT指令时IF-THEN指令,用于条件执行。2 PRIMASK、FAULTMASK、和BASEPRI寄存器:这三个寄存器只能在特权模式下使用。PRIMASK可屏蔽除NMI和HardFault之外

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档