ARM CORTEX M3

ARM微处理器系列

• ARM处理器当前有6个产品系列:ARM7、ARM9、ARM10、ARM11、SecurCore和Cortex。
• ARM7、ARM9、ARM10和ARM11是4个通用处理器系列,每个系列提供一套特定的性能来满足设计者对功耗、性能和体积的需求。
• SecurCore是第5个产品系列,是专门为安全设备而设计的。
• 现在产品均以Cortex命名。

ARM CORTEX M3 体系结构

• Cortex-M3是ARM公司推出的新一代32位低成本、高性能通用微控制器内核;
• 内核基于ARMv7架构,采用Thumb-2指令集,集成了分支预测,单周期乘法,硬件除法等众多功能。
• 32-bit微处理器: 32-bit 数据路径, 32-bit 寄存器组, 32-bit 存储器接口。
• 哈佛架构: 独立的指令总线和数据总线。这允许指令和数据在同一时间产生。
• 存储空间: 4GB。
• 指令集: Thumb-2 指令集; 允许 32-位指令和
16-位指令被同时使用。
• 出色地平衡了强计算能力、低功耗和低成本之间的矛盾,广泛应用于工业控制等各个领域,代表了目前微控制器内核发展的趋势。

CORTEX-M3 体系结构

• Cortex-M3处理器主要由两大部分组成:
① Cortex-M3内核;
中央处理器核心(Cortex-M3 Core
嵌套向量中断控制器(NVIC)
系统时钟(SYSTICK)
存储器保护单元(MPU)
总线
② 跟踪与调试系统。
① CORTEX-M3内核主要包括:
中央处理器核心(Cortex-M3 Core) 即通常所说的CPU,包括指令提取单元(Instruction Fetch Unit)、译码单元(Decoder)、寄存器组(Register Bank)和ALU(Arithmetic Logic Unit)等。
嵌套向量中断控制器(NVIC) NVIC是一个在Cortex-M3中内建的中断控制器,与CPU核心紧密耦合。包含众多控制寄存器,支持中断嵌套模式,提供向量中断处理机制等功能。中断发生时,自动获得服务例程入口地址并直接调用,大大缩短中断延时。
系统时钟(SYSTICK) 由Cortex-M3内核提供的一个24位倒计时计数器,可产生定时中断,作为系统定时器用。所有Cortex M3处理器均有该计数器,因此系统级移植时不必修改系统定时器相关代码,移植效率高。
特别注意的是,即使系统处于睡眠模式,该计数器也能正常工作。
存储器保护单元(MPU) 可选单元。可以视为一个简化的存储器管理单元(MMU, Memory ManagementUnit),但重点在于存储器保护。即通过将存储器划分成存储区域块,并设置其存取特性(是否缓冲、是否读写、是否执行、是否共享等)对存储区域块进行访问保护。例如,设置某存储区域块在用户级下变成只读,从而阻止一些用户程序破坏该区域的关键数据。
总线矩阵 总线矩阵是Cortex-M3内部总线系统的核心。它是一个32位AMBA(AdvancedMicrocontroller Bus Architecture) AHB Lite总线互连网络,通过该网络把处理器内核及调试接口连接到不同类型和功能划分的外部总线。
➢ 提供数据在不同总线上的并行传输功能。 总线: 系统总线,ICode指令总线、DCode数据总线、私有外设总线等
➢ 总线矩阵还提供了附加数据传送功能。如:写缓冲、位带(bit banding)等,支持非对齐数据访问,以及总线桥(AHBto APB Bridge),以支持向APB总线的连接。
② 跟踪与调试系统主要包括
串行线/串口线JTAG调试端口(SW-DP/SWJ-DP) SW-DP/SWJ-DP两种端口都与AHB访问端口(AHB-AP)协同工作,以使外部调试器可以发起AHB上的数据传送,从而执行调试活动。
基于AHB总线的通用调试接口(AHB‐AP) AHB访问端口通过少量的寄存器,提供了对全部Cortex-M3存储器的访问机能。该功能块由 SW-DP/SWJ-DP通过一个通用调试接口(DAP)来控制。当外部调试器需要执行动作
的时候,就要通过SW-DP/SWJ-DP来访问AHB-AP,从而产生所需的AHB数据传送。
嵌入式跟踪宏单元(ETM) ETM用于实现实时指令跟踪,但它是一个选配件,所以不是所有的Cortex-M3产品都具有实时指令跟踪能力。ETM的控制寄存器是映射到主地址空间上的,因此调试器可以通过DAP来控制它。
数据观察点触发器(DWT) 通过DWT,可以设置数据观察点触发条件,当一个数据地址或数据值匹配观察点条件,触发一次匹配命中并产生一个观察点事件,从而激活调试器以产生数据跟踪信息,或者让ETM联动以跟踪在
哪条指令上发生了匹配命中事件。
指令跟踪宏单元(ITM) 软件通过控制该模块直接把消息送给TPIU或者让DWT匹配命中事件通过ITM产生数据跟踪包,并把它输出到一个跟踪数据流中。
跟踪端口接口单元(TPIU) TPIU用于和外部的跟踪硬件(如跟踪端口分析仪)交互。
Flash重载及断点单元(FPB) FPB提供flash地址重载和断点功能。Flash地址重载是指:当CPU访问的某条指令匹配到一个特定的flash地址时,将把该地址重映射到SRAM中指定的位置,从而取指后返回的是另外的值。匹配的地址还能用来触发断点事件。
配置查找表(ROM表) 用于自动检测芯片内部的调试组件。提供存储器映射信息的查找表。当调试系统定位各调试组件时,它需要找出相关寄存器在存储器的地址,这些信息由此表给出。

猜你喜欢

转载自blog.csdn.net/qq_46523260/article/details/106888939