第2章 ARM-cortex-M3内核1.pptVIP

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 ARM-cortex-M3内核1

3.6 指令集 Cortex‐M3 只使用Thumb‐2 指令集。 在过去,做ARM 开发必须处理好两个状态。它们是:32 位的ARM 状态和16 位的Thumb 状态。 当处理器在ARM 状态下时,所有的指令均是32 位的(哪怕只是个”NOP”指令),此时性能相当高。 而在Thumb 状态下,所有的指令均是16 位的,代码密度提高了一倍。不过,thumb 状态下的指令功能只是ARM 下的一个子集,结果可能需要更多条的指令去完成相同的工作,导致处理性能下降。 为了取长补短,很多应用程序都混合使用ARM 和Thumb 代码段。然而,这种混合使用是有额外开销(overhead)的,时间上的和空间上的都有,主要发生在状态切换之时。 另一方面,ARM 代码和Thumb 代码需要以不同的方式编译,这也增加了软件开发管理的复杂度。 伴随着Thumb‐2 指令集出现,终于可以在单一的操作模式下完成所有处理了。 事实上,Cortex‐M3 内核干脆都不支持ARM 指令,中断也在Thumb 态下处理(以前的ARM 总是在ARM 状态下处理所有的中断和异常)。它使CM3 在好几个方面都比传统的ARM 处理器更先进: 消灭了状态切换的额外开销,节省了两者的执行时间和指令空间。 不再需要把源代码文件分成按 ARM 编译的和按Thumb 编译的,软件开发的管理大大减负。 无需再反复地求证和测试:究竟该在何时何地切换到何种状态下程序才最有效率。开发软件容易多了。 3.7 复位 在离开复位状态后,CM3 做的第一件事就是读取下列两个32 位整数的值: 从地址 0x0000,0000 处取出MSP 的初始值。 从地址 0x0000,0004 处取出PC 的初始值。然后从这个值所对应的地址处取指。 与单片机的区别 请注意,这与传统的ARM 架构不同——其实也和绝大多数的其它单片机不同。传统的ARM 架构总是从0 地址开始执行第一条指令。它们的0 地址处总是一条跳转指令。 在CM3中,0 地址处提供MSP 的初始值,然后就是向量表。向量表中的数值是32 位的地址,而不是跳转指令。向量表的第一个指令是指向复位后应执行的指令。 处理器模式 处理器模式 说明 备注 用户 (usr) 正常程序工作模式 不能直接切换到其它模式 系统 (sys) 用于支持操作系统的特权任务等 与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq) 支持高速数据传输及通道处理 FIQ异常响应时进入此模式 中断 (irq) 用于通用中断处理 IRQ异常响应时进入此模式 管理 (svc) 操作系统保护代码 系统复位和软件中断响应时进入此模式 中止 (abt) 用于支持虚拟内存和/或存储器保护 在ARM7TDMI没有大用处 未定义 (und) 支持硬件协处理器的软件仿真 未定义指令异常响应时进入此模式 特权模式 处理器模式 说明 备注 用户 (usr) 正常程序工作模式 不能直接切换到其它模式 系统 (sys) 用于支持操作系统的特权任务等 与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq) 支持高速数据传输及通道处理 FIQ异常响应时进入此模式 中断 (irq) 用于通用中断处理 IRQ异常响应时进入此模式 管理 (svc) 操作系统保护代码 系统复位和软件中断响应时进入此模式 中止 (abt) 用于支持虚拟内存和/或存储器保护 在ARM7TDMI没有大用处 未定义 (und) 支持硬件协处理器的软件仿真 未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (sys) 异常模式 处理器模式 说明 备注 用户 (usr) 正常程序工作模式 不能直接切换到其它模式 系统 (sys) 用于支持操作系统的特权任务等 与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq) 支持高速数据传输及通道处理 FIQ异常响应时进入此模式 中断 (irq) 用于通用中断处理 IRQ异常响应时进入此模式 管理 (svc) 操作系统保护

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档