《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > SDSoC 新功能介绍 - Trace

SDSoC 新功能介绍 - Trace

2016-04-14
作者:Ally Zhou,赛灵思工具与设计方法学专家
关键词: Xilinx SDSoC CC 事件追踪

  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,用以完成和记录事件追踪功能。

a.png

  收集事件追踪数据的接口根据不同的操作系统而略有不同。对于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视图。用户应用程序的每个跟踪事件被赋予一个唯一的轨迹名称,并且对应到同一个时间轴。通常,一个跟踪点可以通过应用程序的执行创建多个轨迹,例如,如果相同的代码被循环执行,或者在加速器中被多次调用。

b.png

  每个事件追踪轨迹都有几个不同的属性:名称,类型,以及启动,停止和持续时间。如果将鼠标悬停在某个轨迹上,就可以看到这个轨迹的详细属性。Trace视图中以不同的颜色区别不同类型的轨迹,例如橙色代表软件事件追踪,绿色代表硬件事件而蓝色代表数据的交互。

c.png

  关于Trace更详细的介绍和分步骤教程,请关注SDSoC安装目录下的docs目录,其中有一个SDSoC_Trace2015.4.pdf文档可供参考。

  由于Trace是在SDSoC 2015.4版首次发布,且目前还处于Beta阶段,其仅能完成有限的事件追踪功能,我们将在以后的版本中不断完善,提供更全面的追踪功能。敬请关注。如果您想要立即试用SDSoC 2015.4 和Trace功能,请联系当地的Xilinx销售代表。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。