第1章概述8个存储器区子区禁止功能(SRD),实现对存储器区的有效使用。可使能背景区,执行默认的存储器映射属性。总线接口AHBLiteICode、DCode和系统总线接口APB专用外设总线(PPB)接口Bitband支持,bit-band的原子写和读访问。存储器访问对齐写缓冲区,用于缓冲写数据。低成本调试解决方案,具有以下特性:当内核正在运行、被中止、或处于复位状态时,能对系统中包括Cortex-M3寄存器组在内的所有存储器和寄存器进行调试访问。串行线(SW-DP)或JTAG(JTAG-DP)调试访问,或两种都包括。Flash修补和断点单元(FPB),实现断点和代码修补。数据观察点和触发单元(DWT),实现观察点,触发资源和系统分析(systemprofiling)仪表跟踪宏单元(ITM),支持对printf类型的调试。跟踪端口的接口单元(TPIU),用来连接跟踪端口分析仪。可选的嵌入式跟踪宏单元(ETM),实现指令跟踪。1.2处理器的组件这节内容描述了Cortex-M3处理器的组件,系统的主要模块包括:处理器内核.NVIC.总线矩阵.FPB..DWTITM.MPU..ETMTPIU.图1-1显示了Cortex-M3处理器的结构。4
第 1 章 概述 4 — 8 个存储器区 — 子区禁止功能(SRD),实现对存储器区的有效使用。 — 可使能背景区,执行默认的存储器映射属性。 z 总线接口 — AHBLite ICode、DCode 和系统总线接口 — APB 专用外设总线(PPB)接口 — Bit band 支持,bit-band 的原子写和读访问。 — 存储器访问对齐 — 写缓冲区,用于缓冲写数据。 z 低成本调试解决方案,具有以下特性: — 当内核正在运行、被中止、或处于复位状态时,能对系统中包括 Cortex-M3 寄 存器组在内的所有存储器和寄存器进行调试访问。 — 串行线(SW-DP)或 JTAG(JTAG-DP)调试访问,或两种都包括。 — Flash 修补和断点单元(FPB),实现断点和代码修补。 — 数据观察点和触发单元(DWT),实现观察点,触发资源和系统分析(system profiling) — 仪表跟踪宏单元(ITM),支持对 printf 类型的调试。 — 跟踪端口的接口单元(TPIU),用来连接跟踪端口分析仪。 — 可选的嵌入式跟踪宏单元(ETM),实现指令跟踪。 1.2 处理器的组件 这节内容描述了 Cortex-M3 处理器的组件,系统的主要模块包括: z 处理器内核 z NVIC z 总线矩阵 z FPB z DWT z ITM z MPU z ETM z TPIU 图 1-1 显示了 Cortex-M3 处理器的结构
第1章概述Cortex-M3中国NMIINTERRUPT|239:01睡眠CM3内核NVICSLEEPINGETM调试SLEEPDEEP触发指令数据跟踪端口串行线MPU或多管脚TPIU★★专用DWTITMFPB外设总线44(外部)专用外设总线(内部)APBROM表ifI-code总线线D-code总线总SWISWI系统总线AHB-APHJTAG-DPJTAG图1-1Cortex-M3模块框图注:ETM和MPU是可选的,您的系统实现中可以不具有这两个组件。1.2.1Cortex-M3的层次和实现的选项如图1-1所示,Cortex-M3处理器的组件存在于两个层次等级中。它向我们展示了设计的RTL层次。由于ETM、TPIU、SW/ITAG-DP和ROM表4个组件是可选的,或者它们的实现和使用具有灵活性(或者执行和使用它们的方式非常灵活),因此这4个组件位于Cortex-M3处理器的外面。您的实现可能与图1-1中显示的有所不同。可能的系统实现的选项见下面的3个部分。TPIUTPIU的实现选项:如果您的系统中有ETM,则会含有TPIU格式程序,否则就不包含该格式程序。一个多内核的实现可使用单个或多个TPIU来跟踪。.ARMTPIU模块可以用兼容TPIU的指定合作伙伴的CoreSight取代。在生产设备中,TPIU可以移除。.注:如果将TPIU移除,则Cortex-M3不具有跟踪功能。SW/JTAG-DPSW/JTAG-DP的实现选项:您的实现可以含有SW-DP或JTAG-DP中的任一个或两者都有。ARMSW-DP可以被兼容SW-DP的指定合作伙伴的CoreSight取代。.5
第 1 章 概述 5 NVIC CM3内核 MPU FPB SW/ JTAG-DP AHB-AP DWT APB i/f ITM TPIU ROM表 ETM 中断 睡眠 调试 指令 数据 跟踪端口 串行线 或多管脚 专用 外设 总线 (外部) I-code 总线 D-code 总线 系统总线 触发 专用外设总线(内部) Cortex-M3 SLEEPING SLEEPDEEP INTERRUPT[239:0] NMI SW/ JTAG 图 1-1 Cortex-M3 模块框图 注:ETM 和 MPU 是可选的,您的系统实现中可以不具有这两个组件。 1.2.1 Cortex-M3 的层次和实现的选项 如图 1-1 所示,Cortex-M3 处理器的组件存在于两个层次等级中。它向我们展示了设计 的 RTL 层次。由于 ETM、TPIU、SW/JTAG-DP 和 ROM 表 4 个组件是可选的,或者它们的 实现和使用具有灵活性(或者执行和使用它们的方式非常灵活),因此这 4 个组件位于 Cortex-M3 处理器的外面。您的实现可能与图 1-1 中显示的有所不同。可能的系统实现的选 项见下面的 3 个部分。 TPIU TPIU 的实现选项: z 如果您的系统中有 ETM,则会含有 TPIU 格式程序,否则就不包含该格式程序。 z 一个多内核的实现可使用单个或多个 TPIU 来跟踪。 z ARM TPIU 模块可以用兼容 TPIU 的指定合作伙伴的 CoreSight 取代。 z 在生产设备中,TPIU 可以移除。 注:如果将 TPIU 移除,则 Cortex-M3 不具有跟踪功能。 SW/JTAG-DP SW/JTAG-DP 的实现选项: z 您的实现可以含有 SW-DP 或 JTAG-DP 中的任一个或两者都有。 z ARM SW-DP 可以被兼容 SW-DP 的指定合作伙伴的 CoreSight 取代
第1章概述·ARMJTAG-DP可以被兼容JTAG-DP的指定合作伙伴的CoreSight取代。SW-DP或JTAG-DP可以包含指定合作伙伴的测试接口。·ROM表如果系统中添加了附加的调试元件,则ROM存储器表中的描述需进行修改。1.2.2处理器内核Cortex-M3处理器内核采用ARMv7-M架构,其主要特性如下:Thumb-2指令集架构(ISA)的子集,包含所有基本的16位和32位Thumb-2指令。·哈佛处理器架构,在加载/存储数据的同时能够执行指令取指。9三级流水线832位单周期乘法o硬件除法Thumb状态和调试状态处理模式和线程模式oISR的低延迟进入和退出无需多余指令就可实现处理器状态的保存和恢复。在保存状态的同时从存储器中取出异常向量,实现更加快速地进入ISR。中断控制器的紧密式耦合接口,能够有效地处理迟来中断。采用末尾连锁(tail-chaining)中断技术,在两个中断之间没有多余的状态保存和恢复指令的情况下,处理背对背中断(back-to-backinterrupt)。可中断-可继续(interruptible-continued)的LDM/STM,PUSH/POP。ARMv6类型BE8/LE支持?ARMv6非对齐访问·处理器内核的相关内容将在下面各章中进一步描述。寄存器Cortex-M3处理器包含:13个通用的32位寄存器.链接寄存器(LR)·程序计数器(PC)·程序状态寄存器,xPSR··两个分组的SP寄存器存储器接口Cortex-M3处理器采用哈佛接口,在数据加载/存储的同时能够执行指令取指。存储器访问由下面的部件控制:一个独立的加载存储单元(LSU),与来自ALU的加载和存储操作是分离的。一个3字的入口预取指单元(entryprefetchunit)。一次取一个字。在取这个字时,6
第 1 章 概述 6 z ARM JTAG-DP 可以被兼容 JTAG-DP 的指定合作伙伴的 CoreSight 取代。 z SW-DP 或 JTAG-DP 可以包含指定合作伙伴的测试接口。 ROM 表 如果系统中添加了附加的调试元件,则 ROM 存储器表中的描述需进行修改。 1.2.2 处理器内核 Cortex-M3 处理器内核采用 ARMv7-M 架构,其主要特性如下: z Thumb-2 指令集架构(ISA)的子集,包含所有基本的 16 位和 32 位 Thumb-2 指令。 z 哈佛处理器架构,在加载/存储数据的同时能够执行指令取指。 z 三级流水线 z 32 位单周期乘法 z 硬件除法 z Thumb 状态和调试状态 z 处理模式和线程模式 z ISR 的低延迟进入和退出 — 无需多余指令就可实现处理器状态的保存和恢复。在保存状态的同时从存储器 中取出异常向量,实现更加快速地进入 ISR。 — 中断控制器的紧密式耦合接口,能够有效地处理迟来中断。 — 采用末尾连锁(tail-chaining)中断技术,在两个中断之间没有多余的状态保存 和恢复指令的情况下,处理背对背中断(back-to-back interrupt)。 z 可中断-可继续(interruptible-continued)的 LDM/STM,PUSH/POP。 z ARMv6 类型 BE8/LE 支持 z ARMv6 非对齐访问 处理器内核的相关内容将在下面各章中进一步描述。 寄存器 Cortex-M3 处理器包含: z 13 个通用的 32 位寄存器 z 链接寄存器(LR) z 程序计数器(PC) z 程序状态寄存器,xPSR z 两个分组的 SP 寄存器 存储器接口 Cortex-M3 处理器采用哈佛接口,在数据加载/存储的同时能够执行指令取指。存储器访 问由下面的部件控制: z 一个独立的加载存储单元(LSU),与来自 ALU 的加载和存储操作是分离的。 z 一个 3 字的入口预取指单元(entry prefetch unit)。一次取一个字。在取这个字时
第1章概述可以使用2种thumb指令,字对齐的thumb-2指令或半字对齐的thumb-2指令的高/低半字。所有来自内核的取地址操作都是字对齐的。如果是半字对齐的,则需要两次取指操作才能完成thumb-2指令的取指。而3字入口的预取指缓冲区确保了只有第一个被取出的半字的thumb-2指令才需要一个暂停周期(stallcycle)。1.2.3NVICNVIC与处理器内核是紧密耦合的,这样可简化低延迟的异常处理。NVIC主要特性包括:外部中断可配置为1~240个·优先级的位可配置为3~8位.支持电平和边沿中断9中断优先级可动态地重新配置··优先级分组。支持末尾连锁(tail-chaining)中断技术·处理器状态在进入中断时自动保存,中断返回时自动恢复,不需要多余的指令。NVIC的详细描述见第8章嵌套向量中断控制器1.2.4总线矩阵总线矩阵用来将处理器和调试接口与外部总线相连。总线矩阵与下面的外部总线相连:ICode总线,该总线用于从代码空间取指令和向量,是32位AHBLite总线。·DCode总线,该总线用于对代码空间进行数据加载/存储以及调试访问,是32位?AHBLite总线。系统总线,该总线用于对系统空间执行取指令和向量,数据加载/存储以及调试访·问,是32位AHBLite总线。PPB,该总线用于对PPB空间进行数据加载/存储以及调试访问,是32位APB(v2.0)·总线。总线矩阵还对以下方面进行控制非对齐访问。总线矩阵将非对齐的处理器访问转换为对齐访问。·IBit-banding。总线矩阵将bit-band别名访问转换为对bit-band区的访问。它执行以下功能:一对bit-band加载进行位域提取一对bit-band存储进行原子读一修改一写写缓冲。总线矩阵包含一个单入口写缓冲区,该缓冲区使得处理器内核不受到总线·延迟的影响。总线接口的详细描述见第14章总线接口。7
第 1 章 概述 7 可以使用 2 种 thumb 指令,字对齐的 thumb-2 指令或半字对齐的 thumb-2 指令的高 /低半字。所有来自内核的取地址操作都是字对齐的。如果是半字对齐的,则需要 两次取指操作才能完成 thumb-2 指令的取指。而 3 字入口的预取指缓冲区确保了只 有第一个被取出的半字的 thumb-2 指令才需要一个暂停周期(stall cycle)。 1.2.3 NVIC NVIC 与处理器内核是紧密耦合的,这样可简化低延迟的异常处理。NVIC 主要特性包 括: z 外部中断可配置为 1~240 个 z 优先级的位可配置为 3~8 位 z 支持电平和边沿中断 z 中断优先级可动态地重新配置 z 优先级分组 z 支持末尾连锁(tail-chaining)中断技术 z 处理器状态在进入中断时自动保存,中断返回时自动恢复,不需要多余的指令。 NVIC 的详细描述见第 8 章嵌套向量中断控制器。 1.2.4 总线矩阵 总线矩阵用来将处理器和调试接口与外部总线相连。总线矩阵与下面的外部总线相连: z ICode 总线,该总线用于从代码空间取指令和向量,是 32 位 AHBLite 总线。 z DCode 总线,该总线用于对代码空间进行数据加载/存储以及调试访问,是 32 位 AHBLite 总线。 z 系统总线,该总线用于对系统空间执行取指令和向量,数据加载/存储以及调试访 问,是 32 位 AHBLite 总线。 z PPB,该总线用于对 PPB 空间进行数据加载/存储以及调试访问,是 32 位 APB(v2.0) 总线。 总线矩阵还对以下方面进行控制: z 非对齐访问。总线矩阵将非对齐的处理器访问转换为对齐访问。 z Bit-banding。总线矩阵将 bit-band 别名访问转换为对 bit-band 区的访问。它执行以 下功能: —对 bit-band 加载进行位域提取 —对 bit-band 存储进行原子读-修改-写 z 写缓冲。总线矩阵包含一个单入口写缓冲区,该缓冲区使得处理器内核不受到总线 延迟的影响。 总线接口的详细描述见第 14 章总线接口
第1章概述1.2.5FPBFPB单元实现硬件断点以及从代码空间到系统空间的修补访问,FPB有8个比较器:6个指令比较器,能够单独配置,实现将代码空间的指令取指重新映射到系统空间,·或实现硬件断点。两个literal比较器,将代码空间的literal访问重新映射到系统空间。·FPB的详细描述见第11章系统调试。1.2.6 DWTDWT单元集成了以下调试功能:DWT包含4个比较器,其中的任一个都可配置为硬件观察点、ETM触发、PC采·样事件触发、或数据地址采样事件触发。·包含几个用于性能分析(performanceprofiling)的计数器。能够配置为以定义的间隔发送PC采样,以及发送中断事件信息。·DWT的详细描述见第11章系统调试。1.2.7ITMITM是一个应用导向(applicationdriven)的跟踪源,支持对应用事件的跟踪和print)类型的调试。ITM提供以下跟踪信息源:。软件跟踪,软件能够直接写入ITM激励寄存器(stimulusregister),从而完成信息包的发出操作。。硬件跟踪,这些信息包由DWT产生,并由ITM发出。·时间戳(timestamping),时间戳要根据信息包来发送。TIM的详细描述见第11章系统调试。1.2.8MPU如果希望向处理器提供存储器保护,则可以使用可选的MPU。MPU对访问允许和存储器属性进行检验。它包含8个区和一个可选的执行默认存储器映射访问属性的背景区。MPU的详细描述见第9章存储器保护单元。1.2.9ETMETM是只支持指令跟踪的低成本跟踪宏单元。ETM的详细描述见第15章嵌入式跟踪宏单元。1.2.10TPIUTPIU用作来自ITM和ETM(如果存在)的Cortex-M3跟踪数据与片外跟踪端口分析仪之间的桥接。TPIU可配置为支持低成本调试的串行管脚跟踪,或用于更高带宽跟踪的多管脚跟踪。TPIU与CoreSight是兼容的。TPIU的详细描述见第13章跟踪端口的接口单元8
第 1 章 概述 8 1.2.5 FPB FPB 单元实现硬件断点以及从代码空间到系统空间的修补访问,FPB 有 8 个比较器: z 6 个指令比较器,能够单独配置,实现将代码空间的指令取指重新映射到系统空间, 或实现硬件断点。 z 两个 literal 比较器,将代码空间的 literal 访问重新映射到系统空间。 FPB 的详细描述见第 11 章系统调试。 1.2.6 DWT DWT 单元集成了以下调试功能: z DWT 包含 4 个比较器,其中的任一个都可配置为硬件观察点、ETM 触发、PC 采 样事件触发、或数据地址采样事件触发。 z 包含几个用于性能分析(performance profiling)的计数器。 z 能够配置为以定义的间隔发送 PC 采样,以及发送中断事件信息。 DWT 的详细描述见第 11 章系统调试。 1.2.7 ITM ITM 是一个应用导向(application driven)的跟踪源,支持对应用事件的跟踪和 printf 类型的调试。 ITM 提供以下跟踪信息源: z 软件跟踪,软件能够直接写入 ITM 激励寄存器(stimulus register),从而完成信息 包的发出操作。 z 硬件跟踪,这些信息包由 DWT 产生,并由 ITM 发出。 z 时间戳(time stamping),时间戳要根据信息包来发送。 TIM 的详细描述见第 11 章系统调试。 1.2.8 MPU 如果希望向处理器提供存储器保护,则可以使用可选的 MPU。MPU 对访问允许和存储 器属性进行检验。它包含 8 个区和一个可选的执行默认存储器映射访问属性的背景区。 MPU 的详细描述见第 9 章存储器保护单元。 1.2.9 ETM ETM 是只支持指令跟踪的低成本跟踪宏单元。 ETM 的详细描述见第 15 章嵌入式跟踪宏单元。 1.2.10 TPIU TPIU 用作来自 ITM 和 ETM(如果存在)的 Cortex-M3 跟踪数据与片外跟踪端口分析仪 之间的桥接。TPIU 可配置为支持低成本调试的串行管脚跟踪,或用于更高带宽跟踪的多管 脚跟踪。TPIU 与 CoreSight 是兼容的。 TPIU 的详细描述见第 13 章跟踪端口的接口单元