首页 理论教育 STM系列单片机的Cortex-M3微处理器结构

STM系列单片机的Cortex-M3微处理器结构

时间:2023-11-23 理论教育 版权反馈
【摘要】:Cortex-M3处理器除了处理核心外,还有好多其他组件,以用于系统管理和调试支持。图3.2Cortex-M3处理器系统框图表3.1处理器系统框图中的名称及其定义续表由表3.1可知,Cortex-M3处理器是以一个“处理器子系统”呈现的,包括Cortex-M3内核、NVIC以及调试模块等。NVIC与Cortex-M3内核紧密联系,包含了若干个系统控制寄存器。因为NVIC支持中断嵌套,使得在Cortex-M3上处理嵌套中断时非常方便。另外,Cortex-M3还允许芯片厂商把附加的APB设备挂在这条APB总线上,并通过APB接入其外部私有外设总线。

STM系列单片机的Cortex-M3微处理器结构

Cortex-M3处理器除了处理核心外,还有好多其他组件,以用于系统管理和调试支持。

图3.2中虚线框的MPU和ETM(嵌入式跟踪宏单元)是可选组件,不一定会包含在每一个Cortex-M3的MCU中。表3.1列出了图中各组件的名称及其定义。

图3.2 Cortex-M3处理器系统框图

表3.1 处理器系统框图中的名称及其定义

续表

由表3.1可知,Cortex-M3处理器是以一个“处理器子系统”呈现的,包括Cortex-M3内核、NVIC以及调试模块等。

①Cortex-M3Core:Cortex-M3处理器的中央处理核心。

嵌套向量中断控制器NVIC:NVIC是一个在Cortex-M3中内建的中断控制器。中断的具体路数由芯片厂商定义。NVIC与Cortex-M3内核紧密联系,包含了若干个系统控制寄存器。因为NVIC支持中断嵌套,使得在Cortex-M3上处理嵌套中断时非常方便。另外,还采用了向量中断的机制,在中断发生时,会自动取出对应的服务例程入口地址,并且直接调用,无需软件判定中断源,缩短了中断延时。

③SYSTICK定时器:系统滴答定时器是一个非常基本的倒计时定时器,用于在每隔一定的时间产生一个中断,即使是系统在睡眠模式下也能工作。它使得操作系统在各Cortex-M3器件之间的移植中不必修改系统定时器的代码,简化了移植工作。SYSTICK定时器也是作为NVIC的一部分而实现的。

存储器保护单元MPU:MPU是一个选配的单元,有些Cortex-M3芯片可能没有配备此组件。如果有,则MPU可以把存储器分成一些区域,并分别予以保护。例如,MPU可以让某些区域在用户级下变成只读,从而阻止了一些用户程序破坏关键数据。(www.xing528.com)

⑤总线矩阵:总线矩阵是Cortex-M3内部总线系统的核心,是一个AHB互连的网络,通过它可以让数据在不同的总线之间并行传送——只要两个总线主机不试图访问同一块内存区域。还提供了附加的数据传送管理设施,包括一个写缓冲以及一个按位操作的逻辑(位带)。

⑥AHB to APB Bridge:是一个总线桥,用于把多个APB设备(例如调试组件)连接到Cortex-M3处理器的私有外设总线上(内部的和外部的)。另外,Cortex-M3还允许芯片厂商把附加的APB设备挂在这条APB总线上,并通过APB接入其外部私有外设总线。

图3.2中其他的组件都用于调试,通常不会在应用程序中使用它们。

⑦调试端口SW-DP/SWJ-DP:串行线调试端口(SW-DP)/串口线JTAG调试端口(SWJDP)都与AHB访问端口(AHB-AP)协同工作,以使外部调试器可以发起AHB上的数据传送,从而执行调试活动。在处理器核心的内部没有JTAG扫描链,大多数调试功能都是通过在NVIC控制下的AHB访问来实现的。SWJ-DP支持串行线协议和JTAG协议,而SW-DP只支持串行线协议。

⑧访问端口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:ITM有几种用法。软件可以控制该模块直接把消息送给TPIU;也可以让DWT匹配命中事件通过ITM产生数据跟踪包,并把它输出到一个跟踪数据流中。

跟踪端口的接口单元TPIU:TIPU用于和外部的跟踪硬件(如跟踪端口分析仪)交互。在Cortex-M3的内部,跟踪信息都被格式化成“高级跟踪总线(ATB)包”,TPIU重新格式化这些数据,从而让外部设备能够捕捉到它们。

FPB:FPB提供Flash地址重载和断点功能。Flash地址重载是指当CPU访问的某条指令匹配到一个特定的地址时,将该地址重映射到不同的位置,从而取指后返回的是不同的值。此外,匹配的地址还能用来触发断点事件。Flash地址重载功能对测试工作非常有用。例如,通过使用FPB来改变程序的流程,就可以给那些不能在普通情形下使用的设备添加诊断程序代码。

查找表ROM Table:一个简单的查找表,为各种系统设备和调试组件提供了存储器映射信息。当调试系统定位各调试组件时,它需要找出相关寄存器在存储器的地址,这些信息由此表给出。绝大多数情况下,因为Cortex-M3有固定的存储器映射,所以各组件都拥有一致的起始地址。但是因为有些组件是可选的,还有些组件是可以由制造商另行添加的,所以各芯片制造商可能需要定制他们芯片的调试功能。在这种情况下,必须在ROM表中给出相应的信息,这样调试软件才能判定正确的存储器映射,进而检测可用的调试组件是何种类型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈