图书介绍

嵌入式软件调试技术pdf电子书版本下载

嵌入式软件调试技术
  • 罗克露主编 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121077265
  • 出版时间:2009
  • 标注页数:482页
  • 文件大小:209MB
  • 文件页数:493页
  • 主题词:软件-调试

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

嵌入式软件调试技术PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

上篇 基础篇 2

第1章 软件调试概述 2

1.1 什么是软件调试 2

1.2 软件调试的分类 6

1.2.1 静态调试和动态调试 6

1.2.2 机器级调试与源码级调试 7

1.2.3 任务级调试与系统级调试 7

1.2.4 本地调试与远程(交叉)调试 8

1.3 软件调试的关键技术——断点 8

1.3.1 软件断点 8

1.3.2 硬件断点 8

1.4 调试器应当遵循的原则 9

1.4.1 调试器必须反映真实信息 9

1.4.2 提供尽可能多的程序上下文信息 9

1.4.3 Heisenberg原则——尽可能减少对被测系统的影响 10

1.5 嵌入式软件调试手段 10

1.5.1 软件仿真调试——模拟器 10

1.5.2 ICE——早期手段 11

1.5.3 BDM——M68K系列及PowerPC等采用的技术 12

1.5.4 JTAG——调试领域的后起之秀 13

1.5.5 调试代理——嵌入式调试的基石 15

1.6 本章小结 15

第2章 边界扫描测试技术(JTAG) 16

2.1 JTAG的背景和原理 16

2.2 JTAG接口的结构 19

2.3 测试访问端口(TAP) 20

2.3.1 测试时钟输入TCK 20

2.3.2 测试模式输入TMS 20

2.3.3 测试数据输入TDI 21

2.3.4 测试数据输出TDO 21

2.3.5 测试复位输入TRST 21

2.3.6 TAP的互联方式 21

2.4 测试访问端口控制器(TAP controller) 22

2.5 指令寄存器 27

2.6 JTAG指令 27

2.6.1 公共指令(public)与私有指令(private) 27

2.6.2 BYPASS指令 28

2.6.3 SAMPLE指令 29

2.6.4 PRELOAD指令 29

2.6.5 EXTEST指令 29

2.6.6 其他指令 29

2.7 数据寄存器组 30

2.7.1 BYPASS寄存器 31

2.7.2 边界扫描寄存器 31

2.7.3 设备ID寄存器 32

2.7.4 其他数据寄存器 32

2.8 ARM7TDMI的JTAG调试 32

2.8.1 调试架构 33

2.8.2 ARM7TDMI处理器结构 33

2.8.3 进入调试状态 34

2.8.4 JTAG指令 35

2.8.5 EmbeddedICE-RT逻辑 36

2.8.6 访问寄存器和存储器 38

2.9 本章小结 41

中篇 系统篇 44

第3章 学习使用GDB调试器 44

3.1 GDB简介 44

3.1.1 GDB的启动和退出 45

3.1.2 GDB的启动步骤 50

3.1.3 GDB的多语言支持 50

3.2 在编译时加入调试信息 51

3.2.1 打开GCC的调试选项-g 51

3.2.2 代码优化对调试的影响 52

3.3 在GDB下运行程序 53

3.3.1 指定要运行的程序 53

3.3.2 设置程序的运行环境 54

3.3.3 停止运行 60

3.4 断点、监视点与捕捉点 60

3.4.1 断点、监视点与捕捉点的设置 61

3.4.2 断点的删除、禁用和使能 75

3.4.3 条件断点 82

3.4.4 断点命令列表 87

3.4.5 断点菜单——对函数重载的支持 89

3.5 继续(continuing)与单步(stepping) 90

3.5.1 继续运行 91

3.5.2 单步运行 91

3.5.3 与单步有关的命令 94

3.5.4 指令级单步命令 97

3.6 查看数据 99

3.6.1 用print命令查看数据 99

3.6.2 查看数据类型 103

3.6.3 人为数组——查看内存中的连续对象 105

3.6.4 查看存储器和寄存器 108

3.6.5 自动显示列表 111

3.6.6 使用快捷变量(convenience variable) 114

3.6.7 处理C语言宏定义 115

3.6.8 产生转储文件 116

3.7 栈帧的回溯与选定 117

3.7.1 栈帧回溯(backtrace) 118

3.7.2 栈帧选定 120

3.7.3 栈帧状态 121

3.8 改变程序的执行流程 122

3.8.1 给变量赋值 122

3.8.2 使程序从另外的地址继续执行 124

3.8.3 向程序发送信号 125

3.8.4 调用函数 127

3.9 其他常用命令 128

3.9.1 源代码查看命令 128

3.9.2 反汇编命令 129

3.10 实例:Framebuffer与libjpeg混合编程 131

3.10.1 Framebuffer简介 131

3.10.2 libjpeg简介 133

3.10.3 程序说明 135

3.10.4 调试 143

3.11 GDB命令汇总 146

3.12 本章小结 148

第4章 GDB远程调试技术 149

4.1 目标平台简介 149

4.2 准备工作 151

4.2.1 minicom终端仿真程序 151

4.2.2 NFS文件系统 154

4.2.3 联合使用minicom和NFS 157

4.3 两种远程调试方式 159

4.3.1 gdbserver 159

4.3.2 远程插桩(stub) 160

4.4 编译arm-linux-gdb 160

4.5 编译gdbserver 162

4.6 连接到远程目标 163

4.6.1 启动gdbserver 163

4.6.2 串行连接方式 164

4.6.3 TCP连接方式 165

4.6.4 UDP连接方式 166

4.6.5 与远程目标断开连接 166

4.6.6 GDB的远程调试选项 166

4.7 实例:调试误用内存的程序 168

4.7.1 段错误 168

4.7.2 野指针 171

4.7.3 内存泄漏 174

4.7.4 处理内存问题的对策 176

4.8 实例:音频采集与回放程序的调试 176

4.8.1 Linux下的音频接口 176

4.8.2 OSS的编程接口 177

4.8.3 OSS的编程机制 178

4.8.4 OSS的一般框架 181

4.8.5 源程序SndKit.c说明 181

4.8.6 SndKit调试过程 190

4.9 本章小结 193

第5章 网络应用程序调试 194

5.1 套接口编程简介 194

5.1.1 基本TCP套接口编程 198

5.1.2 基本UDP套接口编程 203

5.2 网络调试和诊断工具 206

5.2.1 tcpdump 207

5.2.2 其他工具 210

5.3 实例:远程获取加速度 212

5.3.1 加速度传感器ADXL202JE简介 212

5.3.2 服务端程序 213

5.3.3 客户端程序 218

5.3.4 小结 224

5.4 实例:通过CDMA发送短消息 224

5.4.1 Linux串口编程概览 224

5.4.2 发送英文短消息 229

5.4.3 发送中文短消息 240

5.4.4 小结 247

5.5 本章小结 248

第6章 多进程与多线程调试 249

6.1 Linux下的多进程程序调试 249

6.1.1 进程的创建 249

6.1.2 GDB对多进程调试的支持 251

6.1.3 实例:调试simple_fork 253

6.2 Linux多线程程序调试 255

6.2.1 线程的创建、终止和取消 256

6.2.2 线程互斥锁 261

6.2.3 条件变量(condition variable) 263

6.2.4 线程的cleanup handler 267

6.2.5 线程特定数据 268

6.2.6 线程引入的问题 272

6.2.7 GDB对多线程调试的支持 272

6.2.8 实例:调试simple_thread 275

6.3 本章小结 279

第7章 静态库与动态库的调试 280

7.1 静态链接库的构建和调试 280

7.2 动态共享库的优点和代价 287

7.3 动态共享库的命名——soname 289

7.4 动态共享库的构建和安装 291

7.5 动态共享库的使用 292

7.6 动态共享库的调试方法 292

7.7 实例:解析AVI文件 298

7.7.1 AVI文件格式介绍 298

7.7.2 OpenDML所做之扩展 303

7.7.3 AVI解析之代码实现 309

7.7.4 编译共享库并安装到目标板 330

7.7.5 远程调试共享库 330

7.8 本章小结 334

下篇 应用篇 336

第8章 MPEG-4视频播放器的设计及调试 336

8.1 概述 336

8.2 XviD与SDL的构建 337

8.3 XviD编程接口说明 339

8.3.1 版本 339

8.3.2 错误码 340

8.3.3 色场空间 340

8.3.4 profile和level定义 341

8.3.5 像素幅型比(Pixel Aspect Ration) 341

8.3.6 帧类型 341

8.3.7 xvid_global()函数 342

8.3.8 xvid_decore()函数 344

8.3.9 小结 350

8.4 SDL编程接口说明 350

8.4.1 SDL的初始化和退出 350

8.4.2 SDL视频子系统函数接口 351

8.4.3 SDL事件处理子系统函数接口 355

8.5 整体结构 359

8.6 辅助模块:event和ping/pong双缓冲区 361

8.7 解码模块设计 375

8.8 播放模块设计 393

8.9 驱动模块设计 407

8.10 本章小结 410

第9章 基于GPS的移动定位终端 411

9.1 功能概述 411

9.2 GPS介绍 412

9.2.1 GPS定位原理 412

9.2.2 GPS数据格式 414

9.3 MiniGUI介绍 417

9.3.1 MiniGUI体系结构与模型 418

9.3.2 交叉编译MiniGUI 419

9.3.3 为触摸屏编写IAL驱动层 421

9.3.4 改写MiniGUI服务器程序mginit 432

9.4 在单独的线程中读取和解析GPS数据 437

9.4.1 经纬度坐标到像素坐标的映射 437

9.4.2 双精度浮点数字节序的问题 441

9.4.3 通过异步串口读写GPS数据 443

9.4.4 解析GPS数据 444

9.4.5 计算归一化坐标 447

9.4.6 GPS线程 448

9.4.7 与GUI前端交换数据 451

9.4.8 GPS接收机模拟程序 453

9.5 用到的MiniGUI元素 454

9.5.1 主窗口 455

9.5.2 控件 457

9.5.3 静态框 460

9.5.4 按钮 461

9.5.5 编辑框 465

9.5.6 GDI接口与位图操作 468

9.5.7 定时器 473

9.5.8 消息处理过程 474

9.6 本章小结 479

参考文献 480

精品推荐