热门排行
简介
ARM Development Studio 5简称ARM DS-5,是一款非常好用且功能强大的开发工具,该工具针对arm系列的处理器打造,可以完美支持linux、android等平台的工具开发等操作,ARM DS-5为用户提供了跟踪、系统范围性能分析器、实时系统模拟器和编译器的应用程序和内核空间调试器等功能,软件提供了灵活的集成开发环境,并可以与第三方插件完美兼容,新版本还增强了对新Cortex-A7处理器的支持,需要此款工具的朋友们欢迎前来下载使用。
ARM DS-5特色
1、灵活的集成开发环境
定制的 Eclipse IDE,与第三方插件兼容
功能强大的 C/C++ 编辑器和项目管理器
为 ARM Linux 进行了验证的 GNU 编译工具
集成的生产力实用工具,例如远程系统浏览器、SSH 和 Telnet 终端等
2、端到端调试器
启动加载程序、内核和用户空间调试
非侵入性指令跟踪,包括汇总的配置文件
用于更快、更简单调试周期的自动的调试会话
具有设备配置数据库的一次单击即可完成的 JTAG 调试配置
3、Streamline 性能分析器
无需 JTAG 探针的系统范围的分析
按进程、线程、功能和源代码行的 CPU 使用情况统计信息
性能相关事件(例如高速缓存未命中次数、中断数)与软件执行的即时关联
关键路径标识和动态内存使用情况分析
4、实时模拟器
在主机上的 Linux 应用程序调试
预先与 ARM 嵌入式 Linux 一起加载的 Cortex-A8 系统模型模拟器
高于 250 MHz 的典型模拟速度
新版功能
1、支持 Ubuntu 桌面版10.04 32位主机
2、ARM编译器
支持Cortex-A7
3、DS-5调试器
自动连接到由 NDK 生成本地代码的 Android 目标板。
支持 Cortex-A7 处理器的指令跟踪。
支持CADI,允许调试器连接外部仿真模型。
可捕捉选定代码段的指令踪迹。
4、Streamline
支持内从核空间注释。
捕捉时间毫秒以下分辨率, 如注释和上下文切换。
命令行接口可导出时间轴数据。
时间线图表观察区的点可以定住以更方便结果对比。
5、配置数据库
预先配置以下平台的调试支持:
ARM ARM1156T2F-S CoreTile, Versatile Express Cortex-A15x2 SMM
Atmel AT91SAM9G25 and AT91SAM9X35
Mindspeed Transcede 4000
NXP LPC3131, LPC3141 and LPC3152
使用教程
1、在计算机的一个可读写目录下创建“configdb”文件夹。
例如,在Linux系统下:
/home/userx/configdb
或在Windows系统下:
D:/configdb
2、从开始菜单选择 所有程序 > ARM DS-5 > Debug Hardware > Debug Hardware Configuration。
3、点击绿色“Scan”按钮,扫描DSTREAM仿真器,如下扫描到通过USB连接DSTREAM仿真器。
4、点选该扫描到的仿真器,点击“Connect”连接,再点击“Auto Configure”自动识别目标设备,如果是DS-5预置的芯片,会弹出平台选择对话框,点击“Cancel”取消。如下图是识别到的设备信息。
说明:如果无法识别,可尝试将“Clock Speed”调低。如果还是无法识别,可联系ARM中国区代理商米尔科技寻求技术支持。
5、选择File > Save菜单,保存配置文件值configdb文件备下一步使用。
例如: /home/userx/target.rvc
3、运行配置数据库导入工具(Configuration Database Importer utility),并使用合适的参数。
用法:
cdbimporter [-c config_db] [-t destination_db] rvc_file
config_db: DS-5主配置数据库的完整路径
destination_db: 新配置数据库的完整路径
rvc_file: 硬件配置工具生成的RVC文件的完整路径
例如:
cdbimporter -c /home/userx/DS-5/sw/debugger/configdb -t /home/userx/configdb /home/userx/target.rvc
注意:如果是在window下生成,则该命令中的路径需要用双引号括起来,如:“D: configdb”。
Select a core to modify (enter the index and hit return) or press enter to continue. [] : PRESS ENTER
Enter Platform Manufacturer
[default:'Imported'] > COMPANYX
Enter Platform Name
[default:'target'] > PLATFORMX
导入工具生成的文件保存在指定的目标数据库中,本教程生成在:
/home/userx/configdb/boards/COMPANYX/PLATFORMX/
4、启动DS-5调试器(/home/userx/DS-5/bin/eclipse),打开“Window”菜单下“Preferences”选项,展开DS-5选项,选择“Target Database”。点击“New…”按钮,添加新配置数据库,使用“Up”和“Down”按钮移动条目,确保最新条目在最上方。
5、在如上同一界面,点击“Rebuild Database...”,确保载入新目标数据库。
通过以上步骤,在DS-5的目标下拉选项中就看到新添加的目标。
仿真器调试教程
(1)从开发菜单选择“ARM DS-5” >“Eclipse for DS-5”打开DS-5,或者直接双击DS-5桌面快捷图标(需自己创建)打开。然后点击“Go to the workbench”进入DS-5的工程管理界面。
(2)选择菜单栏 File > New > Project,在弹出的对话框中选择“C/C++”下的“C Project”,再点击“Next”。
(3)在C++ Project对话框中,“Project name”中输入工程名称,我们这里以“MYD-SAMA5D34”作为工程名称,再点选“Bare-metal Executable”下的“Empty Project”,点击“Next”进入下一步,如下图:
(4)进入下一步后,点击“Finish”完成新建并进入工作界面。
此时在DS-5左侧的工程管理器(project explorer)会看到新创建的工程“MYD-SAMA5D34”,展开会看到”Includes”下自动包含了一些目录,这些是我们编译的时候要用到的,DS-5已经自动添加好了。
(5)再选择菜单File > New > source file”,弹出对话框中的“source file”中输入文件名为”main.c”的C文件,点击“Finish”完成。
(6)自动打开“main.c”文件后(或者双击打开),在注释后面添加mian()函数代码并保存。
添加后如下图:
(7)接下来我们还要创建一个“scatter”文件。择菜单File > New >“Other…”,在弹出的对话框中选择“scatter file editor” > “scatter file”,点击“next”进入下一步。
(8)在父项目框中选择刚刚创建的工程“MYD-SAMA5D34”,“File name”栏输入scatter文件的名称,我们这里用“sama5d3”(该文件可以用于MYD-SAMA5D3X系列开发板,包括MYD-SAMA5D31、MYD-SAMA5D33、MYD-SAMA5D34、MYD-SAMA5D35)。点击“finish”完成,如下图。
(9)DS-5自动打开“sama5d3.scat”文件,我们在文件中输入如下的信息,具体可参考
用户手册中的SRAM地址。输入完成后如下图。
(10)然后我们要配置一下编译选项。点击“MYD-SAMA5D34”工程,选择菜单“Project” > “Properties”打开“Properties for MYD-SAMA5D34”对话框。如下图,显示工程的一些基本信息。
(11)选择左侧的“C/C++ Build”,点选其中的“general makefile automatically”(默认也是选择),表示使用DS-5自动生成的Makefile文件。如果要用自己手动编写的makefile文件,需要取消点选该项。
(12)点击“C/C++ Build”前面的三角符号,点击“Settings”选项,配置右侧的“Tool Settings”编译工具。
“ARM C Compiler” > “Code Generation” > “Target CPU (--cpu)”配置为“Cortex-A5”。
“ARM Assembler” > “Code Generation” > “Target CPU (--cpu)”配置为“Cortex-A5”。
“ARM Linker” > “Image Layout” > “Scatter file (--scatter)”选择上面创建的scatter文件的地址,如下图。
配置好后,点击“OK”完成并返回工程管理界面。
(13)点选工程管理器(Project Explorer)下的“MYD-SAMA5D34”工程,选择菜单”Project” >“Build Project”编译工程。此时DS-5会自动在“Debug”目录下创建makefile文件,并按照这些规则进行编译。
如果Problems栏下没有“Error”提示,说明编译成功,同时在“MYD-SAMA5D34”工程的“Debug”目录下生成二进制文件“MYD-SAMA5D34.axf”,如下图。
M2 连接开发板
(14)连接好DSTREAM仿真器,包括DSTREAM仿真器5V
线、转接板、USB线(或网线)。(15)连接好MYD-SAMA5D34开发板,包括开发板5V电源线、DSTREAM上的20PIN-JTAG调试线、以及串口线。
(16)给开发板上电,通过串口终端将开发板停止在“u-boot”界面,如下图。这样做是防止开发板进入系统,影响裸机调试。
M3 调试配置
(16)点选工程管理器(Project Explorer)下的“MYD-SAMA5D34”工程,选择菜单“Run” > “Debug Configurations…”,在弹出的对话框中右击“DS-5 Debugger”,选择“New”新建一个调试选项。
(17)在新建的调试选项中,将调试选项名称改为“MYD-SAMA5D34_Debug”。在“Connection”选项的filter platform中输入“SAMA5D3”,然后选择过滤后 “SAMA5D3x”下 “Bare Metal Debug” > “Debug cortex-a5 via DSTREAM/RVI”。选项的目的是,通过DSTREAM对MYD-SAMA5D34开发板进行裸机调试。如下图。
然后再点击“connections”中的“Browse…”按钮,选择DS-5搜索到的DSTREAM仿真器,选择后点击“OK”使用该仿真器,如下图。
(18)点击调试选项名称下方的“File”选项,在“Target Configuration”下点击“Workspace…”按钮,然后从“Open”对话框中选择上面生成的二进制文件。
添加后如下图,然后选择“Load symbols”。
(19)点击“Debug”按钮开始调试。出现提示是否切换到调试窗口,点击“Yes”即可。
(20)如果连接成功,可看到蓝色标示的“connected”文字,同时调试控制窗口显示开发板相应的内核。如下图,DS-5已经连接上了开发吧,并且显示当前连接SAMA5D34里面的第一个Cortex-A5核(如果有多个核,会用#1、#2等标注多核的序号)。
(21)点击如上图的绿色三角形“ ”,程序就会全速运行,在“App console”栏会打印从MYD-SAMA5D34开发板打印的信息。如下图。
M4 调试视图详解
(21)还是上面的图 “调试控制栏”,显示当前所有的调试名称,并且可以进行调试控制。
上图中,各控制按钮的作用为:
连接目标板
断开连接
删除连接
从main函数或者entry point调试
继续全速运行
停止运行
单步调试
选择按C程序单步调试,或者按汇编程序调试
(22)命令栏,可以在“commands”后面敲入命令,让开发板执行,比如敲入“step”就会进行单步调试。鼠标位于输入框内,按“Alt + /”可获得命令提示。
(23)历史栏,显示所有历史使用的命令。
(24)变量栏,显示程序使用的所有变量,在调试的时候可以进行修改。
(25)寄存器栏,显示内核里面的所有寄存器,在调试的时候可以对寄存器进行修改。
(25)函数栏,显示程序使用的所有函数,以及它们的开始和结束地址。
(25)源代码栏,显示源代码。
(26)汇编程序栏,显示程序对应的汇编程序、地址和操作数等。
(27)存储器栏,通过输入地址和大小,可以看到相应存储器的内容。如下图,地址输入“0x00300000”(内部SRAM地址),大小输入“1024”,就可以看到对应的存储地址的值。
(28)应用程序控制台,这里显示了通过半主机机制从开发板(如MYD-SAMA5D34)返回的打印信息。
(29)另外,还有一个比较重要的栏目“Progress”。有时候调试配置不正确,DS-5会一直“connecting”,从“调试控制”栏目又无法停止,这时候就要通过“progress”来停止了,如下图使用进度条后面的红色按钮就可以停止了。
“Progress”可以从菜单栏“window” > “show view” > “Progress”调出。
以上就是使用ARM DS-5和DSTREAM仿真器对裸机进行调试的内容。
更新说明
ARM DS-5新增功能:
1、DS-5 调试器:可访问 NEON 寄存器,能够导出跟踪数据,增强了内联支持,具备 Linux 内核跟踪筛选功能等。
2、Streamline:用于分析报告的基于时间的筛选,用于时间测量和快速热点分析的可伸缩、跨部分的标记,独立的共享库分析,以及支持 CPU 热插拔
3、配置数据库:针对以下附加设备的现成的调试支持:(设备的完整列表)
Atmel AT91SAM9G15 / AT91SAM9G20 / AT91SAM9X25
Freescale i.MX25 / i.MX535
NXP LPC3220 / LPC3230 / LPC3240
Samsung S5PC100 / S5PC110 / S5PV210
TI OMAP3430 / OMAP3630