第2章 Cortex-M3体系结构4H.pptVIP

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

5、中断屏蔽寄存器组 中断屏蔽寄存器组: PRIMASK中断屏蔽寄存器 FAULTMASK 硬fault屏蔽寄存器 BASEPRI优先级屏蔽寄存器 名称 功能描述 PRIMASK 只有1位的寄存器。置1时,关掉所有可屏蔽的异常(中断) ,只剩下NMI和硬fault可以响应。缺省值是0,表示没有关中断。 FAULTMASK 只有1位的寄存器。置1时,只有NMI才能响应,其它的异常、中断和fault,通通失效。缺省值是0,表示没有关异常。 BASEPRI 最多9位(由优先级的位数决定)。当它被设成某个值后,所有优先级号大于等于此值的中断都被关(优先级号越大,优先级越低)。缺省值0,则不关闭任何中断。 6、控制寄存器CONTROL 控制寄存器(CONTROL),用于定义特权级别、选择R13当前使用哪个堆栈指针MSP或PSP。 位 功能描述 CONTROL[0] 仅当在特权级下操作时才允许写该位。 一旦进入了用户级,唯一返回特权级的途径,就是触发中断异常,再由中断服务例程改写该位。 0 表示特权级的线程模式 1 表示用户级的线程模式 注意:Handler 模式永远都是特权级的 CONTROL[1] 堆栈指针选择 0 表示选择主堆栈指针MSP(复位后缺省值) 1 表示选择进程堆栈指针PSP ② 在handler 模式下,只允许使用MSP。 在线程或基础级,可以使用PSP。 在线程模式中则可以为0(特权级)或1(用户级)。 仅当处于特权级的线程模式下,此位才可写。 7、三类特殊寄存器的读写 三类特殊功能寄存器(Special Reg),只能采用MRS(读)和MSR(写)指令进行访问。访问举例: MRS R0, CONTROL ;读CONTROL到R0 MSR CONTROL, R0 ;写R0到CONTROL 只有在特权级下,才允许使用MRS/MSR指令访问PRIMASK、FAULTMASK,以及BASEPRI: MRS R0, FAULTMASK ;读取FAULTMASK寄存器内容到R0中 MSR BASEPRI, R0 ;写入R0寄存器内容到BASEPRI 为了快速地开关中断,可使用CPS指令: CPSID I ;PRIMASK=1,关中断 CPSIE I ;PRIMASK=0,开中断 CPSID F ;FAULTMASK=1,关异常 CPSIE F ;FAULTMASK=0, 开异常 第2章 Cortex-M3体系结构 2.1 Cortex-M3处理器组成 2.2 Cortex-M3总线结构 2.3 Cortex-M3寄存器 2.4 Cortex-M3存储器映射 2.5 Cortex-M3工作模式 2.6 Cortex-M3异常与中断 2.7 Cortex-M3异常向量表 2.8 Cortex-M3开发平台与RTOS 2.9 采用Cortex-M3处理器的设计的芯片 2.4 Cortex-M3存储器映射 Cortex-M3的地址空间是4GB; 程序可以在代码区、内部SRAM 和外部RAM 中运行。由于指令总线与数据总线是分开的,最理想的是将程序放到代码区。 支持位带操作。 是固定的存储器映射如左图所示: Cortex-M3存储器映射 1、代码区Code: 00x1FFFFFFF,512MB,主要用于存放程序代码。 因I-Code取指令总线、D-Code数据总线默认映射到代码区,为使取指和数据访问各自使用自己的总线,最理想的是把程序放到代码区。 当然,代码也可存放在内部SRAM区以及外部RAM区。 2、内部SRAM区:00x3FFFFFFF,512MB,用于让芯片制造商连接片上的SRAM,通过系统总线来访问。 位带区:内部SRAM最底部1MB地址范围(00x200FFFFF),可存放8M个位变量; 位带别名(alias)区:00x23FFFFFF,32MB,对应8M个别名(4字节)。每个别名与位带区中的一个位,一一对应。 Cortex-M3存储器映射 位带操作:对每个位带别名访问,实际上就是对位带区的一个位进行读写。可以把多个布尔型数据打包在单一的字中,却依然可以从位带别名区中,像访问普通内存一样地使用它们。 该特性可以显著提高位操作的效率和安全性,对许多底层软件开发特别是操作系统和驱动程序具有重要意义。 Bit-banding映射图 Cortex-M3存储器映射 3、片内外设区:00x5FFFFFFF,512MB,用于映射外设芯片的寄存器,片内外设使用。 该

文档评论(0)

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

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

1亿VIP精品文档

相关文档