DS-5 配合 DSTREAM 调试 Linux 和 Android 内核 ARM DS-5
文档版本 作者 V-0.1-20150124 parker 初审 再审 2
内容目录 1.设备...4 2.硬件接线...4 2.添加新芯片至 DS-5 调试设备列表...4 2.2.说明...4 2.3.步骤...5 2.3.1.创建 DS-5 Configuration Database...5 2.3.2.创建 Platform Configuration File...6 2.3.3.导入数据库...8 3.使用 DSTREAM 仿真器调试 Android 内核...11 3.1.添加内核选项...11 3.2.编译内核...13 3.3.导入内核源码到 DS-5...13 3.4.调试配置...15 3.5.调试界面说明...18 3
1.设备 1 PC 机 x 1 台 2 DS-5 软件开发工具 x 1 套 3 DSTREAM 仿真器 x 1 套 4 ARM 内核开发板 本文以 cubietruck 开发板为例 x 1 套 5 其他相关连接线 注意 以下主要介绍在 Linux 系统下进行操作 Windows 系统下操作方法类似 需要注意 对应其中的路径 2.硬件接线 硬件连线很简单 PC 机和仿真器用 usb 线连接起来 目标板和仿真器除了 VCC 和 GND 外只需把下面 4 根线对应上即可 目标板 仿真器 MS <--------------------------> MS CK <--------------------------> CK DO <--------------------------> DO DI <--------------------------> DI 关于 DSTREAM 详细的硬件资料 请浏览 ARM 官网 http://infocenter.arm.com/help/index.jsp 关于 cubieboard 硬件管脚图 请浏览 cubie 官网 http://cubieboard.org 4
附上 cubietruck 和 DSTREAM 的实物连接图 2.添加新芯片至 DS-5 调试设备列表 2.2.说明 DS-5 支持所有的 ARM 处理器 但是大部分的处理器都需要自行建立了一个支持目标处理器 的数据库 任何被导入到该数据库的 ARM 目标处理器都可以被 DS-5 支持 这个数据库可以 灵活设置目标设备的一些功能 如 trace 和寄存器内存映射 免去很多额外的连接步骤 本文假设 DS-5 安装在目录 /usr/local/ds-5, 如果您还没安装 DS-5 请到 arm 官网下载 http://www.arm.com/zh/products/tools/software-tools/ds-5/ds-5-downloads.php 5
2.3.步骤 2.3.1.创建 DS-5 Configuration Database 1 按照第 2 步先把硬件连接好 在终端输入 $ dbghwconfig 选中扫描到的设备 点击 Connect 跳到写一步 6
点击 Auto Configure 会出现芯片信息 保存配置信息退出即可 注意 这里要针对不同的芯片做特殊的配置 请务必使用我们提供的针对 A20 芯片的配置文件 上面的 步骤只是介绍如何生成配置文件 仅供参考 2 结合 dbghwconfig 生成的配置文件 运行配置数据库导入工具 并使用合适的参数 用法 cdbimporter [-c config_db] [-t destination_db] rvc_file config_db destination_db rvc_file DS-5 主配置数据库的完整路径 新配置数据库的完整路径 硬件配置工具生成的 RVC 文件的完整路径 例如 cdbimporter -c /usr/logcal/ds-5/sw/debugger/configdb -t /home/userx/configdb/home/userx/target.rvc 7
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/parker/cubie_configdb/boards/aw/a7mp2noetm 3 启动 DS-5 打开 Window 菜单下 Preferences 选项 展开 DS-5 选项 选择 Configuration Database 点击 Add 按钮 添加新配置数据库 8
在如上同一界面 点击 Rebuild Database 确保载入新目标数据库 3.使用 DSTREAM 仿真器调试 Android 内核 3.1.添加内核选项 说明 这里以 android 内核为例 linux 内核的操作方法类似 需要注意对应其中的路径和编 译方法 选择 kernel hacking > Kernel debugging 选项 其符号为 DEBUG_KERNEL 9
选择 kernel hacking > compile the kernel with debug info 选项 符号为 DEBUG_INFO 配置完成以后 按两次键 提示退出时选择< Yes >保存并退出 10
3.2.编译内核 编译方法这里不详细说明 具体请阅读 android: http://pan.baidu.com/s/1ddf5cvr linux: http://pan.baidu.com/s/1o6lysds 3.3.导入内核源码到 DS-5 下面要在 DS-5 里面新建一个名为 MYD-SAMA5D3X_kernel 的工程 导入内核源码 打开 DS-5 选择 File > New > Project... 选择 general > Project 在 project name 中输入工程名称 这里名为 cubie_kernel 然后点击 finish 完成工程创建 11
将编译过的内核的所有内容拷贝到工程目录里 例如: cp -a /lichee/linux-3.4/* /work/tools/ds-5-workspace/cubie_kernel 然后右键工程名称 选择 Refresh 刷新 DS-5 中就会显示添加文件 12
3.4.调试配置 打开菜单栏 Run > Debug Configurations..., 展开 DS-5 Debugger 选中 New_configuration 目标 Select target 下选择 Imported > database_file > Linux Kernel and/or Device Device Debug > Debug Cortex-A7x2 SMP 目标 connections 点击 browse 选择搜索到的 DSTREAM 仿真器 配置 Debugger 选项如下 运行控制 Run control 选择 connect only 点选 Execute debugger commands 并在输入框中输入 interrupt add-symbol-file "/work/tools/ds-5-workspace/cubie_kernel/vmlinux" 13
点击 Paths 下面的 Workspace 按钮 选择 cubie_kernel 工程作为 DS-5 源码搜索路径 打开 cubietruck 电源 或者复位 让 u-boot 引导 kernel 然后点击 DS-5 中的的 Debug 按钮开始调试 最后我们会看到以下这样一个界面 表示目标板和仿真器已经成功连接上 并且可以开始调 试了 14
3.5.调试界面说明 这样 DS-5 就开始连接开发板了 相关视图如下 显示当前所有的调试名称 并且可以进行 调试控制. 15
上图中 各控制按钮的作用为 连接目标板 断开连接 删除连接 从 main 函数或者 entry point 调试 继续全速运行 停止运行 单步调试 选择按 C 程序单步调试或者按汇编程序调试 命令栏 可以在 commands 后面敲入命令 让开发板执行 比如敲入 step 就会进行单步调 试 鼠标位于输入框内 按 Alt + / 可获得命令提示 16
汇编程序栏 显示程序对应的汇编程序 地址和操作数等 寄存器栏 显示内核里面的所有寄存器 在调试的时候可以对寄存器进行修改 关于更详细的内容 请查阅 arm 官网的文档 http://infocenter.arm.com/help/index.jsp 17