Arm Community
Site
Search
User
Site
Search
User
Groups
Education Hub
Distinguished Ambassadors
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello forum
Operating Systems forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Internet of Things (IoT) blog
Operating Systems blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Community Management
Archive
中文社区
Jump...
Cancel
中文社区
中文社区博客
在Fast Model上使用DS-5 Trace功能
Blogs
视频和文件
Members
Mentions
Sub-Groups
Tags
Jump...
Cancel
New
中文社区 requires membership for participation - click to join
More blogs in 中文社区
ARM中国大学计划博客
Arm新闻
中文mbed博客
中文社区博客
恩智浦汽车电子MCU讨论区博客
Tags
Trace
DS-5 Ultimate Edition
Fast Models
Actions
RSS
More
Cancel
Related blog posts
Related forum threads
在Fast Model上使用DS-5 Trace功能
feng
May 24, 2017
Less than one minute read time.
本文为翻译,原文链接如下:
https://community.arm.com/tools/b/blog/posts/using-ds-5-trace-with-arm-fast-models
针对DS-5与Fast Model联合使用的优势,所有Fast Model用户都应该对DS-5提供的三大基本技术有所了解:
1)软件调试
2)Streamline性能分析
3)软件Trace
Fast Model用户常常了解DS-5用来调试软件的功能,但是对搭建与定制化Fast Model系统相关的性能分析及trace却不太熟悉。
之前我们谈到过
怎么使用DS-5来对定制化的Fast Model系统进行软件调试
,以及
在Fast Model上使用
Streamline
。本文我们讨论在连接到Fast Model目标系统时如何使用DS-5软件trace的功能。
了解这三项技能会带给用户在Fast Model上开发软件的最好使用体验,同时也可应用到DS-5在硬件目标上的使用。
软件Trace介绍
Trace也即收集软件的执行信息:指令Trace收集目标CPU执行的指令信息,数据Trace手机指令执行时存储器和寄存器访问的行为状况。DS-5 Trace的非常多信息来自于典型的物理连接及相应的诸如DSTREAM或DSTREAM-ST探针。常用的从一个运行目标非侵入性收集Trace数据的方法是将一些例如ETM(embedded trace macrocell)或PTM(program trace macrocell)的资源植入硬件。生成的数据通过JTAG连接缓冲并输出。
当然,这些多数并不适用与模型系统因为CoreSight硬件并不建模,但它有助于理解Trace缓冲的概念。实际硬件中,收集Trace数据的缓冲会有一个大小的限制,这些缓冲可以通过不同的方式将数据上传并通过DS-5进行可视化处理。SoC中对Trace的实现是件相当复杂的任务,这意味着每个SoC都需要选择最合适的方式来实现组成自身大量模块的Trace。下图是一个典型的Trace实现:
DS-5中调试与Trace服务层(DTSL)的大部分同样适用于Fast Model。之前曾经有文章解释过
FVP上的软件Trace
,有些部分有所改变。为解释这个过程,本文使用四核R8的系统运行bare metal软件同时包含在四个核上线程调度的支持。
下图是Fast Model System Canvas中的系统框图,除了CPU还有存储器与PL011 Uart作为输入输入接口。
DS-5 Trace插件
使能Model Trace不需要特别的设置,但理解它如何工作会很有用。DS-5 trace使用Fast Model一个插件来收集Trace信息。该插件在DS-5安装路径可以找到: [DS-5 install dir]/sw/models/bin/MTS.so
该插件需要通过--plugin选项或Fast Model的scx_load_plugin()函数来加载。如之前在DS-5连接Fast Model文中所讨论,连接的方法可以有“Browse”连至已运行仿真,或“Launch”通过DS-5启动仿真。当DS-5启动仿真时它会自动附加参数来加载Model Trace source插件,MTS.so。如果是手动启动仿真,可以通过Browse的方式,此时需要加入相应的命令行或系统调用scx_load_plugin()。
--plugin $DS5_HOME/sw/models/bin/MTS.so
如果插件没有正确加载,连接仿真时会跳出一个错误对话框显示Trace获取不能启动。
总之,只要插件加载就绪,就可以进行Trace收集。
使用软件Trace
在Fast Model上使用软件Trace的步骤并不难。目前只支持指令Trace,数据Trace还没有支持。使能Trace只需在DS-5 Debug coniguration界面中找到DTSL选项旁的Edit按钮,点击得到Trace选项。
将Trace Capture method设置成Fast Models Trace,同时设置其它必要选项。对于Model Trace,推荐的Trace Capture buffer大小设置为最大128MB。
使用Trace最好的方式是设置断点再在之前的buffer中看发生什么情况。Trace窗口最底部显示的是最近执行的指令,最上面显示的最早执行的。
Trace有两个主要视窗,函数调用的时间窗及函数与指令视窗。时间窗示例如下:
指令视窗如下:
指令(I)与函数(F)切换通过绿色标志示出。
Trace窗口右上方有专门的按钮可供调整大小,清理trace及改变视图。稍加练习即可熟练掌握。
有一点不太明显的是race size, 对于四核的R8系统将Trace设为128MB,貌似buffer充满时每个core总是获取10000条指令,这10000条指令来自哪里不清楚。此时通过在右上角的三角形按钮中点出下拉菜单找到“Set Trace Page Size”,可以用来增加显示指令条数,但同时会使用更多的内存。这一点需要自行权衡。
Trace视窗会将执行的指令与软件代码(如果有的话)关联显示出来。因为Fast Model除了指令没加入其他任何时序信息,trace只会显示一个随着每条指令执行而递增的计数。
另外清空trace以及设置断点重启会很有帮助。如果只是单步执行,trace会记录从当前位置起的第一条指令,方便问题分析。
导出Trace数据
Trace的数据可以通过Export按钮导出到文本文件。导出选项有很多,其中包括指令历史记录。
结论
除了软件调试,DS-5可以从定制的Fast Model系统中收集指令trace信息。DS-5 对模型的trace功能可以跟硬件目标及DSTREAM和DSTREAM-ST一样。有时指令trace对于分析软件执行或者如何停在一些未预期的地方很有必要。DS-5与Fast Model方便的联合使用,可以帮助你更好理解软件的执行情况。
中文社区博客
Arm A-Profile构架2022扩展
Zenon Xiu (修志龙)
原文:
Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community
作者:Martin Weidmann翻译:修志龙(Zenon Xiu) 与arm构架授权和生态伙伴一起,arm持续演进其构架,开发新功能以满足现有和新市场的要求…
October 17, 2022
深入理解 Arm A-profile的non-maskable interrupt -NMI
Zenon Xiu (修志龙)
原文:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/a-profile-non-maskable-interrupts
翻译: 修志龙 Zenon Xiu Arm A-profile构架一个长久以来的局限性是:缺乏对non-maskable interrupt (NMI…
August 24, 2022
Arm A-Profile 构架2021扩展
Zenon Xiu (修志龙)
原文:
https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2021
Martin Weidmann
September 8, 2021 翻译注释:Zenon Xiu Arm与arm构架授权公司及生态伙伴一起…
August 17, 2022