DS-5简介
1 DS-5 调试器... 3
概述... 3
DS-5 应用程序版... 3
DS-5 Linux & 专业版... 4
5.5版本中的新功能... 4
主要特性... 4
专业的端到端调试器... 4
高级会话控制& 系统视图... 5
非侵入式的跟踪分析... 5
Linux 相关... 6
高效率特征... 6
兼容的调试工具... 7
DSTREAM™ High-Performance Debug and Trace. 7
RVI™ Run-Control Debug Unit 7
1.1DS-5 调试器: 会话控制... 8
调试会话配置... 8
调试控制视图... 8
Source Code & Assembly Stepping. 9
Command Line Interface & Scripting. 9
Breakpoints & Data Watchpoints 10
1.2 DS-5 调试器: 跟踪... 11
非侵入式跟踪... 11
Flexible Trace Visualization. 11
Trace-Based Profiling. 12
1.3 DS-5 调试器: 系统视图... 13
寄存器视图... 13
存储器,变量& 表达式 视图... 13
屏幕视图& Semihosting. 14
1.4 DS-5 调试器: Linux 相关... 15
Context Awareness. 15
远程系统管理... 15
模块视图... 16
2 Streamline. 16
2.1充分利用ARM 支持的系统... 16
2.2益处... 17
代码运行速度更快 负载均衡 资源效率... 17
基于时间的分析: 了解简单分析背后的内容... 17
确定关键路径... 18
3 ARM Compiler 18
3.1The Best-In-Class Compiler for the ARM®Architecture. 18
3.2 Vectorizing Compiler 18
3.3 Development for Severely Cost-Sensitive Devices 19
3.4 Reducing Risk for Linux Application Development 20
3.5 Accurate Code Generation. 20
3.6Targeting Advanced Maths and DSP-Style Solutions 20
4 RTSM 模拟器... 21
4.1实时系统模型... 21
5 GNU 编译器... 22
5.1概述... 22
5.2增强的 GNU 编译器... 22
5.3示例项目... 23
5.4验证... 23
6 Eclipse IDE. 23
6.1Workbench 和 IDE 概述... 23
6.2源代码编辑... 24
6.3到目标的文件传输... 24
6.4窗口管理... 25
Professional system-wide debug environmentfor the ARM Architecture
TheDS-5 Debugger brings together the convenience and productivity of integratedmicrocontroller tools with the power and flexibility of open source tools forLinux. Its Eclipse-based GUI abstracts the complexity of managing varioustarget connection types and delivers an homogeneous experience for softwaredebug at bootloader, kernel, and application levels, while its GDB-like commandline interface adds fast control and scripting capabilities for expert Linuxusers.
Suitable for user space native code debug (i.e. Linux application and sharedlibraries, and native Android™ core), it builds on a standard gdbserverconnection. DS-5 application debugger supports several simultaneous debugsessions, SMP systems, multi-threads, and also supports Android SDK/ADTintegration into DS-5 Eclipse IDE for Java-level debug.
Extends debug support present in DS-5应用程序版to alsoinclude bare-metal and Linux kernel space debug and trace. Run-control debugsupports single- and multi-core configurations
专业的端到端调试器 |
|
|
|
高级会话控制 & 系统视图 |
|
|
|
非侵入式的跟踪分析 |
|
|
|
Linux 相关 |
|
|
|
高效率特征 |
|
|
调试会话配置 |
|
New DS-5 Debugger connections are easily configured through a simple dialog (shown below) where users can select their device/development board from a database of supported platforms, define type of debug session (bare metal, Linux application, or Linux kernel and drivers), load symbol files, set target environment variables, and much more. Once saved, the session configuration can be re-invoked at any time with a simple double-click, saving developers precious time at every debug interaction. |
|
调试控制视图 |
|
Managing debug connections, visualizing context and controlling program execution is very easy with the Debug Control view. Debug connections listed here and can be launched with just one click regardless of connection type (e.g. JTAG, GDB). On the top bar, the run control commands allow developers to execute the program with great flexibility. When the execution is paused, deliberately or because of a breakpoint hit, process, thread, and call stack information is immediately displayed. Finally, the Debug Control view allows multiple simultaneous connections, to one or more targets, and automatically refreshes all other debugger views when the user focuses on a different connection. |
|
Source Code & Assembly Stepping |
|
For developers interested in low level debug or optimization, DS-5 Debugger features a disassembly view that can automatically or manually decode ARM or Thumb instructions. Fully synchronized with program execution, the Disassembly view highlights all instructions matching the selected source code line and can also be used to step through machine instructions, in addition to source code level. From the Debug Control view, program execution can be controlled through run, pause and step in/over/out icons. |
|
Command Line Interface & Scripting |
|
Already familiar with GDB's command line interface? Wish to automate further the debug setup or reproduce recent steps that you cannot remember? DS-5 Debugger implements its own GDB-like command line interface, extending the functionality of GNU's tool and encompassing both JTAG/SWD and GDB connections. DS-5 debugger command prompt can be accessed inside DS-5 IDE or externally, via console, with the former featuring auto-completion and tool-tip help for convenience (screen shot below). All debugger actions, CLI or GUI driven, are displayed in the Commands view and logged in the History view, allowing users to convert any sequence of commands into a script by simply selecting the text, dragging and dropping it on the Scripts view. Saved scripts can then be invoked at any time by the user or automatically executed in the initialization or when a breakpoint is hit. |
|
Breakpoints & Data Watchpoints |
|
Breakpoints and watchpoints have always been an important part of software debug, but DS-5 Debugger has made them more powerful and easy to use. Software and hardware breakpoints can be easily set from the source code and are listed in the Breakpoints view, along with watchpoints. This view is used to disable, enable, remove or configure breakpoints and watchpoints properties to make sure the execution stops in the correct context. The Breakpoint Properties dialog (shown on the right) allows developers to set stop condition expressions, ignore count, run saved scripts and automatically continue executing, or even stop on specific threads only. Similarly, data watchpoints in DS-5 Debugger are very flexible and can be triggered when a memory location is accessed in a particular way, when an expression evaluates true, or when the ignore count is reached. Data watchpoints are set either from the Variables view or Memory view. |
非侵入式跟踪 |
|
When debugging software on many occasions the side effects of a bug is apparent but its root cause is located much earlier in the program execution. ARM CoreSight™ ETM and PTM, supported by DS-5 Debugger, provide non-intrusive program trace that allow developers to review instructions (and the associated source code) as they have occurred. It also offers developers the ability to debug time-sensitive issues otherwise not picked up with intrusive conventional stepping techniques. DS-5 Debugger currently uses DSTREAM to capture trace on the ETB. Support will be added for the 4 GB off-chip trace buffer fitted in this debug & trace probe. |
|
Flexible Trace Visualization |
|
Trace is a valuable tool for debugging and short-time performance analysis. However, there is very little developers can do with only a long list of executed machine instructions. In DS-5, great emphasis has been given to present this data the way high-level language developers can easily make sense of it, for example linking the instructions to the respective source code, showing function-level trace analysis, or offering graphical trace visualizations. |
|
Trace-Based Profiling |
|
Based on trace data DS-5 Debugger also generates timeline charts with information to help developers to quickly understand how their software executes on the target and which functions are using the CPU the most. Offering various zoom levels, the timeline can display a heat map based on the number of instructions per time unit or, at its highest resolution, provide per-instruction visualization color-coded by the typical latency of each group of instructions. |
寄存器视图 |
|
In DS-5 Debugger core, co-processor and peripheral registers are all listed in the Registers view (screenshot). This hierarchical tree view groups registers and bit fields in a logical manner, making it easy for users to navigate its contents. All registers and fields are labelled and validated according manufacturer's official documentation so that users do not need to waste time searching for addresses, bit fields and acceptable values on endless datasheets. Moreover, developers can, at any point, freeze this view keeping all content unchanged for comparison with a later snapshot. |
|
存储器, 变量 & 表达式 视图 |
|
There are many ways to view and modify memory contents using DS-5 Debugger. The Memory view is a traditional linear visualization of a memory space. Very useful for low level debugging, the view can be configured to display the data in different formats (hexadecimal by default) and widths, accepts expressions and symbols as start address and can be used to set data watchpoints at specific memory addresses. The powerful Variables view provides a logical and contextual visualization of content, type, size and address of all local and global variables. Just like the Registers view, this one also highlights in yellow the value of variables that have been modified in the previous step/run (screen shot below). Finally, the Expressions view provides a quick way to evaluate the value of regularly used expressions and variables. |
|
屏幕视图 & Semihosting |
|
To make the life of those responsible for board bring-up / low level debug easy, DS-5 features a screen buffer viewer and an I/O channel through the debug agent. The Screen view brings to life on the host machine the contents of the screen buffer, allowing developers to visualize the video output without any hardware attached. Similarly, semihosting may be used to as a standard I/O for console before other peripherals and their drivers are up. |
Context Awareness |
|
DS-5 Debugger has full visibility of processor cores, OS processes and threads, and call stack. The Debug Control view displays all this information with an intuitive hierarchical layout, on a per-debug-connection basis, making it extremely easy for developers to identify the current context and switch between stack frames. Additionally, DS-5 breakpoints are customized for Linux-based system debug, enabling thread-specific conditional breakpoints and pending breakpoints in kernel modules not yet inserted. |
|
远程系统管理 |
|
The Remote Systems view provides convenient and quick access to services commonly used in Linux-based system development. Building on secure shell connections (SSH), DS-5 embeds a remote file system explorer where files and directories can be fully managed, directly edited and transferred between host and target as easily as a simple drag-and-drop operation. Also in the IDE, remote terminal views can be launched at any time directly from the Remote Systems view. |
|
模块视图 |
|
The Modules view is an OS-specific productivity tool to accelerate debugging activities involving shared libraries and kernel modules. This data panel can be used to visualize and manage shared libraries used by the application being debugged and kernel modules installed since the debugger has been connected. Furthermore, whenever it becomes important to investigate what happens inside one or more of these libraries or modules, developers can easily load their debug symbols using the Modules view. |
ARMStreamline™ 性能分析器为软件开发人员提供了一种直观的方法来优化在 ARM 支持的平台上运行的基于 Linux 的系统。 Streamline 基于低开销的抽样技术,特有以用户为中心的图形界面,可显示从系统范围的 CPU 负载到源代码中的热点等信息,这样,开发人员就能够轻松确定性能瓶颈、多线程问题和一般的资源利用率低下问题。
ARMStreamline 作为 ARMDevelopment Studio 5 的组件发行。
无需调试或跟踪硬件即可执行系统范围的分析 |
Streamline 只需要通过标准 TCP/IP 网络连接到目标以获取和分析系统范围的性能数据。 此外,也无需在目标上加载调试符号, 而是使用包含 Streamline 用于目标的软件的实际生产软件映像来进行分析。 另外,开发人员还可选择在支持源代码级和指令级性能分析的主机上加载焦点二进制的调试符号。
支持嵌入: 占用的内存空间小、CPU 开销低 |
Streamline用于目标的软件可以选择将收集的所有数据通过网络连接流式传输到主机,因此,目标上无需大的缓冲区,并可在几小时内完成性能分析。 而且,还可通过配置抽样频率来控制 Streamline自身的开销,通常将减少 5% 且明确显示在每个分析结果中,以便开发人员对于探针效果不会感到意外。
基于时间的分析: 了解简单分析背后的内容 |
“时间表”视图提供了一种创新的显示方法,其中显示有关目标上运行的软件的信息以及该软件对与性能相关的系统参数的影响,如整体 CPU 负载、高速缓存未命中次数、中断数和内核周期。 使用此视图,开发人员可以轻松地确定与线程序列、负载均衡、异步事件和更多内容相关的问题。 “详细信息”栏是对“时间表”视图的补充,方便开发人员调查任何给定时刻哪些函数/进程占用了更多 CPU 时间,并且只需单击即可将它们与性能计数器相关联。
确定关键路径 |
每个函数的行为千差万别,具体取决于它所在的调用链。“调用路径”视图显示出按进程和线程汇总的分层 CPU 使用情况统计信息,以便开发人员可以检查在特定线程内调用函数或库与从其他位置调用它们相比是否要占用更多 CPU 时间。 调用图形是以图形方式映射函数之间的关系,帮助开发人员更好地了解软件流。
TheARM Compiler in ARM DS-5™ Professional Edition is the only commercial compilerco-developed with the ARM processors and specifically designed to optimallysupport the ARM architecture. It is the result of 20 years of development andis recognized as the industry standard C and C++ compiler for buildingapplications targeting the ARM, Thumb®, Thumb-2, VFP and NEON™ instructionsets.
TheARM Compiler v4.1 reduces the best codesize by up to 5% and improves the bestperformance by 10-15% when compared to RVDS 4.0 compiler.
Inaddition to the ARM Compiler, the state-of-the-art NEON Vectorizing Compiler,enables the automatic generation of ARM NEON SIMD code sequences from standard Cand C++ code. The NEON Vectorizing Compiler can speed-up critical multimediakernels by 4X, resulting in a 2X overall application performance increase.
Tofurther improve code density for the range of ARM processor-based applications,the ARM Compiler features an optional microlib C library (a subset of the ISOstandard C runtime library), which has been minimized in size formicrocontroller applications. The microlib C library achieves a 92* percentreduction in runtime library code size.
Whencombined with a Cortex™-Mclass processor, the microlib C library provides a completely C-baseddevelopment environment without the need to revert to assembly language - evenfor interrupt service routines. This removes the need for specific knowledge ofthe ARM architecture.
*Memorysavings provided by the microlib C library will depend on the application
TheABI for the ARM architecture created by the ARM Compiler team is alsoimplemented in the GNU compiler for ARM. This enables the creation and use oflibraries that can be shared between development environments.
Thecompatibility between the GNU Compiler and the ARM Compiler means that Linuxapplications can be built using the ARM Compiler. The ARM Compiler providesyour development team with high-quality support and the performance, stabilityand code size benefits you expect from a quality commercial toolkit.
Manyalgorithms are now automatically generated from mathematical modeling softwareusing floating point representations for data. Therefore, the accuracy of IEEEbit representation and floating point representations is essential for correctoperation of the generated code. The default library selected by the ARMCompiler offers a full complement of C/C++ functionality, including C++exception handling and IEEE 754 floating point support. The compiler canoptionally generate code to use either software floating point or any of the ARMhardware floating point units. Independent of the method used, the compilergenerates full IEEE 754-compliant code. This means that your application willgenerate exactly the same data regardless of the target processor, speedingporting from one device to another.
Intrinsicfunctions provide support for common code sequences or instructions that do notmap well onto high-level languages.
Wherepossible, intrinsics are emulated on early processors.
通过 DS-5 应用版本中的 Cortex-A8 RTSM,不需要硬件目标就可以开发 Linux 应用程序。 RTSM 是 ARM 硬件平台的一个实时模拟模型,其中包括运行复杂的操作系统和应用程序所需的处理器、内存控制器和外设。
借助于 Cortex-A8 RTSM,不需要任何硬件就可以基于ARM 处理器开发 Linux 应用程序。
DS-5 包括一个移植到 Cortex-A8 RTSM 的基于 ARM 处理器的 Linux 发行版示例。 当从 Eclipse 中启动时,此模型自动引导 Linux 并进入可加载和调试应用程序的状态。
GNU 编译器 (GCC) 是 DS-5 中的入门级 C/C++ 编译器。
预置且经过验证的 GNU 编译器版本,提供对 ARM 体系结构的 ARM Linux 增强支持。
为了使您快速开始 Linux 开发,DS-5 提供一个完整的 Linux 示例,该示例可以在 ARM Versatile 板或 Cortex-A8 SoC 的集成RTSM 模型上运行。
预置的 GNU 编译工具已经过广泛验证,以确保正确的操作,包括:
DS-5 基于标准 Eclipse 开发环境,提供一流的窗口管理、项目管理和 C/C++ 源代码编辑工具。
用户可以将 DS-5 安装为独立的 Eclipse 或用作现有 Eclipse 环境的插件。
Eclipse IDE 的功能齐全C/C++ 源代码编辑器可以帮助您将更多时间用于编写代码,减少更正语法错误的时间。
DS-5 包括一个远程系统浏览器 (RSE) 视角,可以将应用程序和库轻松传输到目标上的 Linux 文件系统。
Eclipse 中的灵活窗口管理系统使您可以充分利用可视工作区。