第6章 嵌入式系统和Cortex-M3-M4.pptxVIP

  1. 1、本文档共51页,可阅读全部内容。
  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文档。上传文档
查看更多
第6章 嵌入式系统和Cortex-M3;6.1 ARM系统概述;ARM;6.2 Cortex-M3/M4概述;32-bit微处理器: 32-bit 数据、寄存器组、存储器接口。 哈佛架构:独立的指令总线和数据总线。 存储空间:4GB。 寄存器:寄存器 (R0 到 R15) 和 特殊功能寄存器。 运行模式:线程模式和处理模式;特权级和用户级。 中断和异常:内置嵌套向量中断控制器;支持11 种系统异常外加240 种外部 IRQ。 总线接口:若干总线接口允许 Cortex-M3 同时取指令和取数据。 MPU:一个可选的存储器保护单元允许对特权访问和用户程序访问制定访问规则。 指令集:Thumb-2 指令集;允许 32位指令和16位指令被同时使用。 固定的内部调试组件:提供调试操作支持和像断点调试这样的功能。 ;6;7;通用寄存器 1. R0~R7 (低寄存器): 可以被所有 16-bit Thumb 指令和所有 32-bit Thumb-2 指令访问。 2. R8~R12 (高寄存器): 可以被所有 Thumb-2 指令但不能被所有 Thumb 指令访问。 ;9;汇编语言的语法: PUSH {R0} ; R13=R13-4, then Memory[R13]=R0 POP {R0} ; R0=Memory[R13], then R13=R13+4 可以在一条指令中PUSH或POP多个寄存器: subroutine_1 PUSH {R0-R7, R12, R14} ; Save registers … ; Do your processing POP {R0-R7, R12, R14} ; Restore registers BX R14 ; Return to calling function;连接寄存器 R14 是连接寄存器 (LR)。 当一个子程序或函数被调用时,LR用来存储返回的程序计数器。 示例: Main ; Main program … BL func1 ; Call function1 ; PC = function1 ; LR = next instruction … ; program code func1 … BX LR ; Return;程序计数器 R15 是程序计数器。可以在汇编语言中通过R15或PC访问。 示例: 0x1000 : MOV R0, PC ; R0 = 0x1004;6.3.2 特殊功能寄存器 在Cortex-M3/M4处理器中的特殊寄存器包括: 1. 程序状态寄存器 (PSRs) 2. 中断屏蔽寄存器(PRIMASK, FAULTMASK, and BASEPRI) 3. 控制寄存器 (CONTROL);程序状态寄存器 (PSRs) 程序状态寄存器可以分为三个状态寄存器: 1. 应用 PSR (APSR) [负、零、进/借、溢、饱和(用于饱和运算)] 2. 中断 PSR (IPSR) 3. 执行 PSR (EPSR) [ICI/IT: ICI指令/IT指令状态位;T总为1];中断屏蔽寄存器PRIMASK、FAULTMASK 和 BASEPRI 用来开放/禁用异常;控制寄存器 被用来定义特权级和堆栈指针的选择。这个寄存器有两位。; CONTROL[1] 在Cortex-M3中, 在处理者模式中CONTROL[1] 位总是0 (MSP)。但是, 在线程或基本级别,它可以为0或1。 CONTROL[0] CONTRL[0] 位只在特权状态可写。 使用MRS和MSR指令来访问控制寄存器: MRS r0, CONTROL ; Read CONTROL register into R0 MSR CONTROL, r0 ; Write R0 into CONTROL register;6.3.3 操作模式 两种模式和两种特权等级。操作模式决定处理器运行正常程序或运行异常处理程序。 ;19;当CONTROL[0]=0 时,在异常处理的始末,只发生了处理器模式的转换。;21;22;栈的基本操作 在寄存器中的数据可以通过PUSH操作保存到栈内存并且通过POP操作在稍后恢复到寄存器.当PUSH/POP 指令执行时,SP 指针的值也跟着自减/自增。 主程序

文档评论(0)

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

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

1亿VIP精品文档

相关文档