CortexM3解答.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统;第8章;8.1 嵌入式系统 8.1.1 定义 嵌入式系统是用来实现一种或多种功能并且常常带有实时计算要求的计算机系统。 它作为一个完整设备的嵌入部分。 一般用途的计算机, 比如个人电脑 (PC), 常常设计的很灵活并且能满足最终用户的广泛需求。;8.1.2 历史 在20世纪30年代到40年代, 计算机某些时候常常只致力于完成一个任务, 但是它太大又太贵。 阿波罗导航电脑属于第一批被承认的现代嵌入式系统,由麻省理工的Charles Stark Draper发明。 Intel 4004是第一个微处理器, 针对计算器和其他小型系统设计。 到了20世纪80年代中期, 大部分以前共同的外部系统组件已经被集成到了同样的芯片上。 微控制器的集成增加了传统计算机不会有的应用。;8.1.3 特征 1. 嵌入式系统被设计用来做一些特殊的任务。 一些嵌入式系统有必须达到的实时性能要求; 另一些嵌入式系统在实时性能方面的要求会低些或者没有要求。 2. 许多嵌入式系统由在一个大设备里提供通用功能的小电脑零件组成。 3. 为嵌入式系统所写的程序指令被称为固件,被存储在只读存储器或者Flash存储器芯片内。;8.1.4 应用 嵌入式系统跨越现代生活的各个方面,其使用也有许多例子。 电信系统在网络到移动电话最终使用者的电话交换机上应用了很多嵌入式系统。 消费类电子产品包括个人数字助理 (PDAs), mp3 播放器, 移动电话,和 视频游戏机。 ;交通系统中从飞机到汽车越来越多地使用嵌入式系统。 新飞机中包含的先进航空电子设备如惯性导航系统和GPS接收机也有相当高的安全要求。 ;ARM ARM,是一个以Advanced RISC Machine为人所知的公司, 和在此之前的the Acorn RISC Machine。 截至2007年, 每年销量达十几亿的手机中有大约98%至少使用了一个ARM处理器。 截至2009年,ARM处理器大约占所有嵌入式32位RISC处理器的大约90%。 ARM处理器广泛用于消费类电子产品,包括掌上电脑,移动电话,数字媒体和音乐播放器。;ARM公司的业务一直是出售IP核。 最成功的ARM7TDMI已经有亿万售出。 现在或先前ARM授权的公司包括: Alcatel-Lucent, Apple Inc., Atmel, Broadcom, Freescale, Intel ,Samsung, TI, ect. ARM控股的ARM处理器家庭的突出例子包括ARM7, ARM9, ARM11 and Cortex.;8.2 Cortex-M3概述;1. 32-bit微处理器: 32-bit 数据路径, 32-bit 寄存器组, 32-bit 存储器接口。 2. 哈佛架构: 独立的指令总线和数据总线。这允许指令和数据在同一时间产生。 3. 存储空间: 8GB。 4. 寄存器: 寄存器 (R0 到 R15) 和 特殊寄存器。 5. 运行模式: 线程模式和处理模式;特权级和用户级。 6. 中断和异常: 内置在嵌套向量中断控制器; 支持11 种系统异常外加240 种外部 IRQ。;7. 总线接口: 若干总线接口允许 Cortex-M3 同时取指令和取数据。 8. MPU: 一个可选的存储器保护单元允许对特权访问和用户程序访问制定访问规则。 9. 指令集: Thumb-2 指令集; 允许 32-位指令和16-位指令被同时使用。 10. 固定的内部调试组件: 提供调试操作支持和像断点调试这样的功能。;8.3 Cortex-M3 基础 8.3.1 寄存器 通用寄存器 1. R0~R7 (低寄存器): 可以被所有 16-bit Thumb 指令和所有 32-bit Thumb-2 指令访问。 2. R8~R12 (高寄存器): 可以被所有 Thumb-2 指令但不能被所有 16-bit Thumb 指令访问。 ;Cortex-M3中的寄存器 ; 堆栈指针 R13 是堆栈指针。两个堆栈指针是库存的所以在同一时间只有一个可见。 堆栈指针的最低两位总是0, 这意味着他们总是字对齐。 两个堆栈指针是: 1. 主堆栈指针(MSP) : 这是默认的堆栈指针。 2. 进程堆栈指针(PSP) : 被基本级别的应用程序代码所使用。;堆栈指针用来进行堆栈存储器操作比如PUSH和POP。;汇编语言的语法: PUSH {R0} ; R13R13-4, then Memory[R13] R0 POP {R0} ; R0 Memory[R13], then R13 R13+4 你可以在一条指令中PUSH或POP多个寄存器: subroutine_1 PUSH {R0-R7, R12, R14}

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档