- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式作业一
Cortex-M3的编程模型
概述
Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。比如,在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。另外,Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。ARM Cortex-M3处理器结合了多种突破性技术,令芯片供应商提供超低费用的芯片,仅33000门的内核性能可达1.2DMIPS/MHz。该处理器还集成了许多紧耦合系统外设,令系统能满足下一代产品的控制需求。
Cortex的优势应该在于低功耗、低成本、高性能3者(或2者)的结合。
现在,我们重点了解一下Cortex- M3的编程模型。
编程模型
Cortex-M3处理器采用ARMv7-M架构。它包括所有的16位thumb指令集和基本的32位thumb-2指令集架构。Cortex-M3处理器不能执行ARM指令。
Thumb指令集是ARM指令集的子集,重新被编码为16位。它支持较高的代码密度以及16位或小于16位的存储器数据总线系统。
Thumb-2在thumb指令集架构(ISA)上进行了大量的改进,它与thumb相比,代码密度更高,并且通过使用16/32位指令,提供更高的性能。
接下来,我们从以下几个方面来具体说明。
1. 流水线
ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。
现代处理器大多采用指令预取和流水线技术,流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,指令预取队列和流水线中的部分指令就可能作废,这样就会使流水线“断流”,处理器性能因此而受到影响。特别是现代C经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%为此,,到分支(跳转)指令从而提供给流水线连续的指令流,保证了其性能的发挥。Contex-M3的数据类型:
●Word:字,32位
●Harfword:半字,16位
●Byte:字节,8位
注:存储器系统应该支持所有的数据类型,尤其是要求在不破坏一个字的相邻字节的情况下支持小于一个字的写操作。
3. 处理器模式
Cortex-M3处理器支持2种工作模式:线程模式和处理模式
在复位时处理器进入“线程模式”,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。
出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。Cortex‐M3处理器拥有R0R15的寄存器组。其中R13作为堆栈指针SP。SP有两个,但在同一时刻只能有一个可以看到,这也就是所谓的“banked”寄存器。
?
R0-R12:通用寄存器
? R0‐R12都是32位通用寄存器,用于数据操作。但是注意:绝大多数16位Thumb指令只能访问R0R7,而32位Thumb2指令可以访问所有寄存器。
Banked R13: 两个堆栈指针
CortexM3拥有两个堆栈指针,然而它们是banked,因此任一时刻只能使用其中的一个。主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程)进程堆栈指针(PSP):由用户的应用程序代码使用。堆栈指针的最低两位永远是0,这意味着堆栈总是4字节对齐的。在ARM编程领域中,凡是打断程序顺序执行的事件,都被称为异常(exception)。除了外部中断外,当有指令执行了“非法操作”,或者访问被禁的内存区间,因各种错误产生的fault,以及不可屏蔽中断发生时,都会打断程序的执行,这些情况统称为异常。在不严格的上下文中,异常与中断也可以混用。另外,程序代码也可以主动请求进入异常状态的(常用于系统调用)。
R14:连接寄存器
当呼叫一个子程序时,由R14存储返回地址 不像大多数其它处理器,ARM为了减少访问内存的次数(访问内存的操作往往要3个以上指令周期,带MMU和cache的就更加不确定了),把返回地址直接存储在寄存器中。这样足以使很多只有1级子程序调用的代码无需访问内存(堆栈内存),从而提高了子程序调用的效率。如果多于1级,则需要把前一级的R14值压到堆栈里。在ARM上编程时,应尽量只使用寄存器保存中间结果,迫不得以时才访问内存。在RISC处理器中,为了强调访内操作越过了处理器的界线,并且带来了对性能的不利影响,给它取了一个专业的术语:溅出
您可能关注的文档
- 山大一队技术报告.doc
- 山拖学校平安校园创建工作实施方案.doc
- 山大药物化学教案.doc
- 山洪灾害防治项目施工组织设计.doc
- 山美版六年级品德与社会下册第一单元试卷.doc
- 山药及其作用.docx
- 山羊胚胎移植技术研究.doc
- 山西(机电处)机电安全质量标准试题库.doc
- 山歌好比春江水教案.doc
- 山西宁武张家沟煤业风险预控手册完整模版.doc
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
最近下载
- PLC应用技术(S7-1200) 试题及答案 共3套.docx VIP
- 2025年云南省职教高考《英语》真题试卷(含答案解析).docx VIP
- 初中数学校本教材《生活的数学》.doc VIP
- 【C397电子器件制造】XXXX有限公司职业病危害现状评价报告最终稿20230327.doc VIP
- XXXX有限公司安全现状评价报告.docx VIP
- 引镇消防站建设项目环境影响评价报告.doc VIP
- 部编版六年级语文下册教案教学设计.docx VIP
- DLT 593-2016 高压开关设备和控制设备标准的共用技术要求.pdf VIP
- 计算机网络实验-使用Wireshark分析IP协议.doc VIP
- 化工安全预评价报告.doc VIP
原创力文档


文档评论(0)