Trace的详细分析以及功能介绍

sdsoc 开发环境
sdsoc是xilinx旗下,用于设计开发zynq soc和mpsoc异构嵌入式系统的基于eclipse的集成开发环境,可以完成从c/c++到指定目标平台上功能完整的硬件/软件系统的编译、实现、调试执行等全过程。
由sdsoc产生的系统是高性能的,同时也是复杂的硬件/软件协同工作系统。要了解在这样的系统中应用程序的执行过程是比较困难的,因为你需要同时关注在处理器上运行的软件部分和在硬件可编程逻辑上执行的加速部分,以及数据在二者之间的传递过程和顺序等。
trace 事件追踪功能 2015.4版的sdsoc中新增了一个功能,叫做trace,即事件追踪功能,可以帮助设计开发人员深入了解应用程序的执行过程中整个系统上发生了哪些事件以及发生的顺序,用户可以以此为依据进行系统优化。
trace提供的是一个详细视图,用户可以在其中观察应用,硬件/软件分区和系统设计选择的性能,它提供的是一个以时间轴为单位而量化的事件追踪,包括在理器上运行的软件事件,在可编程逻辑上运行的硬件加速事件和在系统中的数据传输链路事件。
由于需要读取上板应用的数据,要启动事件跟踪,用户必须将开发板经由jtag连接到主机。
在sdsoc中启动trace后,事件追踪功能就会被自动插入到软件代码和硬件ip中。然后,硬件部分(包括完成事件追踪功能的监控ip)经过综合和布局布线,产生比特流,而软件跟踪代码则被编译到普通用户应用中。硬件和软件的事件追踪时间戳被收集到了一个追踪流中,并且以在可编程架构中缓存的方式记录下来,由主机通过jtag访问并读回数据。
下图橙色高亮的部分,就是应用trace功能后sdsoc自动插入的监控ip,用以完成和记录事件追踪功能。
收集事件追踪数据的接口根据不同的操作系统而略有不同。对于standalone和freertos操作系统,用户程序elf使用usb / jtag接口下载到电路板上进行配置和调试,断点也是经由了同样的usb / jtag接口而插入,事件跟踪的数据采集,也是在相同的usb / jtag接口上读取。
对于linux,一旦操作系统经由sd卡启动,elf已经复制后,便可以经过tcp/tcf运行调试,断点也可以经由tcp/tcp插入,但事件跟踪的数据仍然需要通过usb / jtag接口读出。换句话说,要在linux应用程序上启动事件追踪, usb / jtag和tcp / tcf接口都需要。
trace 视图 下图所示就是sdsoc gui提供的trace视图。用户应用程序的每个跟踪事件被赋予一个唯一的轨迹名称,并且对应到同一个时间轴。通常,一个跟踪点可以通过应用程序的执行创建多个轨迹,例如,如果相同的代码被循环执行,或者在加速器中被多次调用。
每个事件追踪轨迹都有几个不同的属性:名称,类型,以及启动,停止和持续时间。如果将鼠标悬停在某个轨迹上,就可以看到这个轨迹的详细属性。trace视图中以不同的颜色区别不同类型的轨迹,例如橙色代表软件事件追踪,绿色代表硬件事件而蓝色代表数据的交互。
关于trace更详细的介绍和分步骤教程,请关注sdsoc安装目录下的docs目录,其中有一个sdsoc_trace2015.4.pdf文档可供参考。
由于trace是在sdsoc 2015.4版首次发布,且目前还处于beta阶段,其仅能完成有限的事件追踪功能,我们将在以后的版本中不断完善,提供更全面的追踪功能。敬请关注。如果您想要立即试用sdsoc 2015.4 和trace功能,请联系当地的xilinx销售代表。

普源频谱分析仪RSA3045-TG的详细说明
努比亚Z17最新消息:努比亚Z17发布会前瞻,除了AI+8G运存是亮点还有什么值得看?
康复机器人市场需求日渐旺盛,它究竟有何魔力
苹果新款16英寸的MacBook Pro采用了剪刀结构的键盘设计
固态继电器的技术参数及选用
Trace的详细分析以及功能介绍
半导体激光器在产业和技术方面的应用
中国人窃取ASML光刻机机密?
回顾罗德与施瓦茨ARDRONIS无人机管控系统解决方案的内容介绍
MAX2470/MAX2471耦合MIMO收发器参考时钟
三元催化器失效的原因
开放原子读书会第3期:《社区运营的艺术》从0-1搭建开源社区
电力电子变压器对交直流混合微网功率控制的研究
PCB电路板中GND地线的查找方法
Xilinx可编程逻辑器件设计与开发(基础篇)连载40:Spartan
如何使用ArduinoBlocks
ad595应用电路
深圳金康特与北京智联安签署战略合作协议,共同推进4G/5G智能穿戴产品
华为发布自研WiFi 6+技术,将用于智能终端设备
智能合约开发 智能合约真的智能吗