历史上的今天
返回首页

历史上的今天

今天是:2025年01月08日(星期三)

正在发生

2020年01月08日 | ARM Cortex-M3体系结构

2020-01-08 来源:eefocus

来自   ARM Cortex-M3处理器体系结构.PPT

定位:



概况:


  • Cortex-M3处理器内核

  • Cortex-M3处理器指令集Thumb-2

  • Cortex-M3嵌套向量中断控制器NVIC

  • Cortex-M3存储器管理

  • 存储器保护单元MPU

  • 总线接口

  • 调试跟踪接口

  • 开发软件和RTOS


Cortex-M3内核:

内核流水线分3个阶段:取指、译码和执行。当遇到分支指令时,译码阶段也包含预测的指令取指,这提高了执行的速度。处理器在译码阶段期间自行对分支目的地指令进行取指。在稍后的执行过程中,处理完分支指令后便知道下一条要执行的指令。如果分支不跳转,那么紧跟着的下一条指令随时可供使用。如果分支跳转,那么在跳转的同时分支指令可供使用,空闲时间限制为一个周期。 


Cortex-M3 处理器是一个 32 位处理器,带有 32 位宽的数据路径,寄存器库和存储器接口。其中有 13 个通用寄存器,两个堆栈指针,一个链接寄存器,一个程序计数器和一系列包含编程状态寄存器的特殊寄存器。 


Cortex-M3 处理器支持两种工作模式(线程(Thread)和处理器(Handler))和两个等级的访问形式(有特权或无特权),在不牺牲应用程序安全的前提下实现了对复杂的开放式系统的执行。


性能参数:


Cortex-M3处理器指令集Thumb-2:

好处:

  • 可以实现ARM指令的所有功能。

  • 增加了12条新指令,可以改进代码性能和代码密度之间的平衡。

  • 代码性能达到了纯ARM代码性能的98%。

  • 相对ARM代码,Thumb-2代码的大小仅有其74%

  • 代码密度比现有的Thumb指令集更高。(代码大小平均降低5%;代码速度平均提高2-3%。)

注:Cortex-M3不支持ARM指令集。

Cortex-M 技术之CMSIS:


Cortex-M 技术之NVIC:

  • NVIC 为处理器提供了卓越的中断处理能力。

  • Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。为了减少门数并增强系统灵活性,Cortex-M 处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于 C 语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。  NVIC 支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。


  • 在硬件中完成对中断的响应
    Cortex-M 系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括: 
    1、检测中断
    2、背对背或迟到中断的最佳处理
    3、提取矢量地址
    4、将易损坏的寄存器入栈
    5、跳转到中断处理程序


  • ---这些任务在硬件中执行,并且包含在为 Cortex-M 处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂


  • NVIC 中的尾链
    在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M 处理器通过在 NVIC 硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低 MHz 系统的性能。

  • NVIC 对迟到的较高优先级中断的响应
    如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC 会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-M NVIC 对这些可能性提供具有确定性的响应并支持迟到和抢占。

  • NVIC 进行的堆栈弹出抢占
    同样,如果异常到达,NVIC 将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。

其他,略过......


推荐阅读

史海拾趣

ELEMENT14公司的发展小趣事

为了满足全球客户的需求,ELEMENT14致力于构建和优化全球供应链。公司与多家国际知名电子元器件制造商建立了长期稳定的合作关系,确保了货源的稳定性和多样性。同时,ELEMENT14还建立了全球物流体系,实现了快速、准确的物流配送服务。这些措施不仅提升了客户满意度,也增强了公司在全球市场的竞争力。

CIPS公司的发展小趣事

在2015年,跨境银行间支付清算有限责任公司(CIPS Co., Ltd.)正式成立,并随之推出了人民币跨境支付系统(CIPS)。这一系统的诞生,标志着中国电子支付行业在跨境支付领域迈出了坚实的一步。CIPS系统的建立,不仅满足了国内外金融机构对高效、安全、便捷的跨境支付服务的需求,更为人民币国际化进程提供了有力支持。

Frolyt Condensers & Elements GmbH公司的发展小趣事

随着业务规模的扩大,Frolyt Condensers & Elements GmbH意识到全球化布局的重要性。2010年,公司制定了全球化战略,首先在亚洲设立了生产基地,以利用当地丰富的资源和低廉的劳动力成本。随后几年间,Frolyt还通过一系列并购活动,收购了多家在特定市场具有影响力的电容器制造商,进一步巩固了其在全球市场的地位。这些并购不仅扩大了Frolyt的产品线,还增强了其技术研发能力和市场服务能力。

上海超致公司的发展小趣事

上海超致始终重视品牌建设,公司拥有一系列注册商标和专利信息,这些知识产权的拥有为公司树立了良好的品牌形象。同时,上海超致还积极开展国际合作,与国际知名企业建立了长期合作关系,共同开发新产品、拓展新市场。这些国际合作不仅提升了公司的技术水平,也帮助公司打开了国际市场的大门。

C-MAX Time Solutions公司的发展小趣事

C-MAX Time Solutions公司自创立以来,一直致力于电子时间同步技术的研发。在某一时期,公司推出了一款革命性的高精度时钟同步芯片,这款芯片凭借其卓越的稳定性和低延迟特性,迅速在通信、金融和交通等领域获得了广泛应用。这一技术创新不仅提升了C-MAX的市场竞争力,也推动了整个电子行业时间同步技术的发展。

南晶电子(DGNJDZ)公司的发展小趣事

在产品质量和技术水平得到认可后,南晶电子开始积极拓展市场。公司参加了多场国内外电子展会,与众多客户建立了合作关系。同时,南晶电子还加大了营销力度,通过线上线下相结合的方式,提高了品牌知名度和市场占有率。在短短几年内,公司实现了从国内市场到国际市场的跨越式发展。

问答坊 | AI 解惑

自己动手制作机器人,看起来很好玩

来源:窗户纸  http://www.getproject.com.cn/post/98.html 机器人,听起来挺神秘的,在大多数科幻电影和文学作品中,机器人通常无所不知,无所不能,跟人类相比起来,简直就是完美无瑕了。因此,作品中的机器人,要么是人类的好朋友, ...…

查看全部问答>

用DSP产生的FSK调制信号发射

本帖最后由 paulhyde 于 2014-9-15 09:23 编辑 我产生的调制信号频率150K,在不混频的情况下可以直接通过功率放大器进行电感耦合吗???两个电感线圈的距离为5CM 具体功率放大器怎样设计???  …

查看全部问答>

产品使用报告格式

如题,哪位大侠有产品使用报告的格式呀??借来用用…

查看全部问答>

探究CDC类的方法ExtTextOut 中的一个参数

virtual BOOL ExtTextOut ( int x, int y, UINT nOptions, LPCRECT lpRect, LPCTSTR lpszString, UINT nCount, LPINT lpDxWidths ); 想请教一下参数nOptions是否有效?本人通过测试,觉得ETO-CLIPPED、ETO-OPAQUE、NULL三者之间没有 ...…

查看全部问答>

VC++关于directshow图像旋转90度输出花屏的问题

VC++关于directshow图像旋转90度输出花屏的问题 我在transfilter对图像做了一个90度的旋转,再传给第三个filter,发现图像是花屏,解析度为176x144 如果解析度为高,宽相等就是正常的(如:240x240) 请问是什么原因?…

查看全部问答>

求vxworks的ospf源码 ?

求vxworks的ospf源码,哪位大侠有?请给一份,先谢了! jorsen_gong@hotmai.com …

查看全部问答>

招驱动工程师

岗位名称:驱动工程师 岗位要求: 1.电子、通信、计算机、自控类相关专业本科以上学历; 2.1年以上嵌入式产品开发经验,熟悉各种常用的外围扩展芯片的驱动。 比如SCI,SPI,I2C总线,smartcard,tuner。 3.精通C语言、汇编,有嵌入式系统和实时 ...…

查看全部问答>

香版!STM8S208的BEEP功能是不是不能用?

我问ST工程师的邮件:~~:    你好!    我需要用到BEEP功能,可是设定寄存器后跑程序,发现BEEP寄存器并没有改变.OPTION里面我有把PD4设成BEEP功能,OPTION里的PRSC设成(16MHZ TO 128KHZ P ...…

查看全部问答>

LPC11C14 IAP与CAN API问题

我在用LPC11C14写IAP在线升级程序时,将用户程序的向量表复制到RAM的0地址,再通过重映射寄存器重映射到FLASH的0地址,实现了用户程序调用中断,但现在要把CAN API的程序加上去,而CAN API要占用RAM的0x1000 0050-0x1000 00B8 ...…

查看全部问答>

学习FPGA过程中的困惑

现在刚开始接触FPGA不久,看了很长时间论坛了,也学习了Verilog,试着学习应用quartusii和modelsim,现在依旧感觉没有多大进步,好像根本还没有入门,简单的仿真还能进行,遇到复杂点的,比如几个模块联合编译仿真就总是仿真失败,也没有找到原因! ...…

查看全部问答>