通用Cortex-M3处理器结构与工作原理.ppt

上传人:sh****n 文档编号:7533351 上传时间:2020-03-22 格式:PPT 页数:44 大小:1.97MB
返回 下载 相关 举报
通用Cortex-M3处理器结构与工作原理.ppt_第1页
第1页 / 共44页
通用Cortex-M3处理器结构与工作原理.ppt_第2页
第2页 / 共44页
通用Cortex-M3处理器结构与工作原理.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
通用Cortex M3处理器结构与工作原理 课本第二章 本章工作原理包括两类内容 通用Cortex M3处理器结构与工作原理具体STM32 CM3 处理器结构与工作原理 教学资源 四本重要的参考手册 STM32F103参考手册Cortex M3权威指南STM32F103数据手册STM32固件函数库使用手册 目录 CortexM3处理器结构图CM3内核嵌套向量中断控制器 NVIC 总线矩阵外部总线调试接口多级存储结构寄存器存储器映射存储器的组织存储格式异常与中断异常的处理方式 中断中断的概念嵌套向量中断控制器的主要性能 Cortex M3处理器基本结构 Cortex M3中央内核基于哈佛架构 指令和数据各使用一条总线 图2 1 与Cortex M3不同 ARM7系列处理器使用冯 诺依曼架构 指令和数据共用信号总线以及存储器 由于指令和数据可以从存储器中同时读取 所以Cortex M3处理器对多个操作并行执行 加快了应用程序的执行速度 图2 1Cortex M3处理器架构 Cortex M3处理器 集成了内核和高级系统外设的分级处理器Cortex M3内核哈佛体系结构拥有分支预测功能的三级流水线Thumb 2指令集和传统的Thumb指令集带有硬件除法和单信号周期乘法的ALUCortex M3处理器Cortex M3内核可配置的中断控制器总线矩阵先进的调试组件可选择的MPU ETM 查看大图 逻辑体系 CortexM3处理器结构框透视图 工作原理参见Cortex M3权威指南 pdfp101 STM32F10 x系列微控制器系统结构 课本p27 CortexM3处理器结构框透视图 课本p25说明 STM32F10 x系列微控制器系统结构 STM32F10 x系列微控制器系统结构 CM3内核程序执行三步曲 取指译码执行 嵌套向量中断控制器 NVIC NVIC为低延迟实现异常处理提供了方便 主要有以下特征 可配置1 240个外部中断 可配置优先级位数3 8位 支持电平和脉冲 边沿 中断 可以动态重新分配中断优先级 优先级分组 支持尾链 tail chaining 中断 进入中断时 处理器状态自动保存 退出中断时状态自动恢复 无额外指令开销 总线矩阵Cortex M3处理器集成了一个AMBAAHB Lite总线来连接系统外设 并降低系统集成的复杂性 总线矩阵支持不对齐的数据访问 使不同的数据类型可以在存储器中紧密衔接可显著降低SRAM的需求和系统成本 总线矩阵将处理器 调试接口连接到外部总线 总线矩阵连接到以下外部总线 ICode总线 这是一条32位的AHB Lite总线 主要用于从指令空间中取指和取向量 DCode总线 这是一条32位的AHB Lite总线 主要用于从指令空间的数据读写和调试访问 系统总线 这是一条32位的AHB Lite总线 主要用于从系统空间中取指 取向量 读写数据和调试访问 PPB 私有外设总线 这是一条32位的APB v2 0 总线 主要用于从PPB空间读写数据和调试访问 私有外设总线有两条 AHB私有外设总线 只用于CM3内部的AHB外设 它们是 NVIC FPB DWT和ITM APB私有外设总线 既用于CM3内部的APB设备 也用于外部设备 外部 是对内核而言 CM3允许器件制造商再添加一些片上APB外设到APB私有总线上 它们通过APB接口来访问 调试接口硬件调试解决方案 通过一个传统的JTAG口或一个适合小封装器件的2线串行调试口 SWD 可以获得很高的处理器系统可视度 对于系统跟踪 处理器在数据观察点基础上集成了一个可选的ETM 嵌入式跟踪宏单元 它可以被配置为特定的系统事件触发 为了简化这些系统事件的处理 一个串行观测器 SerialWireViewer SWV 可以通过一个引脚输出标准的ASCII数据流 Flash修补技术 使器件和系统开发者在调试或运行过程中 可以修补从ROM到SRAM或Flash的代码错误 可避免昂贵的重定制 上图向我们展示了设计的RTL层次 其中的两条外设总线 一条72MHZ 一条36MHZ由于ETM TPIU SW JTAG DP和ROM表4个组件是可选的 或者它们的实现和使用具有灵活性 因此这4个组件位于Cortex M3处理器的外面 设计实现可能与图中显示的有所不同 可能的系统实现的选项见下面的3个部分 TPIU的实现选项 如果您的系统中有ETM 则会含有TPIU格式程序 否则就不包含该格式程序 一个多内核的实现可使用单个或多个TPIU来跟踪 ARMTPIU模块可以用兼容TPIU的指定合作伙伴的CoreSight取代 在生产设备中 TPIU可以移除 注 如果将TPIU移除 则Cortex M3不具有跟踪功能 SW JTAG DP的实现选项 设计实现可以含有SW DP或JTAG DP中的任一个或两者都有 ARMSW DP可以被兼容SW DP的指定合作伙伴的CoreSight取代 ARMJTAG DP可以被兼容JTAG DP的指定合作伙伴的CoreSight取代 SW DP或JTAG DP可以包含指定合作伙伴的测试接口 ROM表如果系统中添加了附加的调试元件 则ROM存储器表中的描述需进行修改 多级存储结构 按照与CPU的数据交换速度可分为寄存器 CPU内部 暂存运行中的数据 掉电丢失 RAM类存储设备 Flash闪存 CPU外部 保存程序和运行中的数据 ROM RAM类存储设备 SRAM CPU外部 暂存运行中的数据 RAM类存储设备 参见Cortex M3权威指南 pdfp26 寄存器 Cortex M3寄存器 13个通用寄存器 R0 R12 分组的堆栈指针SP链接寄存器R14程序计数器R15特殊用途程序状态寄存器xPSR外部设备也有各自的寄存器 课本p33 1 通用寄存器通用目的寄存器R0 R12都是32位通用寄存器 用于数据操作 注意 绝大多数16位Thumb指令只能访问R0 R7 而32位Thumb 2指令可以访问所有寄存器 复位后的初始值是不可预料的 堆栈指针R13 Cortex M3拥有两个堆栈指针 然而它们是banked 因此任一时刻只能使用其中的一个 主堆栈指针 MSP 复位后缺省使用的堆栈指针 用于操作系统内核以及异常处理例程 包括中断服务例程 进程堆栈指针 PSP 由用户的应用程序代码使用 堆栈是一种存储器的使用模型 它由一块连续的内存和一个栈顶指针组成 用于实现 后进先出 的缓冲区 其最典型的应用 就是在数据处理前先保存寄存器的值 再在处理任务完成后从中恢复先前保护的这些值 堆栈指针用于访问堆栈 并且PUSH指令和POP指令默认使用SP Cortex M3权威指南 pdfp46 参见课本2相关章节 在执行PUSH和POP操作时 通常被称为SP的地址寄存器 会由硬件自动调整它的值 以避免后续操作破坏先前的数据 连接寄存器R14 当呼叫一个子程序时 由R14存储返回地址程序计数寄存器R15 指向当前的程序地址 如果修改它的值 就能改变程序的执行流 2 特殊功能寄存器Cortex M3还在内核水平上搭载了若干特殊功能寄存器 包括 程序状态字寄存器组 PSRs 中断屏蔽寄存器组 PRIMASK FAULTMASK BASEPRI 控制寄存器 CONTROL 存储器的地址映射 地址分配 Cortex M3处理器只有一个单一固定的存储器地址映射 这一点极大地方便了软件在各种CM3单片机间的移植 如各款CM3单片机的NVIC和MPU都在相同的位置布设寄存器 使得它们变得与具体器件无关 虽然CM3定出的条条框框是粗线条的 但它依然允许芯片制造商灵活细腻地分配存储器地址空间 以制造出各具特色的单片机产品 什么是地址 地址是给每一个存储单元 寄存器单元 Flash单元 SRAM单元 甚至外部设备的寄存器单元 分配的唯一的定位标志 类似房间门牌号码或电话号码 1个存储单元一般是对应1个字节 也可能对应1个二进制位 什么是字 字的宽度由CPU的数据 功能 总线宽度来决定 STM32就表示它的字宽是4个字节32位 CM3的地址空间是4GB 程序可以在代码区 内部SRAM区以及外部RAM区中执行 但是因为指令总线与数据总线是分开的 最理想的是把程序放到代码区 从而使取指和数据访问各自使用自总线具体4GB的粗线条划分如下图 CM3的存储器组织 Cortex M3权威指南 pdfp83 课本p28 30 内部SRAM区的大小是512MB 用于让芯片制造商连接片上的SRAM 这个区通过系统总线来访问 在这个区的下部 有一个1MB的区间 被称为 位带区 该位带区还有一个对应的32MB的 位带别名 alias 区 容纳了8M个 位变量 对比8051的只有128个位变量 位带区对应的是最低的1MB地址范围 而位带别名区里面的每个字对应位带区的一个比特 位带操作只适用于数据访问 不适用于取指 通过位带的功能 可以把多个布尔型数据打包在单一的字中 却依然可以从位带别名区中 像访问普通内存一样地使用它们 位带别名区中的访问操作是原子的 消灭了传统的 读 改 写 三步曲 位带操作的细节待会还要讲到 地址空间的另一个512MB范围由片上外设 的寄存器 使用 这个区中也有一条32MB的位带别名 以便于快捷地访问外设寄存器 用法与内部SRAM区中的位带相同 如可以方便地访问各种控制位和状态位 要注意的是 外设区内不允许执行指令 还有两个1GB的范围 分别用于连接外部RAM和外部设备 它们之中没有位带 两者的区别在于外部RAM区允许执行指令 而外部设备区则不允许 最后还剩下0 5GB的隐秘地带 CM3内核的闺房就在这里面 包括了系统级组件 内部私有外设总线 外部私有外设总线 以及由提供者定义的系统外设 存储格式 Cortex M3处理器将存储器看作从0开始向上编号的字节的线性集合 例如 字节0 3存放第一个被保存的字字节4 7存放第二个被保存的字Cortex M3处理器能够以小端格式或大端格式访问存储器中的数据字 而访问代码时始终使用小端格式 注意 小端格式是ARM处理器默认的存储器格式 在小端格式中 一个字中最低地址的字节为该字的最低有效字节 最高地址的字节为最高有效字节 存储器系统地址0的字节与数据线7 0相连 在大端格式中 一个字中最低地址的字节为该字的最高有效字节 而最高地址的字节为最低有效字节 存储器系统地址0的字节与数据线31 24相连 小端数据格式 大端数据格式 2 6异常 异常是指由于执行指令时的一个错误条件而产生的故障 工作原理参见Cortex M3权威指南 pdfp44 异常模型 Cortex M3处理器和嵌套向量中断控制器 NVIC 对所有异常按优先级进行排序并处理 所有异常都在处理模式中操作 出现异常时 自动将处理器状态保存到堆栈中 并在中断服务程序 ISR 结束时自动从堆栈中恢复 在状态保存的同时取出向量快速地进入中断 处理器支持末尾连锁 tail chaining 中断技术 它能够在没有多余的状态保存和恢复指令的情况下执行背对背中断 back to backinterrupt 异常类型 课本p170 什么是 中断 中断服务程序 中断请求 中断服务程序 外设 CPU CPU执行程序时 由于发生了某种随机的事件 外部或内部 引起CPU暂时中断正在运行的程序 转去执行一段特殊的服务程序 中断服务子程序或中断处理程序 以处理该事件 该事件处理完后又返回被中断的程序继续执行 这一过程称为中断 例如 吃饭时突然手机铃响 中断示意图 中断响应 查向量表 中断请求 中断返回 通过中断向量表找到中断服务程序所在存储单元 嵌套向量中断控制器 NVIC支持240个优先级可动态配置的中断 每个中断的优先级有256个选择 低延迟的中断处理可以通过紧耦合的NVIC和处理器内核接口来实现 让新进的中断可以得到有效的处理 提供如下的功能 可嵌套中断支持向量中断支持动态优先级调整支持中断延迟大大缩短中断可屏蔽 作业 根据CortexM3结构图分析是如何实现逻辑体系中的五大功能和总线功能的 CortexM3的地址空间是如何组织的 什么叫异常 简述中断的处理过程 从下节课开始带U盘 COPY教学资源中的软件 练习安装
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!