《GNU gcc嵌入式系统开发》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:董文军编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2010
  • ISBN:9787811248142
  • 页数:409 页
图书介绍:本书首先介绍了GNU Gcc的基本组成,分章节讲述了GNU Gcc、Debian Linux、makefile、gdb、vi、emacs等开源开发工具的使用、然后以ATMEL公司出品的两款颇具代表性的嵌入式芯片,即低端的8位AVR单片机ATMEGA48和中端的32位ARM芯片AT91SAM7S64为代表,全面讲述了GNU Gcc在嵌入式开发中的应用,可以看到GNU Gcc在不同硬件下的开发过程与使用方法的确是具有高度的一致性,给学习与使用带来了很大的方便,书中还特别列举了一款非常实用的开源项目USBASP以及usbdrv开源项目,使读者既能对开源软件的魅力与强大功能留下深刻的印象,又能学到实际有用的东西。

第1章 GNU gcc概述 1

1.1自由软件与GNU、GPL 1

1.2 gcc的发展历史及特点 2

1.3 gcc的使用简介与命令行参数说明 4

1.3.1 gcc的基本用法 4

1.3.2警告提示功能选项 7

1.3.3库操作选项 8

1.3.4代码优化选项 9

1.3.5调试选项 10

1.3.6交叉编译选项 11

1.3.7链接器参数选项 12

1.3.8链接器描述文件格式 12

1.3.9 gcc的错误类型及对策 15

第2章 适合于嵌入式开发的平台Debian 17

2.1 Debian概述 17

2.2 Debian的安装 18

2.3 Debian基本操作 25

2.3.1桌面环境 25

2.3.2常用应用程序 26

2.3.3文件系统管理 27

2.4 Debian系统维护与软件的安装 37

2.4.1 apt包管理系统的管理 37

2.4.2软件包管理与安装命令 38

2.4.3 dpkg底层的包管理工具 39

2.4.4软件的其他安装方法 41

2.5版本控制 42

2.5.1 cvs概述 42

2.5.2 Debian中安装cvs服务器 42

2.5.3 cvs的基本操作 46

2.5.4远程cvs操作 54

2.5.5 cvs使用举例 54

2.5.6 Wincvs的使用 56

第3章 makefile文件的编写 66

3.1概述 66

3.2 makefile的基本语法和简单实例 67

3.2.1基本语法 67

3.2.2 make命令行参数定义 67

3.2.3简单实例 71

3.3常用命令 72

3.3.1@命令 72

3.3.2命令间的相互关联 72

3.3.3忽略命令的错误 73

3.3.4条件判断 73

3.3.5定义命令序列 73

3.4目标与规则 74

3.4.1伪目标 74

3.4.2静态目标 75

3.4.3 makefile中的常用目标 75

3.4.4后缀规则 76

3.4.5模式规则 76

3.4.6多目标与自动推导 77

3.4.7 makefile规则 77

3.4.8引入其他的makefile文件 80

3.5变量 81

3.5.1变量的定义 81

3.5.2与变量相关的操作符 82

3.5.3变量的应用 83

3.5.4特殊变量 84

3.6函数 87

3.6.1函数的调用语法 87

3.6.2字符串处理函数 88

3.6.3文件操作函数 90

3.6.4循环函数 91

3.6.5条件函数 92

3.6.6其他函数 92

3.6.7 makefile工作过程总结 94

第4章 gdb调试技术 95

4.1概述 95

4.1.1简单的调试实例 96

4.1.2 gdb启动退出与程序的加载 98

4.1.3 gdb随机帮助与常用命令 99

4.2 gdb常用查看命令 101

4.2.1查看寄存器 101

4.2.2查看栈信息 101

4.2.3查看源程序 103

4.2.4查看源代码的内存 104

4.3变量操作命令 105

4.3.1查看单个数据 105

4.3.2输出格式 105

4.3.3修改变量的值 106

4.3.4全局变量与局部变量 106

4.3.5表达式 107

4.3.6数组 107

4.3.7查看内存 108

4.3.8变量自动显示 108

4.4程序断点运行调试命令 109

4.4.1断点操作 109

4.4.2观察点操作 110

4.4.3捕捉点操作 110

4.4.4重载函数的断点操作 111

4.4.5各种断点的维护 111

4.5程序的单步调试技术 113

4.6程序的信号调试技术 114

4.7程序的多线程调试技术 115

4.8程序控制命令 116

4.8.1跳转控制命令 116

4.8.2函数控制命令 116

4.9 gdb环境设置命令 117

4.9.1运行环境设置 117

4.9.2显示设置 117

4.9.3环境变量 120

4.9.4搜索源代码 121

4.9.5指定源文件的路径 121

第5章 Linux常用编辑器 122

5.1 vi编辑器 122

5.1.1概述 122

5.1.2多文件操作 126

5.1.3光标移动命令 127

5.1.4屏幕操作命令 129

5.1.5寻找与替换 131

5.1.6 vi的基本编辑命令及操作 133

5.1.7多窗口操作 138

5.1.8寄存器与缓冲区操作 140

5.1.9与编程开发相关操作 141

5.1.10配置设置 143

5.1.11其他编辑命令 144

5.2 emacs编辑器 146

5.2.1概述 146

5.2.2 emacs基本知识 147

5.2.3对目录的操作 154

5.2.4编辑远程机器上的文件 157

5.2.5光标操作 157

5.2.6基本编辑功能 160

5.2.7查找与替换 163

5.2.8多窗口操作 164

5.2.9 emacs编程语言支持功能 164

5.2.10 emacs设置 172

5.2.11版本控制 174

5.2.12随机帮助的使用 177

5.2.13 emacs的其他功能 178

第6章 ATmega48/88/ 168硬件结构与功能 179

6.1 ATmega48/88/168概述 179

6.1.1产品特性 179

6.1.2引脚配置 180

6.1.3结构框图 183

6.1.4工作状态与MCU控制寄存器 185

6.1.5 AVR CPU通用工作寄存器 186

6.2存储结构 186

6.2.1 ATmega48的程序存储器映像 186

6.2.2 SRAM数据存储器 187

6.2.3 EEPROM数据存储器 187

6.3系统时钟以及选择 189

6.3.1时钟分类 189

6.3.2时钟源 190

6.3.3与系统时间相关寄存器 191

6.4电源管理与休眠模式 192

6.4.1工作模式 192

6.4.2休眠模式控制寄存器 193

6.4.3功耗最小化需要考虑的几个问题 194

6.5时间器与看门狗 195

6.5.1看门狗定时器 195

6.5.2看门狗控制寄存器 195

6.5.3看门狗安全操作时间序列 196

6.5.4看门狗熔丝位 197

6.5.5定时器的工作模式 197

6.5.6 8位PWM定时器0 199

6.5.7 16位PWM定时器1 208

6.5.8 8位异步操作PWM定时器2 216

6.6复位与中断 221

6.6.1复位 221

6.6.2中断 223

6.6.3外部中断 224

6.6.4 ATmega48复位与中断向量 226

6.6.5 ATmega88复位与中断向量 228

6.6.6 ATmega168复位与中断向量 231

6.6.7 I/O端口 234

6.8串行通信接口 238

6.8.1 USART串行通信 238

6.8.2 SPI串行通信 245

6.8.3两线串行通信 249

6.9模拟比较器与模/数转换 254

6.9.1模拟比较器 254

6.9.2模/数转换器 256

6.10熔丝位以及功能 259

第7章 AVR-gcc开发技术 262

7.1 Debian中的AVR交叉工具包 262

7.1.1 AVR交叉工具包的安装 262

7.1.2使用Linux平台的优势 263

7.1.3准备工作 263

7.1.4 AVR gcc编译及makefile的编写 264

7.1.5软件模拟调试 265

7.2 AVR的GNU下载工具 266

7.2.1 PonyProg下载工具 266

7.2.2 uisp下载工具 269

7.2.3 stk200下载线电路图 274

7.3 procyon AVRLib的C语言库函数 274

7.3.1 AVRLib的下载与安装 274

7.3.2与AVR芯片内部设备相关函数 275

7.3.3常用外部设备函数 285

7.3.4常见通用设备的软件模拟 297

7.3.5通用库函数 298

7.3.6网络库函数 305

第8章 AVR纯固件USB协议 314

8.1 USB总线协议概述 314

8.1.1基本概念 314

8.1.2 USB总线状态 322

8.1.3 USB物理层定义 323

8.1.4 USB数据链路层定义 325

8.2开源纯软件模拟USB总线协议 331

8.2.1纯软件USB协议功能特性 331

8.2.2硬件电路 331

8.2.3软件系统结构 333

8.3纯软件USB应用—USBASP下载线 345

8.3.1 USBASP功能概述 345

8.3.2 USBASP硬件电路 345

8.3.3 USBASP固件程序分析 346

8.3.4 USBASP制作过程 347

8.3.5 USBASP使用方法 348

第9章 ARM-gcc开发包Procyon ARMLib 351

9.1 Atmel AT91SAM7S系列芯片概述 351

9.1.1 AT91SAM7S的基本特点 351

9.1.2 AT91 SAM7 S的基本结构 353

9.1.3 ARM7TDMI处理器概述 355

9.1.4存储器 356

9.1.5外设 358

9.1.6定时器 358

9.1.7外设数据传输控制器 359

9.1.8高级中断控制器 360

9.1.9并行输入/输出控制器 361

9.1.10通信总线 361

9.1.11脉宽调制控制器 364

9.1.12 USB器件端口 365

9.1.13模/数转换器 366

9.2 ARM交叉工具软件包 366

9.2.1 gnuarm概述 366

9.2.2 gnuarm应用程序binutils 366

9.3 Procyon ARMLib的C语言库函数 388

9.3.1 ARMLib的下载与安装 388

9.3.2与ARM芯片内部设备相关函数 390

9.3.3与AVRLib相同的部分 398

9.4 OpenOCD 398

9.4.1 OpenOCD概述 398

9.4.2 OpenOCD的安装 399

9.4.3 OpenOCD芯片的配置文件 400

9.4.4 OpenOCD芯片配置命令 400

9.4.5 OpenOCD命令 403

9.4.6 OpenOCD应用举例 405

9.4.7 wiggler并口jtag 408

参考文献 409