长平狐 发布于 2013/06/03 14:56
阅读 472
收藏 0



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

1 DS-5 调试器

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.

DS-5 Linux& 专业版

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


  • Debug and trace support for bare-metal SMP platforms
  • Support for CoreSight™ TPIU (off-chip trace buffer)     with DSTREAM™ (up to 4 GB)
  • Support for Program Trace Macrocell (PTM) trace streams
  • Memory view has the ability to import and export memory     in a variety of formats
  • Additional devices and development platforms on the Device Configuration     Database for out-of-the-box JTAG debug compatibility




  • Single intuitive user interface for all software       layers, from bootloader to native application debug  
  • Debugs code generated by ARMCC and GCC compilers  
  • Professionally supported solution, bringing       reliability and responsiveness for software development  
  • One license for all supported ARM application cores 

高级会话控制  & 系统视图 

  • Control multiple simultaneous debug sessions, to one       or more targets, from a single debugger environment  
  • Run and stop mode debugging seamlessly supported  
  • Full system visibility: memory, CPU registers,       peripheral registers, frame buffer (screen), and more 


  • Instruction (ETM) and instruction flow (PTM) tracing       with source code synchronization  
  • Instruction and function views for trace log analysis  
  • Up to 4 GB off-chip trace buffer with DSTREAM 

Linux 相关  

  • Linux kernel and user space context awareness,       including process and threads  
  • Modules view, listing dynamically loaded modules and       shared libraries 


  • Automated workflow: connect, download, and run  
  • GDB-like command line console and scripting       capabilities  
  • Complete target file system explorer  
  • Device database, and fast flash memory programming 


DSTREAM™High-Performance Debug and Trace


  • Run control debug and trace unit supporting all ARM and     Cortex processors
  • USB 2.0 and Ethernet interface allows direct and remote     connections from the host PC
  • Support for JTAG and Serial-Wire Debug target     interfaces
  • Code download at speeds of up to 2500 KBytes per second
  • JTAG clocks of up to 60 MHz provide fast software     upload over the existing debug port
  • 16-bit wide trace capture at 300 MHz DDR (600 Mbit/s     per pin)
  • Flexible trace clock positioning (relative to trace     data)
  • Large 4 GB trace buffer enables long-time trace on fast     target
  • Device bring-up and test utilities
  • Support for Virtual Ethernet link over JTAG
  • Third party IP and debugger support

RVI™ Run-Control Debug Unit

  • Run control debug unit supporting all ARM and Cortex     processors
  • USB 2.0 and Ethernet interface allows direct and remote     connections from the host PC
  • Support for JTAG and Serial-Wire Debug target     interfaces
  • Device bring-up and test utilities
  • Support for Virtual Ethernet link over JTAG
  • Third party IP and debugger support


1.1DS-5 调试器: 会话控制




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.


1.2 DS-5 调试器: 跟踪




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.


1.3 DS-5 调试器: 系统视图




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.


1.4 DS-5 调试器: Linux 相关


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.


2 Streamline

2.1充分利用 ARM 支持的系统

ARMStreamline 性能分析器为软件开发人员提供了一种直观的方法来优化在 ARM 支持的平台上运行的基于 Linux 的系统。 Streamline 基于低开销的抽样技术,特有以用户为中心的图形界面,可显示从系统范围的 CPU 负载到源代码中的热点等信息,这样,开发人员就能够轻松确定性能瓶颈、多线程问题和一般的资源利用率低下问题。

ARMStreamline 作为 ARMDevelopment Studio 5 的组件发行。


代码运行速度更快 负载均衡 资源效率




  Streamline 只需要通过标准 TCP/IP 网络连接到目标以获取和分析系统范围的性能数据。 此外,也无需在目标上加载调试符号, 而是使用包含 Streamline 用于目标的软件的实际生产软件映像来进行分析。 另外,开发人员还可选择在支持源代码级和指令级性能分析的主机上加载焦点二进制的调试符号。


支持嵌入: 占用的内存空间小、CPU 开销低


Streamline用于目标的软件可以选择将收集的所有数据通过网络连接流式传输到主机,因此,目标上无需大的缓冲区,并可在几小时内完成性能分析。 而且,还可通过配置抽样频率来控制 Streamline自身的开销,通常将减少 5% 且明确显示在每个分析结果中,以便开发人员对于探针效果不会感到意外。


基于时间的分析: 了解简单分析背后的内容


“时间表”视图提供了一种创新的显示方法,其中显示有关目标上运行的软件的信息以及该软件对与性能相关的系统参数的影响,如整体 CPU 负载、高速缓存未命中次数、中断数和内核周期。 使用此视图,开发人员可以轻松地确定与线程序列、负载均衡、异步事件和更多内容相关的问题。 “详细信息”栏是对“时间表”视图的补充,方便开发人员调查任何给定时刻哪些函数/进程占用了更多 CPU 时间,并且只需单击即可将它们与性能计数器相关联。




  每个函数的行为千差万别,具体取决于它所在的调用链。“调用路径”视图显示出按进程和线程汇总的分层 CPU 使用情况统计信息,以便开发人员可以检查在特定线程内调用函数或库与从其他位置调用它们相比是否要占用更多 CPU 时间。 调用图形是以图形方式映射函数之间的关系,帮助开发人员更好地了解软件流。

3 ARM Compiler

3.1The Best-In-Class Compiler forthe ARM® Architecture

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.

  • ARM processors are designed to best execute code     generated by the ARM Compiler
  • ARM Compiler enables the new processor features in all     the ARM processors
  • The ARM Compiler supports building of Symbian OS and     ARM Linux applications and libraries

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.

3.2 Vectorizing 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.

3.3 Development for SeverelyCost-Sensitive Devices

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

3.4 Reducing Risk for LinuxApplication Development

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.

3.5 Accurate Code Generation

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.

3.6Targeting Advanced Maths andDSP-Style Solutions

Intrinsicfunctions provide support for common code sequences or instructions that do notmap well onto high-level languages.

  • ETSI intrinsics provide telecom primitives, which are     used in a number of example algorithms
  • TI C55 intrinsics provide for support for algorithms     written to exploit TI-specific extensions Cortex-M4 intrinsics for     targeting the onboard DSP
  • Other intrinsics allow access to all ARM hardware     instructions not easily accessible from C, reducing the need to write code     in assembly language

Wherepossible, intrinsics are emulated on early processors.

4 RTSM 模拟器


通过 DS-5 应用版本中的 Cortex-A8 RTSM,不需要硬件目标就可以开发 Linux 应用程序。 RTSM 是 ARM 硬件平台的一个实时模拟模型,其中包括运行复杂的操作系统和应用程序所需的处理器、内存控制器和外设。

借助于 Cortex-A8 RTSM,不需要任何硬件就可以基于ARM 处理器开发 Linux 应用程序。

  • 在典型的桌面 PC 上模拟速度超过 250MHz
  • 将使用主机 PC 上的资源模拟外设接口,包括 LCD 控制器、键盘、鼠标、触摸屏、UART 和以太网控制器

DS-5 包括一个移植到 Cortex-A8 RTSM 的基于 ARM 处理器的 Linux 发行版示例。 当从 Eclipse 中启动时,此模型自动引导 Linux 并进入可加载和调试应用程序的状态。

5 GNU 编译器


GNU 编译器 (GCC) 是 DS-5 中的入门级 C/C++ 编译器。

5.2增强的 GNU 编译器

预置且经过验证的 GNU 编译器版本,提供对 ARM 体系结构的 ARM Linux 增强支持。

  • 为 ARM Cortex 处理器上使用的常用混合 32/16 位 Thumb®-2 指令集提供更好的支持
  • 支持最新的 ARM Cortex-A 系列处理器 -     Cortex-A5、Cortex-A8 和 Cortex-A9
  • 基于 GCC 4.4.1


为了使您快速开始 Linux 开发,DS-5 提供一个完整的 Linux 示例,该示例可以在 ARM Versatile 板或 Cortex-A8 SoC 的集成RTSM 模型上运行。


预置的 GNU 编译工具已经过广泛验证,以确保正确的操作,包括:

  • 已完成 FSF GNU 编译器集合回归测试套件
  • 通过生成 ARM 嵌入式 Linux 示例进行验证

6 Eclipse IDE

6.1Workbench和 IDE 概述

DS-5 基于标准 Eclipse 开发环境,提供一流的窗口管理、项目管理和 C/C++ 源代码编辑工具。

用户可以将 DS-5 安装为独立的 Eclipse 或用作现有 Eclipse 环境的插件。


Eclipse IDE 的功能齐全C/C++ 源代码编辑器可以帮助您将更多时间用于编写代码,减少更正语法错误的时间。

  • 列出函数、变量和声明的大纲视图
  • 突出显示您的 C/C++ 源代码中的语法错误
  • 针对 C/C++ 和 ARM/Thumb/Thumb2 汇编的可配置语法颜色方案和代码格式
  • 完整的更改历史记录,可以与常见的源代码控制系统(包括 CVS 和 SVN)集成


DS-5 包括一个远程系统浏览器 (RSE) 视角,可以将应用程序和库轻松传输到目标上的 Linux 文件系统。

  • 提供到目标的 FTP 连接,可以浏览其文件系统、创建新文件夹以及从主机拖放文件
  • 通过在 FTP 视图中双击相应的文件来打开目标的文件系统上的文件。 在 Eclipse 中编辑它们并将它们直接保存到目标的文件系统
  • 通过 Shell 和终端窗口可以在目标系统上运行 Linux 命令,而无需显示器和键盘
  • 显示在目标上运行的进程列表


Eclipse 中的灵活窗口管理系统使您可以充分利用可视工作区。

  • 支持多个源代码和调试器视图
  • 根据需要排列您的窗口:浮动(分离)、停靠、选项卡式或最小化到“快速视图”栏
  • 通过将分离的窗口拖放到其他显示器支持多屏幕设置