章嵌入式系统cortex.pptxVIP

  1. 1、本文档共91页,可阅读全部内容。
  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文档。上传文档
查看更多

第8章嵌入式系统和Cortex-M3

8.1嵌入式系统8.1.1定义嵌入式系统是用来实现一种或多种功能并且常常带有实时计算要求的计算机系统,它作为一个完整设备的嵌入部分。一般用途的计算机,比如个人电脑(PC),常常设计得很灵活并且能满足最终用户的广泛需求。

8.1.2历史20世纪30年代到40年代,计算机常常只致力于完成一个任务,它太大又太贵。阿波罗导航电脑属于第一批现代嵌入式系统,由麻省理工的CharlesStarkDraper发明。Intel4004是第一个微处理器。20世纪80年代中期,大部分外部系统组件已经被集成到了同一芯片上。微控制器的集成增加了传统计算机不会有的应用。

8.1.3特征1.嵌入式系统用来完成一些特殊的任务。一些嵌入式系统有实时性要求;另一些嵌入式系统在实时性能方面的要求会低些或者没有要求。2.许多嵌入式系统由在一个大设备里提供通用功能的小电脑零件组成。3.为嵌入式系统所写的程序指令被称为固件,被存储在只读存储器或者Flash存储器芯片内。

8.1.4应用嵌入式系统渗透现代生活的各个方面,如:电信系统。从移动电话到电话交换机,应用了很多嵌入式系统。消费类电子产品。如:PDAs,mp3等。交通系统。从飞机到汽车越来越多地使用嵌入式系统。

8.1.5嵌入式系统中的处理器嵌入式处理器可以分为两大类:微处理器(μP)微控制器(μC)

ARMARM AdvancedRISCMachine公司, AcornRISCMachine公司(先前的名称)截至2007年,每年销量达十几亿的手机中大约98%使用了至少一个ARM处理器。截至2009年,ARM处理器大约占所有嵌入式32位RISC处理器的90%。

8.2Cortex-M3概述

32-bit微处理器:32-bit数据路径,32-bit寄存器组,32-bit存储器接口。哈佛架构:独立的指令总线和数据总线。允许指令和数据在同一时间产生。存储空间:4GB。寄存器:寄存器(R0到R15)和特殊寄存器。运行模式:线程模式和handler模式;特权级和用户级。中断和异常:内置在嵌套向量中断控制器;支持11种系统异常外加240种外部IRQ。

总线接口:若干总线接口允许Cortex-M3同时取指令和取数据。MPU:一个可选的存储器保护单元,允许对特权访问和用户程序访问制定访问规则。指令集:Thumb-2指令集;允许32-位指令和16-位指令被同时使用。固定的内部调试组件:提供调试操作支持和像断点调试这样的功能。

8.3Cortex-M3基础8.3.1寄存器8.3.1.1通用寄存器1.R0~R7(低寄存器):可以被所有16-bitThumb指令和所有32-bitThumb-2指令访问。2.R8~R12(高寄存器):可以被所有Thumb-2指令但不能被所有16-bitThumb指令访问。

8.3.1.2堆栈指针R13:两个堆栈指针,它们是banked,同一时刻只能使用其中的一个。堆栈指针的最低两位总是0,这意味着他们总是字对齐。两个堆栈指针是:1.主堆栈指针(MSP):这是默认的堆栈指针。2.进程堆栈指针(PSP):被基本级别的应用程序代码所使用。

堆栈指针用来进行堆栈存储器操作,比如PUSH和POP。堆栈存储器的基本概念

汇编语言的语法:PUSH{R0};R13←R13-4,thenMemory[R13]←R0POP{R0};R0←Memory[R13],thenR13←R13+4你可以在一条指令中PUSH或POP多个寄存器:subroutine_1PUSH{R0-R7,R12,R14};Saveregisters…;DoyourprocessingPOP{R0-R7,R12,R14};RestoreregistersBXR14;Returntocallingfunction

8.3.1.3链接寄存器R14是链接寄存器(LR).当一个子程序或函数被调用时,LR用来存储返回的程序计数器。当你使用BL(branchandlink)指令时:main;Mainprogram

文档评论(0)

199****9598 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档