历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2019年03月08日 | Cortex-M3的整体风景

2019-03-08 来源:eefocus

一、流水线

  1、Cortex-CM3处理器使用一个3级流水线,流水线的3级分别是:取指,解码和执行:


 

 2、当运行的指令大多数是16位时,处理器会每隔一个周期做一次取指。当执行到跳转指令时需要清洗流水线,处理器会不得不跳转目的地重新取指。为了改善这种情况,Cortex-CM3支持一定数量的v7M指令可以避免很多短程跳转。


  3、由于流水线的存在,以及出于对Thumb代码兼容的考虑,读取PC会返回当前指令地址+4的值。


  4、在处理器内核的预取单元中也有一个指令缓冲区,它允许后续的指令在执行前现在里面排队,也能在执行未对齐的32位指令时,避免流水线断流。


二、详细框图


  1、Cortex-CM3处理器里面除了处理核心外,还有其他好多组件,以用于系统管理和调试支持:



   1)、MPUI和ETM是可选组件,不一定会包含在每一个Cortex-CM3的MCU中。


   2)、方框图中的缩写及定义



  2、Cortex-CM3处理器是以一个处理器子系统呈现的,其CPU内核本身与NVIC和一系列调试块都紧密耦合:


   1)、CM3core:Cortex-CM3处理器的中央处理核心。


   2)、嵌套向量中断控制器NVIC:NVIC是一个在Cortex-CM3中内建的中断控制器。


   3)、SysTick定时器:系统滴答定时器是一个非常基本的到时器定时器,用于在每隔一定的时间产生一个中断,即使是系统在睡眠模式下也能工作。


   4)、存储器保护单元:MPU是一个选配的单元,有些Cortex-CM3可能没有配置此组件。如果有,则它可以把存储器分成一些regions,并分别给予保护。


   5)、BusMatrix:BusMatrix是Cortex-CM3内部总线系统的核心。


   6)、AHB to APB:它是一个总线桥,用于把若干个APB设备链接到Cortex-CM3处理器的私有外设总线上。


   7)、图框中其他的组件都用于调试,通常不会再应用程序中使用它们。


  3、其他调试组件


   1)、SW-DP/SWJ-DP:串行线调试端口(SW-DP)/串口线JTAG调试端口(SWJ-DP)都与AHB访问端口(AHB-PB)协同工作,以使外部调试器可以发起AHB上的数据传

送,从而执行调试活动。


   2)、AHB-AP:AHB访问端口通过少量的寄存器,提供了对全部Cortex-CM3存储器的访问机能。


   3)、嵌入式跟踪单元ETM:ETM用于实现实时指令跟踪,但它是一个选配件,所以不是所有的Cortex-CM3产品都具有实时指令跟踪能力。


   4)、数据观察点及跟踪单元:通过DWT,可以设置数据观察点。


   5)、指令跟踪单元ITM:软件可以通过该模块直接把消息送给TPIU;还可以让DWT匹配命中事件通过ITM产生数据跟踪包,并把它输出到一个数据跟踪流中。


   6)、跟踪端口的接口单元TPIU:TPIU用于跟外部的跟踪硬件交互。


   7)、FPB:FPB提供flash地址重载和断点功能。


   8)、ROM表:只是一个简单的查找表,提供了存储器映射信息,这些信息包括多种系统设备和调试组件。


三、Cortex-CM3的总线接口


  1、I-Code总线


   1)、I-Code总线是一条基于AHB-lite总线的32位总线,负责在0x0000_0000-0x1FFF_FFFF之间取指操作。


   2)、取指以字的长度执行,即使是对于16位指令也是如此.因此CPU内核可以一次取出两条16位指令。


  2、D-Code总线


   1)、D-Code总线是一条基于AHB-lite总线的32位总线,负责在0x0000_0000-0x1FFF_FFFF之间取指操作。


   2)、链接到D-Code总线上的任何设备都只需支持AHB-Lite的对齐访问,不需要支持非对齐访问。


  3、系统总线


  1)、系统总线是一条基于AHB-lite总线的32位总线,负责在0x2000_0000-0xDFFF-FFFF和0xE010_0000-0xFFFF_FFFF之间的所有数据传送。取指和数据访问都有。


   2)、所有的数据传输都是对齐的。


  4、外部私有外设总线


   1)、基于APBzing总线协议的32位总线。此总线负责0xE004_0000-0xE00F_FFFF之间的私有外设访问。


   2)、但是APB的一部分空间已经被TPIU、ETM以及ROM表用掉了,就只留下0xE004_2000-0xE00F_F000这个区间用于附加的(私有)外设。



  5、调试访问端口总线


   1)、调试访问端口总线接口是一条基于”增强型APB规格“的32位总线,它专用于挂接调试接口。


四、Cortex-CM3的其他接口


  1、除了总线接口之外,Cortex-CM3还有几个用于其它目的的接口,这些接口的信号都不大可能会引出到引脚上,而只用于连接SoC不同的部分,或者干脆就没有使用。


  2、杂项接口信号


五、外部私有外设总线


  1、Cortex-CM3处理器有一个外部私有外设总线(PPB)接口。外部PPB接口是基于高级外设总线(APB)协议构造的。用于非共享的系统设备。


  2、为了支持CoreSight设备,该接口又包含了称为“PADDR31”的信号,给出传送的发源地:


   1)、若该信号为0,则表示是运行在Cortex-CM3内部的软件产生的传送操作。


   2)、若为1,则表示是调试软件产生了传送操作。


  3、外部私有外设总线是专用的,不服务于普通的外设,这恶鬼规矩只能靠芯片设计者自觉遵守。


  4、外部PPB不支持非对齐访问。



六、典型的连接方式


  1、总线接口与其他设备和存储器的典型连接


  2、代码存储区既可以被指令总线(I-CODE)访问,也可以被数据总线(D-CODE)访问,此时需要在中间插入一个总线开关,称为总线矩阵或者使用一个AHB总线复用器。


   1)、如果使用了总线矩阵,则闪存和附加的SRAM可以被both I-CODE和D-CODE访问。


   2)、当数据访问和指令访问同时尝试访问同一个区域时,可以赋予数据访问更高的优先级以提高性能。


   3)、通过AHB总线矩阵把取指和数据访问分开后,如果指令总线和数据总线在同一时刻访问不同的存储器设备,则两者可以并行不勃。但是若只使用了总线复用器则数据传送就不能同时发生。


  3、有些引脚比较多的接口会带外部总线接口(EMI)。在此情况下,需要一个外部存储器控制器。其他的AHB设备则可以简单的链接到系统总线上,而不需要额外的总线矩阵。


七、复位信号


  1、Cortex-CM3中各种复位信号



  2、典型的Cortex-CM3芯片内部复位信号和其作用范围示意图


推荐阅读

史海拾趣

ADDtek公司的发展小趣事

对不起,我无法提供有关ADDtek公司发展的故事。

EPIC公司的发展小趣事

近年来,随着元宇宙概念的兴起,Epic Games也开始在这一领域进行布局。公司首席执行官Tim Sweeney对元宇宙的发展潜力持乐观态度,并认为这将是未来游戏和社交领域的重要发展方向。为了实现这一愿景,Epic Games不仅在技术上进行了大量投入和研发,还与多个合作伙伴共同推动元宇宙生态的建设和发展。这些举措使得Epic Games在元宇宙领域取得了显著的进展,并有望在未来成为该领域的领军企业之一。

Heatron公司的发展小趣事

在20世纪初,随着电子工业的蓬勃发展,对高效、可靠电加热元件的需求日益增长。Heatron公司凭借其深厚的技术积累,成功研发出了一种新型的高密度单头电热管,该产品在耐高温、耐腐蚀性能上实现了重大突破。这一技术成果迅速获得了市场的广泛认可,不仅提升了Heatron在电加热器市场的地位,还推动了整个电子行业相关应用的技术进步。

Gauthier Connectique公司的发展小趣事
可能是遥控器电池电量不足、遥控器与接收电路之间距离过远或有障碍物遮挡。解决方法包括更换遥控器电池、缩短距离或移除障碍物。
BCD Semi(Diodes)公司的发展小趣事

BCD Semi(Diodes)公司自成立以来,一直致力于模拟半导体产品的设计和制造。在某一时期,公司研发团队成功突破了某项关键技术,开发出了具有更高性能、更低功耗的新型模拟器件。这一技术突破使得BCD Semi的产品在市场上更具竞争力,赢得了众多客户的青睐。随着产品升级的不断推进,公司逐渐在模拟半导体领域树立了良好的口碑。

Barnbrook Systems Limited公司的发展小趣事

Barnbrook Systems Limited的创始人在电子工程领域拥有深厚的背景,他们看到了市场对于高效能计算设备的需求。于是,公司应运而生,初期专注于研发高性能的电路板。通过不断的技术创新和优化,Barnbrook成功开发出一款具有革命性的电路板,其稳定性和处理速度远超当时市场上的同类产品。这一突破性的技术为Barnbrook赢得了众多客户的青睐,也为公司的快速发展奠定了坚实的基础。

问答坊 | AI 解惑

塑封料发展状况及其工艺选择

[ip]塑封料发展状况及其工艺选择 上海常祥实业有限公司   刘志:13611616628 引言 塑封料,又称环氧塑封料(EMC,Epoxy Molding Compound)以其高可靠性、低成本、生产工艺简单、适合大规模生产等特点,占据了整个微电子封装材料97%以上的市场。 ...…

查看全部问答>

想学嵌入式系统,自己做点小项目

我在学校读的是应付用电子,会画点PCB,懂得电子基础,学过一点C,一点单片机,一点汇编,一点VB,都是学了一点,谈不上熟,出来工作有五年了,基本上没怎么接触这一块,现在想学嵌入式系统,自己搞点项目,对于我这种情况还能学不,各位大哥出个注意!…

查看全部问答>

智能手机的操作系统,哪个比较人性化?

最好把塞班 WM linux 黑莓OS...乱七八糟的挨个试用一遍,哈哈 你们觉得呢?…

查看全部问答>

一种简易高精度频率信号发生器的设计与实现

一种简易高精度频率信号发生器的设计与实现…

查看全部问答>

WinCE6.0修改.cpl文件属性

包括去掉文件保护,只读,隐藏等。(用代码的哦)…

查看全部问答>

哥今天估计被忽悠了

     本来,哥明天要去某家公司实习。      然后,直到昨天我才收到那家公司给我的地址和乘车路线。中午吃完饭我就照着路线找过去,想自个看看。本来我还想就是想看看哪家公司在那座写字楼就好了。 &nbs ...…

查看全部问答>

IAR5.XX关于实时查看变量变化的功能

在STVD(调试STM8)里watch变量有"ON THE FLY"可以实时查看变量的变化。 在IAR5.XX调试STM32F103XXX不知道有没有这样的功能??? 或者类似的功能也行啊??? 请IAR EARM 高手指点!!!…

查看全部问答>

关于NE555的问题。当输入高电平,输出低电平不够低怎么办?量出来2.7。

做单稳电路。高电平3.7,低电平2.7。 [ 本帖最后由 huang91 于 2011-11-10 15:49 编辑 ]…

查看全部问答>

TI Stellais SSI

Master or slave Master runs up to sys_clk/2 (25Mb @ 50MHz) Slave runs up to sys_clk/12 (4.1667Mb @ 50MHz)  …

查看全部问答>