《零基础学ARM9嵌入式Linux系统开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:段群杰,霍艳忠,杜旭等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2010
  • ISBN:9787111316718
  • 页数:462 页
图书介绍:本书系统地论述了嵌入式系统开发的设计思想和各个主要环节。深刻诠释了嵌入式系统开发的基本理论、基本方法与实用技巧,内容涵盖了硬软件两个层面。向读者较全面展现了嵌入式系统开发的全部过程。涵盖内容:嵌入式系统概述、ARM微处理器结构、ARM微处理器指令系统、构建嵌入式开发环境、S3C2410X硬件结构及功能、 S3C2410X的外部接口、嵌入式操作系统、S3C2410X平台Bootloader、移植嵌入式操作系统、嵌入式系统的设备管理及驱动、嵌入式Linux C语言开发工具、嵌入式C语言开发流程、ADS集成开发环境、图形用户界面编辑环境Qt、S3C2410X完整开发系统的设计等。

第一篇 入门篇 1

第1章 嵌入式系统 1

1.1嵌入式系统简介 1

1.1.1嵌入式系统的特点 1

1.1.2嵌入式系统的应用领域 2

1.1.3嵌入式系统的发展趋势 3

1.2嵌入式系统的组成 5

1.2.1嵌入式平台的硬件结构 5

1.2.2板级支持包和嵌入式系统 6

1.2.3嵌入式系统上的应用程序 6

1.3嵌入式系统中的处理器 6

1.3.1微处理器 7

1.3.2微控制器 7

1.3.3数字信号处理器 7

1.3.4嵌入式片上系统 8

1.4嵌入式系统的一般设计流程和方法 8

1.4.1嵌入式系统的一般设计流程 8

1.4.2嵌入式系统的一般设计方法 9

1.5实践拓展 10

1.6习题 11

第2章 ARM微处理器结构 12

2.1ARM公司简介 12

2.2ARM微处理器系列 12

2.3ARM体系结构的版本及命名方法 15

2.3.1 ARM体系结构的版本 16

2.3.2 ARM体系结构的变种 18

2.3.3 ARM/Thumb体系结构的命名格式 19

2.4 ARM微处理器模式 20

2.5 ARM寄存器介绍 21

2.5.1通用寄存器 22

2.5.2程序状态寄存器 23

2.6 ARM体系的异常中断 24

2.6.1ARM中异常中断的种类 25

2.6.2ARM处理器对异常中断的响应过程 25

2.6.3从异常中断处理程序中返回 26

2.7 ARM体系中的存储系统 26

2.7.1ARM体系中的存储空间 26

2.7.2ARM体系结构的存储器格式 26

2.7.3非对齐的存储访问操作 27

2.7.4ARM指令预取和自修改代码 27

2.8实践拓展 28

2.9习题 29

第3章 ARM微处理器指令系统 30

3.1ARM指令系统简介 30

3.1.1ARM指令的分类 30

3.1.2ARM指令的一般编码格式 30

3.1.3ARM指令的条件码域 31

3.2 ARM指令寻址方式 32

3.2.1数据处理指令的操作数的寻址方式 32

3.2.2字及无符号字节的Load/Store指令的寻址方式 36

3.2.3杂类Load/Store指令的寻址方式 39

3.2.4批量Load/Store指令的寻址方式 41

3.2.5协处理器Load/Store指令的寻址方式 42

3.3 ARM指令集详解 43

3.3.1 跳转指令 44

3.3.2数据处理指令 45

3.3.3乘法指令与乘加指令 49

3.3.4程序状态寄存器访问指令 51

3.3.5加载/存储指令 52

3.3.6批量数据加载/存储指令 53

3.3.7数据交换指令 54

3.3.8移位指令 55

3.3.9协处理器指令 56

3.3.10异常产生指令 57

3.4 ARM程序设计示例 58

3.5 实践拓展 61

3.6 习题 63

第二篇 基础篇 64

第4章 构建嵌入式开发环境 64

4.1交叉开发环境简介 64

4.1.1交叉开发环境模型 65

4.1.2Linux的常用版本 65

4.2宿主机与目标板的连接方式 66

4.2.1串行通信接口 66

4.2.2以太网接口 67

4.2.3USB接口 68

4.2.4JTAG接口 68

4.3建立主机开发环境 69

4.3.1Fedora的安装 69

4.3.2Minicom的安装配置 82

4.3.3TFTP服务的安装配置 85

4.3.4NFS的安装配置 86

4.3.5建立交叉工具链 87

4.4实践拓展 89

4.5习题 90

第5章 S3C2410X硬件结构及功能 91

5.1 S3C2410X简介 91

5.1.1S3C2410X处理器 91

5.1.2S3C2410X引脚描述 92

5.1.3S3C2410X内核结构 95

5.2 S3C2410X的存储器映射 96

5.2.1存储器的控制寄存器 96

5.2.2 Nand Flash及其控制器 99

5.3 DMA控制器 103

5.3.1DMA工作原理 103

5.3.2DMA控制器的相关寄存器 105

5.4时钟和电源管理 109

5.4.1时钟 110

5.4.2电源管理 112

5.4.3专用寄存器 114

5.4.4S3C2410X时钟及电源管理应用 117

5.5中断 118

5.5.1中断控制器专用寄存器 119

5.5.2中断实例 122

5.6输入/输出端口 124

5.6.1端口寄存器及其引脚配置 124

5.6.2外中断实例 133

5.7定时器 135

5.7.1结构与工作原理 135

5.7.2定时器专用寄存器 138

5.7.3定时器的使用 139

5.7.4定时器应用实例 140

5.8实践拓展 141

5.9习题 144

第6章S3C2410X的外部接口 145

6.1 UART接口 145

6.1.1串行口结构和工作原理 145

6.1.2 UART专用寄存器 149

6.1.3 UART应用实例 152

6.2 IIC总线接口 153

6.2.1 IIC总线接口的工作模式 154

6.2.2 IIC总线接口的特殊功能寄存器 158

6.2.3 IIC应用实例 160

6.3 SPI接口 162

6.3.1 SPI结构与工作原理 163

6.3.2 SPI专用寄存器 164

6.3.3 SPI应用方法 166

6.3.4 SPI应用实例 167

6.4 A/D转换与触摸屏接口 169

6.4.1 A/D转换器结构与工作原理 170

6.4.2 A/D转换和触摸屏专用寄存器 172

6.5实践拓展 174

6.6习题 176

第7章 嵌入式操作系统 177

7.1常见的嵌入式操作系统 177

7.2嵌入式Linux的基本结构和工作原理 179

7.2.1嵌入式Linux的基本结构 179

7.2.2嵌入式Linux的工作原理 182

7.3实践拓展 183

7.4习题 185

第三篇 提高篇 186

第8章 S3C2410X平台Bootloader 186

8.1 Bootloader的操作模式 186

8.2 Bootloader的启动流程 187

8.3 Bootloader之vivi 188

8.3.1 vivi的配置与编译 189

8.3.2 vivi第一阶段的代码 190

8.3.3 vivi第二阶段的代码 201

8.4 Bootloader之U-Boot 217

8.4.1 U-Boot的主要目录结构 218

8.4.2 U-Boot支持的主要功能 218

8.4.3 U-Boot的原理分析 219

8.4.4 U-Boot在S3 C2410上的移植 231

8.5自行开发Bootloader 239

8.6实践拓展 239

8.7习题 241

第9章 移植嵌入式操作系统 242

9.1 Linux内核 242

9.1.1Linux内核的组成结构 243

9.1.2Linux源码结构 244

9.2移植Linux内核 245

9.2.1给内核打补丁 245

9.2.2配置内核 247

9.2.3编译内核 257

9.3移植根文件系统 257

9.3.1安装Busybox 258

9.3.2配置Busybox 259

9.3.3向Busybox添加新命令 260

9.3.4编译和安装Busybox 262

9.3.5构造根文件系统 262

9.3.6创建根文件系统映像文件 264

9.4下载内核 264

9.4.1使用U-Boot制作、下载内核 264

9.4.2启动Linux内核 266

9.5使用U-Boot加载根文件系统映像 266

9.6实践拓展 267

9.7习题 268

第10章 嵌入式系统的设备管理及驱动 269

10.1 Linux设备管理和驱动 269

10.1.1Linux设备的分类 269

10.1.2设备驱动程序的作用 269

10.1.3访问设备的实现 270

10.1.4Linux设备控制方式 270

10.2 Linux设备驱动开发流程 272

10.2.1构造和运行模块 272

10.2.2字符设备驱动编写 273

10.2.3字符设备驱动实例 276

10.2.4并发控制 278

10.2.5阻塞与非阻塞 284

10.2.6select和poll 288

10.2.7中断处理 290

10.2.8内存与1/0操作 292

10.3块设备驱动编写 296

10.3.1块设备的I/o操作特点 296

10.3.2block_device_operations结构体 296

10.3.3gendisk结构体 297

10.3.4request结构体 299

10.3.5request操作函数 302

10.3.6bio结构体 304

10.3.7注册与注销 305

10.3.8加载与卸载 306

10.3.9打开与释放 308

10.3.10 ioctl函数 308

10.3.11 I/0请求处理 309

10.4设备驱动实例——RAMDISK驱动 312

10.5实践拓展 317

10.6习题 319

第11章 嵌入式LinuxC语言开发工具 320

11.1编辑器VIM 320

11.1.1VIM的编辑模式 320

11.1.2VIM的进入与退出 322

11.1.3光标的移动 322

11.1.4删除、撤销和重复 323

11.1.5复制和粘贴 324

11.1.6查找和替换 324

11.1.7帮助系统和网络资源 324

11.2编译器GCC 326

11.2.1GCC的编译流程 326

11.2.2GCC的常用编译选项 328

11.2.3应用实例 331

11.3调试器GDB 333

11.3.1GDB的使用流程 335

11.3.2GdbServer远程调试 338

11.4工程管理Make 339

11.4.1Makefile文件介绍 340

11.4.2Makefile的规则 341

11.4.3Makefile的变量 343

11.4.4Make命令的使用 345

11.4.5使用自动工具生成Makefile 346

11.5集成开发环境Eclipse 347

11.5.1下载和安装Eclipse 348

11.5.2Eclipse的界面 348

11.6实践拓展 350

11.7习题 351

第12章 嵌入式C语言开发流程 352

12.1命令行模式下的开发流程 352

12.1.1编写代码 352

12.1.2编译程序 354

12.1.3运行程序 355

12.1.4交叉编译 355

12.1.5编写Makefile 356

12.2基于Eclipse的开发流程 358

12.2.1新建工程 358

12.2.2编写代码 359

12.2.3编译工程 359

12.2.4运行程序 361

12.3实践拓展 362

12.4习题 363

第四篇 精通篇 364

第13章 ADS集成开发环境 364

13.1命令行开发工具 364

13.1.1 armcc编译器 365

13.1.2 armlink的使用方法 366

13.1.3 ARM运行时库 367

13.1.4 CodeWarrior集成开发环境 368

13.1.5 ADS调试器 369

13.1.6实用工具和软件 370

13.2使用ADS创建工程 371

13.2.1建立一个工程 371

13.2.2编译和链接工程 374

13.2.3命令行模式下编译工程 379

13.3使用AXD调试代码 381

13.3.1打开调试文件 381

13.3.2查看存储器内容 382

13.3.3设置断点 383

13.3.4查看变量值 383

13.4实践拓展 385

13.5习题 386

第14章 图形用户界面编辑环境Qt 387

14.1嵌入式系统中的GUI 387

14.1.1 MicroWindows 387

14.1.2 MiniGUI 388

14.1.3 Qt/Embedded 388

14.2 MiniGUI编程 388

14.2.1 MiniGUI移植 390

14.2.2 MiniGUI实例 392

14.3初识Qt/Embedded 394

14.3.1 Qt/Embedded的系统要求 395

14.3.2 Qt的架构 395

14.3.3窗口系统 396

14.4 Qt/Embedded嵌入式图形开发 397

14.4.1建立Qt/Embedded开发环境 397

14.4.2认识Qt/Embedded开发环境 399

14.4.3窗体 401

14.4.4对话框 407

14.4.5外形与感觉 411

14.4.6国际化 412

14.5 Qt/Embedded实战演练 413

14.5.1安装Qt/Embedded工具开发包 414

14.5.2交叉编译Qt/Embedded库 414

14.5.3“Hello,World”程序 415

14.5.4发布Qt/Embedded程序到目标板 421

14.5.5添加一个Qt/Embedded应用到QPE 423

14.6实践拓展 424

14.7习题 425

第15章S3C2410X完整开发系统的设计 426

15.1最小系统 426

15.2实验板硬件资源规划 426

15.3实验板硬件电路设计 427

15.3.1电源电路 427

15.3.2复位电路 428

15.3.3调试及下载接口电路 429

15.3.4时钟电路 429

15.3.5微处理器电路 430

15.3.6外部存储器电路 433

15.3.7串行接口电路 437

15.3.8网络接口电路 437

15.3.9USB接口电路 439

15.3.10液晶接口电路 440

15.3.11其他电路 441

15.4PCB的设计方法 442

15.5电路的调试方法 444

15.6软件的移植与开发 445

15.6.1准备交叉编译工具 445

15.6.2vivi的移植 447

15.6.3内核的移植 452

15.6.4根文件系统的移植 455

15.6.5驱动程序的编写 457

15.7实践拓展 460

15.8习题 461

参考文献 462