中润建设集团有限公司网站群,漯河网站建设哪家,做网站租服务器,北京怎么做网站关注作者了解更多
我的其他CSDN专栏
过程控制系统
工程测试技术
虚拟仪器技术
可编程控制器
工业现场总线
数字图像处理
智能控制
传感器技术
嵌入式系统
复变函数与积分变换
单片机原理
线性代数
大学物理
热工与工程流体力学
数字信号处理
光电融合集成电路… 关注作者了解更多
我的其他CSDN专栏
过程控制系统
工程测试技术
虚拟仪器技术
可编程控制器
工业现场总线
数字图像处理
智能控制
传感器技术
嵌入式系统
复变函数与积分变换
单片机原理
线性代数
大学物理
热工与工程流体力学
数字信号处理
光电融合集成电路技术
电路原理
模拟电子技术
高等数学
概率论与数理统计
数据结构
C语言
模式识别原理
自动控制原理
数字电子技术
关注作者了解更多
资料来源于网络如有侵权请联系编者
目录
Cortex-M4系统架构上
ARM系列的发展过程
ARM处理器的分类
ARM架构指令集演化
ARMv7
M4处理器特性
M4为扩展MCU应用范围而生
M4内核模块框图
核心及核心外设
调试跟踪接口
总线接口
M4内核
M4内核外设
M4调试跟踪接口
Flash硬件断点控制FPB
仪器跟踪宏单元ITM
数据观察跟踪单元DWT
内嵌跟踪宏单元ETM
CoreSight ROM表
总线互联矩阵BusMatrix
• AHB to APB桥接器
调试模式 Cortex-M4系统架构上
ARM 架构的背景
• Cortex-M4体系架构概述基本框图
• Cortex-M4与其他内核比较
• Cortex-M4的流水线内部总线
• Cortex-M4通用寄存器表特殊寄存器介绍
• Cortex-M4存储模型
• Cortex-M4异常和可嵌套中断向量系统
ARM系列的发展过程 ARM处理器的分类 ARM架构指令集演化 ARMv7
ARMv7定义了3种不同的处理器配置processor profiles
- Profile A是面向复杂、基于虚拟内存的OS和应用的
- Profile R是针对实时系统的
- Profile M是针对低成本应用的优化的微控制器的
• 所有ARMv7 profile实现Thumb-2技术
• ARMv7版本开始型号命名改为cortex-A/R/M M4处理器特性
ARMv7M架构
- Thumb-2 技术 - SIMD和DSP - 单周期乘加指令 (支持32 x 32 64 - ) - 可选配的单精度浮点运算单元 - 集成可配置的可嵌套矢量中断控制器NVIC - 兼容Cortex-M3
微内核结构
- 带分支预测的三级流水线 - 3套AHB-Lite总线接口
可配置超低功耗 深度睡眠模式中断可唤醒 - 浮点运算单元可单独关闭电源
灵活配置
可配置中断控制器 1~240个中断源可配置优先级可配置 - 可选配的内存保护单元 - MPUMemory Protection Unit - 可选配的调试和跟踪模块 M4为扩展MCU应用范围而生 M4内核模块框图 核心及核心外设
• 核心处理器CORE
• 单精度浮点运算单元FPU
- Float Point Unit
• 嵌套向量中断控制器NVIC
- Nested Vectored Interrupt Controller
• 存储保护单元MPU
- Memory Protection Unit
• 系统控制模块SCB
- System control block
• 系统定时器
- Sysick 调试跟踪接口
闪存修补和断点(FPB)
• 仪表跟踪(ITM)
• 数据观察点与跟踪(DWT)
• 跟踪点接口单元(TPIU)
• 指令跟踪(ETM)
• JTAG调试接口(SWJ-DP) SW-DP调试接口(SW-DP)
总线接口 AHB(Advanced High performance Bus)系统总线
• 指令总线Instruction Bus
• 数据总线Data Bus
• 系统总线System Bus
• APB(Advanced Peripheral Bus)外围总线
• PPBPrivate Peripheral Bus私有外设总线
• 总线矩阵BusMatrix
M4内核
核心处理器中央内核包含DSP
- 1.25DMIPS/MHz
- Thumb-2,单周期乘法累加(MAC)单元- 带可选配的单精度浮点运算单元 MIPS: Million Instructions executed Per Second,每秒百万条指令,用来计算同一秒内系统的处理能力即每秒执行了多少百万条指令。D是Dhrystone的缩写表示了在Dhrystone这样一种测试方法下的MIPSDhrystone是一种整数运算测试程序。。
M4内核外设
FPU
- 支持IEEE 754标准
- 集成了乘法和累加指令集- 乘除、累加和开放运算都有硬件支持- 三级流水线结构
• NVIC嵌套向量中断控制器–可配置的中断控制器
- 中断的具体路数由芯片厂商定义
- 采用向量中断的机制自动取出对应的服务例程入口地
址无需软件判定
- 支持中断嵌套- 1255优先级- NMI SysTick 内存保护单元MPU
- 选配模块
- 把内存分割成8个区域并进行保护- 非法访问将产生异常中断错误
• SCB系统控制模块
- 编程模型与处理器之间的接口
- 提供系统实现的信息和系统控制包括异常的配置、控
制和报告
• SysTick定时器
- 倒计时定时器用于在每隔一定的时间产生一个中断- 系统睡眠模式下也可工作
- OS系统心跳定时
M4调试跟踪接口 SW-DP/SWJ-DP串行调试口和支持JTAG的串行调试口
- 与AHB访问端口AHB-AP协同工作将SW-DP的外部调
试器命令转换成内部总线命令
- 处理器核心没有JTAG扫描链多数调试功能通过AHB访问
来实现的
- SWJ-DP同时支持串行线协议和JTAG协议而SW-DP只支持
串行协议
Flash硬件断点控制FPB
- FPB提供flash地址重载和断点功能
- 映射Flash上的指令地址 当内核访问该指令时 自动 跳转到FPB指定的指令通常为SRAM上的地址实现硬
件断点
仪器跟踪宏单元ITM
- 软件可以直接把控制台消息写到 ITM stimulus 端
口从而把它们输出成跟踪数据。
- DWT 可以产生硬件跟踪数据包并通过ITM 把它们
输出。
- ITM 可以产生时间戳数据包并插入到跟踪数据流中
用于帮助调试器求出各事件的 发生时间。 因为ITM 要使用跟踪端口来输出数据所以芯片上必须有TPIU 单元否则无法输出 数据观察跟踪单元DWT
- 可以设置数据观察点
- 当数据地址或数据的值匹配了观察点时产生了一次匹
配命中事件
- 匹配命中事件用于产生一个观察点事件激活调试器以 产生数据跟踪信息或与ETM联动 内嵌跟踪宏单元ETM
- ETM与内核紧密耦合可实现指令执行的历史记录跟踪。
- ETM 并不会一直精确地输出处理器当前正在执行的地址。
通常它只输出有关程序执行流的信息并且只有在需要时才输出完整的地址例如当一个跳转发生时。因为调试主机也有一份二进制映像的拷贝它可以使用此拷贝来重建指令的执行序列。
- ETM 也与其它的调试组件互相交互。例如它与DWT 的 比较器就有关系DWT 的比较
- 器可用于产生ETM 的触发信号或者控制跟踪的启动与
停止。
跟踪端口的接口单元TPIU - 用于和外部的跟踪硬件如跟踪端口分析仪交互 CoreSight ROM表
- 查找表提供了系统包含哪些系统设备调试组件及
寄存器的地址
- 方便芯片厂商根据自己的配置自定义添加模块
- 调试软件根据这些模块来自适应不同的芯片调试资源
- CoreSight内核景象调试架构是ARM在推出Cortex之 后推出来的旨在丰富ARM产品的调试功能 总线互联矩阵BusMatrix
- AHB互连的网络
- 让数据在不同的总线之间并行传送 - 两个总线主机不访
问同一块内存区域
- 可支持bitbanding实现按位操作一定的区域 • AHB to APB桥接器
- 从AHB总线转换到APB总线的桥接模块
- APB总线用于访问系统上的私有慢速总线外设设备通常
为私有的调试模块
- 芯片厂商可附加其他的外设设备 AHB-AP桥接
- 用于桥接SW-DP/SWJ-DP到AHB总线互联矩阵从而发起 AHB访问 调试模式
- 第一种称为“halt”停机模式在进入此模式时
处理器完全停止程序的执行。
- 第二种则称为“debug monitor exception”调试监视 器模式此时处理器执行相应的调试监视器异常服务 例程由它来执行调试任务此时依然允许更高优先级 的异常抢占它。 I-Code总线和D-Code总线
- 分别用于执行代码空间的指令和数据 System Bus
- 用于访问SRAM和其他外设 PPB
- 内部PPB用于访问ITM、DWT、FPB、MPU和NVIC
- 外部PPB用于访问TPIU、ETM和ROM表 Code是否搬运到RAM中主要看两点
1、flash的速度是否满足CPU要求当前flash使用单双地址、预取等技术可达到200M左右当CPU速度小于200M时一般不需要搬运
2、代码是对flash本身操作的则必须搬运到RAM运行。
搬运过程如下1、启动时代码都存储在flash中代码包含两
部分一部分是可以直接在flash中运行的。一部分是必须在RAM中运行的CODE1比如flash的擦写程序此外flash中还包含一部分数据data这部分数据有初始值
2、启动后在运行程序之前需要将CODE1\DATA stack搬运到RAM中同时在RAM中还要初始化一段区域DATA1是初始化为0的数据区 代码数据全部搬运主要用于CPU频率到200M以上的情况