ARM DS-5实战开发从入门到精通

-
【作 者】刘照华 Paul Black 蒙国造 编
【I S B N 】978-7-5170-3700-2
【责任编辑】张玉玲
【适用读者群】科技
【出版时间】2015-10-25
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】196
【千字数】254
【印 张】12.25
【定 价】¥38
【丛 书】ARM官方开发工具丛书
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
ARM DS-5是ARM官方推出的软件调试集成开发环境。本书详细介绍了DS-5的使用和结合硬件DSTREAM完成嵌入式系统的调试,从最基本的安装、使用到调试和跟踪功能,再到更高级的CoreSight系统设计和芯片启动,由浅入深、理论结合ARM开发板实例,很好地阐述了DS-5的功能和使用。
本书主要由ARM内部员工编写,融入了客户现场支持时的常见问题和解决方案,并提供了基于ARM开发板的实战案例,一步步地引导开发者,帮助开发者发现和解决问题。
本书适用于所有ARM开发者,即使是以前从未接触过DS-5的开发者也能很快掌握它的使用,而已经有DS-5使用经验的开发者则可在本书中获取到更多更高级的使用技巧,提高实际操作和解决问题的能力。
真正来自ARM公司一线资深嵌入式及测试专家的技术分享
从实验环境的安装调试,到软件基本功能介绍,再到ARM开发板实战演练,内容由浅入深
从U-boot、Linux内核和设备驱动,到Linux应用程序的调试,再到对整个系统的性能剖析,讲解深入浅出
特别适合于从事底层驱动、Linux和Android嵌入式开发工作的人员
ARM DS-5推向市场已经有些年头了,这是一款功能强大、基于ARM处理器的嵌入式开发工具,可以帮助开发人员完成从代码管理和编译、底层的bootloader和驱动代码的调试到Linux/Android上层应用程序的调试和整个系统性能优化等一系列工作。
将DS-5的使用编写成书,既属偶然,又有其必然。因为在我对客户进行现场技术支持时,发现还有不少朋友对DS-5的使用和其功能特色比较陌生,这促使我去将DS-5的使用整理成文档,加上市场上介绍DS-5的书籍非常少,并且ARM内部还没有出过类似的书籍,于是我开始按照写书的要求编写相关的材料。
本书的内容材料大部分来源于ARM官方发布的英文文档,同时加入了现场支持时的经验总结、碰到的问题及其解决方案,真正做到理论和实践相配合。
本书全面介绍了DS-5的功能和使用,特别适合从事底层驱动、Linux和Android嵌入式开发的人员。全书共11章,分为以下4个部分:
(1)第1~4章是DS-5的使用入门篇,系统介绍了DS-5的基本功能和硬件JTAG调试器DSTREAM的安装和使用,介绍了在Windows和Linux环境下许可证的申请和管理,最后给出一个DS-5的快速使用实例。
(2)第5~7章是DS-5的使用进阶篇,进一步阐述了DS-5使用方法,分别介绍如何完成对裸机系统、Linux内核和驱动程序、Linux/Android应用程序的调试和跟踪,重点介绍如何控制程序的运行和调试嵌入式系统,基本覆盖开发过程中常见的调试问题和技术手段,因此希望开发者能理解和掌握这部分内容,在使用DS-5调试的过程中随时查阅。
(3)第8章和第9章是DS-5的高级篇,详细介绍了ARM CoreSight调试系统,包括CoreSight系统中各个组件的功能和典型的CoreSight系统设计,介绍了DS-5自带的PCE工具(平台配置编辑器)和探测CoreSight系统,并生成适合DS-5调试使用的数据库,对数据库中的主要文件进行了详细阐述。
(4)第10章和第11章是实战篇,将前面各章介绍的技术在实际的ARM开发板上进行实战演练,内容包括U-Boot、Linux内核和设备驱动、Linux应用程序的调试、Streamline的使用方法、对整个系统的性能剖析和DS-5使用过程中常见的问题及解决办法。
在本书编写过程中,单位的领导和同事们给予我恒久的关心、鼓励和支持;Paul Black给予我深层次的培训;深圳米尔科技有限公司鼎力相助,完成第10章和第11章的写作;我的妻子和女儿给予我鼓励和支持,在此一并表示感谢。
由于编写时间紧迫,加之作者水平有限,书中难免有疏漏和错误之处,敬请广大读者评批指正。
刘照华于ARM上海
2015年9月
前言
第1章 DS-5概述 1
1.1 DS-5介绍 1
1.2 DS-5 debugger调试器 2
1.3 DS-5虚拟平台FVP 3
1.4 DS-5的编译器 3
1.4.1 ARM编译器5.0 3
1.4.2 ARM编译器6.0 4
1.4.3 GNU编译器 4
1.5 DS-5 Streamline 5
1.6 DS-5硬件调试器DSTREAM 6
1.7 DS-5的版本管理 7
第2章 DS-5的安装和启动 8
2.1 主机系统需求 8
2.2 DS-5调试系统需求 9
2.3 DS-5的安装 9
2.3.1 DS-5的Linux安装 9
2.3.2 DS-5的Windows安装 10
2.4 DS-5的启动 10
2.5 DS-5工作台窗口简介 11
第3章 DS-5许可证管理和使用 13
3.1 DS-5许可证的申请 14
3.2 单机锁定版许可证的安装 16
3.2.1 在Windows下手动添加许可证 17
3.2.2 在Linux/UNIX下手动添加许可证 17
3.3 网络版许可证的安装 18
3.4 网络版许可证服务器端的设置 19
3.4.1 FlexNet服务器软件的安装 19
3.4.2 使用图形化界面启动Windows
下的服务器 20
3.4.3 使用命令行启动Windows下的
服务器 21
3.4.4 使用命令行启动Linux下的服务器 21
3.4.5 停止FlexNet服务器 21
第4章 DS-5快速使用实例 23
4.1 导入项目 23
4.2 运行FVP实例 25
第5章 DS-5调试器的使用 27
5.1 调试器的概念 27
5.2 DSTREAM固件维护 28
5.2.1 DSTREAM固件升级 29
5.2.2 DSTREAM 的配置 31
5.3 配置和连接调试目标 32
5.3.1 用gdbserver对Linux目标建立
连接 32
5.3.2 配置FVP的连接以调试Linux
应用 35
5.3.3 配置连接调试Linux内核和驱动 36
5.3.4 配置连接到裸板调试 38
5.3.5 配置连接到裸板上的代码跟踪器 39
5.3.6 配置Rewind连接调试Linux应用 40
5.3.7 使用gdbserver调试Android应用
和库 44
5.4 使用FVP调试和跟踪实例 46
5.5 导出已有的配置 50
5.6 导入已有的启动配置 51
5.7 断开目标对象连接 53
第6章 控制程序的运行 54
6.1 加载镜像文件到调试目标 54
6.2 加载调试信息到调试器 55
6.3 关于传递参数到main() 56
6.4 运行镜像文件 57
6.5 断点和监视点 57
6.5.1 设置或删除执行断点 58
6.5.2 设置或删除数据监视点 59
6.5.3 查看数据监视点的属性 60
6.5.4 从文件中导入断点设置 60
6.5.5 导出断点设置到文件 61
6.6 条件断点的使用 61
6.6.1 设置条件断点时的考虑因素 61
6.6.2 给已有断点设置条件 62
6.7 关于挂起断点和监视点 63
6.8 设置跟踪点 63
6.9 设置Streamline的开始和停止点 64
6.10 单步调试 64
6.11 处理UNIX信号 65
6.12 处理器异常处理 66
6.13 配置调试器路径替代规则 67
6.14 程序调用stack 69
6.15 代码跟踪 70
第7章 调试嵌入式系统 72
7.1 调试访问AHB、APB和AXI总线 72
7.2 关于虚拟和物理地址 73
7.3 调试管理程序 73
7.4 调试big.LITTLE大小核系统 74
7.5 调试裸机对称多处理系统 75
7.6 调试多线程应用程序 76
7.7 调试共享库 77
7.8 调试Linux内核 78
7.9 调试Linux内核模块 79
7.9.1 调试内嵌模块 79
7.9.2 调试可加载模块 79
7.10 调试TrustZone 79
7.11 调试UEFI 80
7.12 关于Rewind应用 81
7.13 调试内存管理单元MMU 81
7.14 调试缓存Cache 82
第8章 使用DS-5启动和配置芯片平台 84
8.1 CoreSight 系统介绍 84
8.1.1 调试访问接口DAP 84
8.1.2 跟踪源Trace Source 85
8.1.3 跟踪链接Trace Link 86
8.1.4 跟踪输出Trace Sink 86
8.1.5 典型的CoreSight系统设计 87
8.2 PCE工具的使用 89
8.3 导入数据库到DS-5 92
8.4 sdf文件分析 93
8.5 xml文件分析(refer to Paul
Snowball.docx training doc) 94
8.5.1 xml文件头 94
8.5.2 项目调试类型 94
8.5.3 调试实体 95
8.6 DTSL介绍 95
8.6.1 创建Jython对象 95
8.6.2 DTSL选项对话框 98
第9章 Snapshot设计和使用 100
9.1 Snapshot初始化文件 100
9.2 CoreSight访问库 101
9.3 CoreSight访问库的移植 102
9.4 使用实例 102
第10章 DS-5与Z-Turn板开发实例 105
10.1 Z-Turn Board硬件平台介绍 105
10.1.1 平台概述 105
10.1.2 JTAG调试接口 107
10.1.3 启动方式 108
10.1.4 硬件连接 108
10.2 简单裸机工程创建及调试 109
10.2.1 创建工程 109
10.2.2 配置工程并编译 113
10.2.3 串口设置 116
10.2.4 配置和调试 118
10.2.5 调试界面说明 121
10.3 调试U-Boot 125
10.3.1 准备源代码 125
10.3.2 配置 125
10.3.3 调试 130
10.4 调试Linux内核 134
10.4.1 配置编译环境 134
10.4.2 编译Linux内核 134
10.4.3 准备源代码 135
10.4.4 内核调试 137
10.5 调试Linux驱动模块 143
10.5.1 编译驱动模块 143
10.5.2 配置调试选项 144
10.5.3 调试 146
10.6 调试Linux应用程序 148
10.6.1 编译应用程序 148
10.6.2 配置RSE 149
10.6.3 调试 153
10.7 使用Streamline性能分析 159
10.7.1 配置编译环境 159
10.7.2 编译Linux内核 159
10.7.3 编译gator.ko驱动模块 160
10.7.4 编译gatord守护线程 161
10.7.5 启动守护线程 161
10.7.6 采集 162
10.7.7 分析 165
第11章 DS-5常见问题解答 170
11.1 License问题 170
11.2 使用问题 181
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- Python程序设计及实践教程 [肖朝晖]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- 电气控制与PLC程序设计(第二版) [胡冠山]
- Java Web项目化设计实践教程 [邱云 曾陈萍]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- Python数据分析 [主编 冯志辉 赵磊 李放]
- Python程序设计与应用(第二版) [主编 张广渊]
- C程序设计实践教程 [刘卫国]
- C程序设计(慕课版) [刘卫国]
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- SwiftUI完全开发 [李智威 著]
- MySQL数据库项目式教程 [陈亚峰]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- Python程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- Python程序设计基础及实战 [主编 刘健]
- C语言程序设计 [姜雪]
- Python程序设计实践教程 [王鹤琴 蔡正保]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- 机器人流程自动化(RPA)实战——基于UiPath [主编 金鑫]
- Python 语言程序设计实践指导 [主编 张双狮]