www.6515.com
要看芯片真隐了ETM模块没有

 日期:2019-09-11    访问次数:

  PIPESTAT(0-2):这三个流水线形态信号表白对应每个TRACECLK时钟周期,处置器指令流水线内部事务的细致消息如指令曾经施行、发生跳转等。

  要看芯片实现了ETM模块没有,若是实现了的,则能够通过SWDO端话柄现SWV,通过printf打印调试消息,STM32单片机大大都都使能了ETM功能模块的,能够正在SWD模式下通过SWDO(也就是JTAG模式下的TDO管脚)正在Keil中打印printf输出的调试消息,而不必华侈USART,很适用的

  因为微节制器带有大量的片内存储器,因而不克不及简单地通过察看外部管脚来确定处置器核是若何运转的。ETM对深嵌入处置器内核供给了及时跟踪能力。它向一个跟踪端口输出处置器施行的消息。软件调试器答应利用JTAG接口对ETM进行设置装备摆设并以用户易于理解的格局显示捕捉到的跟踪消息。ETM间接毗连到ARM内核而不是从AMBA 系统总线。

  TRACEPKT能够是4位、8位、或者16位的格局。跟踪端口越窄,通过跟踪端口授递跟踪消息就需要越多的TRACECLK时钟周期。一般4位的TRACEPKT用来沉建完整的法式施行流程曾经是脚够了。可是,包含数据跟踪消息后能够很快的使这个窄位宽跟踪端口跨越负荷。特别是使能了数据跟踪功能后,持续呈现32比特的数据拜候就很容易呈现这种环境。例如,对一组寄放器施行压栈和出栈操做的时候,为了避免正在跟踪端口上呈现这种过负荷的环境,能够正在ETM和外部的开辟东西之间添加一个FIFO缓存。当屡次发生跳转和数据读写指令的时候,这个两头缓存就显得尤为主要了。

  TRACEPKT: 法式施行流程通过TRACEPKT信号(依ETM模式分歧,能够是4、8,或者 16 针)传送出处置器。对每个非间接跳转,压缩后的跳转目标地址被包含正在跟踪报文中。“非间接跳转”是个很宽泛的说法,一般是指跳转的目标地址只能正在法式运转的时候才能确定的环境,如通过寄放器加载PC寄放器,预测会发生的跳转指令和非常等。这些法式施行流程消息,和源代码一路,就可以或许闪开发东西沉建完整的法式施行流程。源代码既能够通过调试器加载,也能够通过处置器的JTAG接口从内存中读取。

  提到的ETM跟踪方式的长处是记实消息的前言正在CPU内核以外,这就使得CPU外部的开辟东西能够包含无限大小的跟踪缓存。若是正在线MB的跟踪缓存,对打开Cache并运转正在100MHz的ARM926EJ-S理器来说,能够存储1.4秒的消息,大大都嵌入式开辟者都认为这个曾经脚够满脚需求了。答复珍藏分享

  不只限于法式施行流程,ETM用户还能够有选择地正在跟踪端口的输出中包罗数据读写消息。正在跟踪端口的输出中,能够只要地址消息(以压缩体例)或数据内容,也能够同时包罗地址消息(以压缩体例)和数据读写的内容。使能对数据读写消息的跟踪后,这些消息将被cha(词)ru到法式施行流程消息流中的得当上。

  跟踪端口的位宽和FIFO的大小都能够有良多种选择,若何准确组合这两个要素很是环节,这将有帮于防止跟踪消息的丢失。对于ARM ETM,Lauterbach保举的最低设置装备摆设是8位的端口位宽和45字节的FIFO缓存大小。这个组合正在绝大大都环境下能够防止跟踪消息的丢失。

  面临不竭增加的处置器频次,先来看一下跟踪手艺的一些最新成长。起首看一下正在基于ARM内核的SoC设想里面的片内跟踪模块,也就是常说的ARM嵌入式跟踪宏单位(ARM ETM)。ETM定义了一个物理跟踪端口用来传输法式施行流程的消息,下面是对ETM端口的各个构成信号的简要描述。

  TRACECLK: 该信号用来同步收集跟踪消息的硬件(也就是正在线调试器)和ETM。所有的IPESTAT和TRACEPKT信号都正在TRACECLK信号的边缘上被采样。正在分歧的ETM运转模式下,该信号能够是ARM内核工做频次的两倍、一半、或者同频。