ARM Cortex-M3处理器内核
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计数器在多次触发(multi-shot)方式下操作。也就是说,计数 器装载重装值,然后递减计数。当计数到0时,它将COUNTFLAG 置位,并且可以根据TICKINT的值来选择是否将SysTick处理程序挂 起。然后又重新装载重装值并开始计数。 0 = 计数器被禁能。
• SysTick 重装值寄存器
SysTick 重装值寄存器用于指定当计数器计数到达0时装入当前值寄 存器的起始值。它可以是1到0x00FF.FFFF之间的任意值。 作为多次触发(multi-shot)定时器,它每N+1个时钟脉冲就会触发。 如果在每个节拍中断时写入新值,那么它就被当作单次触发,这样就 必须写入实际的递减值。
• SysTick 当前值寄存器
• SysTick 控制和状态寄存器
使用 SysTick 控制和状态寄存器来使能 SysTick 特性。复位是 0x0000.0000。
– COUNTFLAG
如果上次读取计数器计数值为0,则返回1。通过应用进行读操作 时清零。如果调试器使用DAP读取,那么只要AHB-AP控制寄存 器中的 MasterType位被设为0,该位就会在只读操作时清零。否 则,COUNTFLAG位不会因为调试器的读操作而改变。
使用 SysTick 当前值寄存器来查找该寄存器的当前值。 该寄存器是写清零。向该寄存器写入任意值都会将寄存器清零。清零 该寄存器也会将SysTick控制和状态寄存器的COUNTFLAG位清零。
flash修补和断点fpb单元用于实现断点操作数据观察点和触发dwt单元用于执行观察点触发源和系统性能分析数据跟踪源仪表跟踪宏单元itm用于支持printf型调试调试消息测试访问端口和边界扫描结构标准
Cortex-M3处理器内核 ARM Cortex-M3处理器内核
ARM Cortex-M3处理器为高性能、低成本的平台提供一个满 足小存储要求解决方案、简化管脚数、以及低功耗三方面 要求的内核,与此同时,它还提供出色的计算性能和优越 的系统中断响应能力。
• 中断
– 软件可在7个异常(系统处理程序)以及40个中断上设 置8个优先级。 – 把优先级划分为占先优先级和次要优先级两组(抢占 式优先级和响应优先级 )。每个中断源都需要被指定 这两种优先级,就需要有相应的寄存器位记录每个中 断的优先级;在Cortex-M3中定义了8个比特位用于设 置中断源的优先级 。
• 6 嵌套向量中断控制器(NVIC) 嵌套向量中断控制器( ) – 嵌套向量中断控制器(NVIC):
• 提供低-等待延时异常和中断处理 • 控制电源管理 • 执行系统控制寄存器
– NVIC支持多达240个可动态配置优先级的中断,每个中 断具有多达256个优先级。NVIC和处理器内核接口紧密 耦合,这使能了低等待延时中断的处理和迟到达中断的 有效处理。 NVIC保留了堆栈(嵌套)中断的内容来使能 中断的尾部链接。 – 你只可以完全访问特权模式的NVIC,但如果你使能配置 控制寄存器,你就可以在用户模式中挂起中断。任何其 它的用户模式访问都会引起总线错误。 – 所有NVIC寄存器可使用字节、半字和字来访问,除非特 别说明。 – 所有NVIC寄存器和系统调试寄存器都是小端配置,不管 处理器的端点状态如何。
特性:
• 紧凑的内核 • Thumb-2指令集,在通常与8位和16位设备相关的存储容 量中,特别是在微控制器级应用的几千字节存储量中,提 供ARM内核所期望的高性能。 • 高速的应用通过Harvard结构执行,以独立的指令和数据 Harvard 总线为特征。 • 优越的中断处理能力,通过执行寄存器操作来实现,这些 寄存器操作在处理硬件中断时使用。 • 存储器保护单元(MPU)为复杂的应用提供特权操作模式。 • 从 ARM7处理器系列中移植过来,以获得更好的性能和电 源效率。
• 串行线 串行线JTAG调试端口 : 调试端口
– 测试访问端口和边界扫描结构标准 .主要应用于:电路的边界扫描 测试和可编程芯片的在线系统编程。
• 闪存地址重载及断点单元(FPB) 闪存地址重载及断点单元( )
– 硬件断点支持。产生一个断点事件,从而使处理器进入调试模式
• 数据观察点与跟踪 数据观察点与跟踪(DWT)
– CLKSOURCE
0 = 外部参考时钟(Stellaris微控制器没有执行。) 1 = 内核时钟。 如果没有提供参考时钟,那么CLKSOURCE会保持为1,并且提 供和内核时钟一样的时间。内核时钟必须至少是参考时钟的2.5倍。 如果不是这样,那么计数值将不可预知。
– TICKINT
1 = 计数到0会挂起SysTick处理程序。 0 = 计数到0不会挂起SysTick处理程序。
• 功能齐全的调试解决方案:
– – – – – 串行线JTAG调试端口 (SWJ-DP) Flash 修补和断点(FPB)单元,用于实现断点操作 数据观察点和触发(DWT)单元,用于执行观察点、触发源和 系统性能分析(数据跟踪源) 仪表跟踪宏单元(ITM),用于支持printf 型调试(调试消息) 跟踪端口接口单元(TPIU)用作跟踪端口分析仪的桥接
粗略的讲,ETM的作用就是记录处理器做的事情并送到外面的调 试器。ETM对深嵌入处理器内核提供了实时跟踪能力。ETM定义 了一个物理跟踪端口用来传输程序执行流程的信息。软件调试器 允许使用JTAG接口对ETM进行配置并以用户易于理解的格式显示 捕获到的跟踪信息。(指令跟踪源)
• 3 跟踪端口的接口单元 (TPIU) ) – TPIU充当来自ITM的Cortex-M3跟踪数据以及片外跟踪 端口分析仪之间的桥接器。 • 4 ROM表 表
计数方式:
当使能时,定时器从重装值开始往下计数一直到0, 然后在下一时钟沿重新载入 SysTick 重装值寄存器中的值, 接着又在下一时钟开始递减计数。向重装值寄存器写入0 会在下次重装时禁止计数器。当计数器到达0时, COUNTFLAG 状态位置位。COUNTFLAG 位在读操作时 清零。 如果内核处于调试状态(中止),那么计数值将不会 递减。 定时器是根据参考时钟来计时的。参考时钟可以是内 核时钟或外部时钟源。
• 系统定时器 (SysTick)
Cortex-M3 包 含 一 个 集 成 的 系 统 定 时 器 SysTick 。 SysTick 提供了一种简单的、24位写清零、递减的、到 零重装的计数器,该计数器带有灵活的控制机制。 – 功能描述定时器包括以下3个寄存器: • 控制和状态计数器用来配置其时钟、使能计数器、 使能SysTick中断以及确定计数器状态。 • 计数器的重装值,用来提供计数器的重装值。 • 计数器的当前值。
– 它记录了NVIC和各个调试功能块的地址 。用于自动检测在芯片中 包含了哪些调试组件。
• 5 存储器保护单元(MPU) 存储器保护单元( )
– 存储器系统和外围设备.存储器中对区域的访问可以是读/写,只读 或不可访问,基于当时的处理器模式--管理模式或用户模式,还有一 些附加的权限. 当处理器访问主存的一个区域时,MPU比较该区域 的访问权限属性和当时的处理器模式.如果请求符合区域 访问标准, 则MPU允许内核读/写主存;如果存储器请求导致存储器访问违例, 则MPU产生一个异常信号.
• 跟踪端口接口单元(TPIU ) 跟踪端口接口单元(
– ITM, DWT 和ETM 的跟踪数据都在TPIU 处汇聚。TPIU 用于把这 些跟踪数据格式化并输出到片外,以供跟踪端口分析仪之类的设 备接收使用。
功能描述
• 1 串行线和 串行线和JTAG调试 调试 – Luminary Micro使用与ARM CoreSight™ 兼容的串行线 JTAG调试端口(SWJ-DP)接口来替代 ARM SW-DP 和JTAG-DP。 – SWJ-DP接口将SWD和JTAG调试端口组合到一个模块 SWJ-DP SWD JTAG 中。 • 2 嵌入式跟踪宏单元 (ETM) ) – ETM没有在 Stellaris®器件中执行。
– 它包含比较器,可以配置成在发生比较匹配时,产生一个观察点 调试事件,并且用它来调用调试模式; – ETM 触发,可以触发ETM 发出一个数据包,并汇入指令跟踪数 据流中。
• 指令跟踪宏单元(ITM) 指令跟踪宏单元( )
– ITM 可以产生时间戳数据包并插入到跟踪数据流中,用于帮助调试器求 出各事件的发生时间。 – DWT 产生的跟踪数据包通过ITM 输出。
• SysTick 重装值寄存器
SysTick 重装值寄存器用于指定当计数器计数到达0时装入当前值寄 存器的起始值。它可以是1到0x00FF.FFFF之间的任意值。 作为多次触发(multi-shot)定时器,它每N+1个时钟脉冲就会触发。 如果在每个节拍中断时写入新值,那么它就被当作单次触发,这样就 必须写入实际的递减值。
• SysTick 当前值寄存器
• SysTick 控制和状态寄存器
使用 SysTick 控制和状态寄存器来使能 SysTick 特性。复位是 0x0000.0000。
– COUNTFLAG
如果上次读取计数器计数值为0,则返回1。通过应用进行读操作 时清零。如果调试器使用DAP读取,那么只要AHB-AP控制寄存 器中的 MasterType位被设为0,该位就会在只读操作时清零。否 则,COUNTFLAG位不会因为调试器的读操作而改变。
使用 SysTick 当前值寄存器来查找该寄存器的当前值。 该寄存器是写清零。向该寄存器写入任意值都会将寄存器清零。清零 该寄存器也会将SysTick控制和状态寄存器的COUNTFLAG位清零。
flash修补和断点fpb单元用于实现断点操作数据观察点和触发dwt单元用于执行观察点触发源和系统性能分析数据跟踪源仪表跟踪宏单元itm用于支持printf型调试调试消息测试访问端口和边界扫描结构标准
Cortex-M3处理器内核 ARM Cortex-M3处理器内核
ARM Cortex-M3处理器为高性能、低成本的平台提供一个满 足小存储要求解决方案、简化管脚数、以及低功耗三方面 要求的内核,与此同时,它还提供出色的计算性能和优越 的系统中断响应能力。
• 中断
– 软件可在7个异常(系统处理程序)以及40个中断上设 置8个优先级。 – 把优先级划分为占先优先级和次要优先级两组(抢占 式优先级和响应优先级 )。每个中断源都需要被指定 这两种优先级,就需要有相应的寄存器位记录每个中 断的优先级;在Cortex-M3中定义了8个比特位用于设 置中断源的优先级 。
• 6 嵌套向量中断控制器(NVIC) 嵌套向量中断控制器( ) – 嵌套向量中断控制器(NVIC):
• 提供低-等待延时异常和中断处理 • 控制电源管理 • 执行系统控制寄存器
– NVIC支持多达240个可动态配置优先级的中断,每个中 断具有多达256个优先级。NVIC和处理器内核接口紧密 耦合,这使能了低等待延时中断的处理和迟到达中断的 有效处理。 NVIC保留了堆栈(嵌套)中断的内容来使能 中断的尾部链接。 – 你只可以完全访问特权模式的NVIC,但如果你使能配置 控制寄存器,你就可以在用户模式中挂起中断。任何其 它的用户模式访问都会引起总线错误。 – 所有NVIC寄存器可使用字节、半字和字来访问,除非特 别说明。 – 所有NVIC寄存器和系统调试寄存器都是小端配置,不管 处理器的端点状态如何。
特性:
• 紧凑的内核 • Thumb-2指令集,在通常与8位和16位设备相关的存储容 量中,特别是在微控制器级应用的几千字节存储量中,提 供ARM内核所期望的高性能。 • 高速的应用通过Harvard结构执行,以独立的指令和数据 Harvard 总线为特征。 • 优越的中断处理能力,通过执行寄存器操作来实现,这些 寄存器操作在处理硬件中断时使用。 • 存储器保护单元(MPU)为复杂的应用提供特权操作模式。 • 从 ARM7处理器系列中移植过来,以获得更好的性能和电 源效率。
• 串行线 串行线JTAG调试端口 : 调试端口
– 测试访问端口和边界扫描结构标准 .主要应用于:电路的边界扫描 测试和可编程芯片的在线系统编程。
• 闪存地址重载及断点单元(FPB) 闪存地址重载及断点单元( )
– 硬件断点支持。产生一个断点事件,从而使处理器进入调试模式
• 数据观察点与跟踪 数据观察点与跟踪(DWT)
– CLKSOURCE
0 = 外部参考时钟(Stellaris微控制器没有执行。) 1 = 内核时钟。 如果没有提供参考时钟,那么CLKSOURCE会保持为1,并且提 供和内核时钟一样的时间。内核时钟必须至少是参考时钟的2.5倍。 如果不是这样,那么计数值将不可预知。
– TICKINT
1 = 计数到0会挂起SysTick处理程序。 0 = 计数到0不会挂起SysTick处理程序。
• 功能齐全的调试解决方案:
– – – – – 串行线JTAG调试端口 (SWJ-DP) Flash 修补和断点(FPB)单元,用于实现断点操作 数据观察点和触发(DWT)单元,用于执行观察点、触发源和 系统性能分析(数据跟踪源) 仪表跟踪宏单元(ITM),用于支持printf 型调试(调试消息) 跟踪端口接口单元(TPIU)用作跟踪端口分析仪的桥接
粗略的讲,ETM的作用就是记录处理器做的事情并送到外面的调 试器。ETM对深嵌入处理器内核提供了实时跟踪能力。ETM定义 了一个物理跟踪端口用来传输程序执行流程的信息。软件调试器 允许使用JTAG接口对ETM进行配置并以用户易于理解的格式显示 捕获到的跟踪信息。(指令跟踪源)
• 3 跟踪端口的接口单元 (TPIU) ) – TPIU充当来自ITM的Cortex-M3跟踪数据以及片外跟踪 端口分析仪之间的桥接器。 • 4 ROM表 表
计数方式:
当使能时,定时器从重装值开始往下计数一直到0, 然后在下一时钟沿重新载入 SysTick 重装值寄存器中的值, 接着又在下一时钟开始递减计数。向重装值寄存器写入0 会在下次重装时禁止计数器。当计数器到达0时, COUNTFLAG 状态位置位。COUNTFLAG 位在读操作时 清零。 如果内核处于调试状态(中止),那么计数值将不会 递减。 定时器是根据参考时钟来计时的。参考时钟可以是内 核时钟或外部时钟源。
• 系统定时器 (SysTick)
Cortex-M3 包 含 一 个 集 成 的 系 统 定 时 器 SysTick 。 SysTick 提供了一种简单的、24位写清零、递减的、到 零重装的计数器,该计数器带有灵活的控制机制。 – 功能描述定时器包括以下3个寄存器: • 控制和状态计数器用来配置其时钟、使能计数器、 使能SysTick中断以及确定计数器状态。 • 计数器的重装值,用来提供计数器的重装值。 • 计数器的当前值。
– 它记录了NVIC和各个调试功能块的地址 。用于自动检测在芯片中 包含了哪些调试组件。
• 5 存储器保护单元(MPU) 存储器保护单元( )
– 存储器系统和外围设备.存储器中对区域的访问可以是读/写,只读 或不可访问,基于当时的处理器模式--管理模式或用户模式,还有一 些附加的权限. 当处理器访问主存的一个区域时,MPU比较该区域 的访问权限属性和当时的处理器模式.如果请求符合区域 访问标准, 则MPU允许内核读/写主存;如果存储器请求导致存储器访问违例, 则MPU产生一个异常信号.
• 跟踪端口接口单元(TPIU ) 跟踪端口接口单元(
– ITM, DWT 和ETM 的跟踪数据都在TPIU 处汇聚。TPIU 用于把这 些跟踪数据格式化并输出到片外,以供跟踪端口分析仪之类的设 备接收使用。
功能描述
• 1 串行线和 串行线和JTAG调试 调试 – Luminary Micro使用与ARM CoreSight™ 兼容的串行线 JTAG调试端口(SWJ-DP)接口来替代 ARM SW-DP 和JTAG-DP。 – SWJ-DP接口将SWD和JTAG调试端口组合到一个模块 SWJ-DP SWD JTAG 中。 • 2 嵌入式跟踪宏单元 (ETM) ) – ETM没有在 Stellaris®器件中执行。
– 它包含比较器,可以配置成在发生比较匹配时,产生一个观察点 调试事件,并且用它来调用调试模式; – ETM 触发,可以触发ETM 发出一个数据包,并汇入指令跟踪数 据流中。
• 指令跟踪宏单元(ITM) 指令跟踪宏单元( )
– ITM 可以产生时间戳数据包并插入到跟踪数据流中,用于帮助调试器求 出各事件的发生时间。 – DWT 产生的跟踪数据包通过ITM 输出。