《ARM Linux入门与实践 一个嵌入式爱好者的自学体验》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:方强,程昌南编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2008
  • ISBN:9787811244229
  • 页数:482 页
图书介绍:本书是以阿南自学、应用嵌入式Linux时记录的笔记(包括实验、出现的问题、调试过程、经验总结等)、《嵌入式Linux入门笔记》为基础,再增加笔记中所应用到的硬件平台,重新整理丰富而成的完整的ARM和Linux入门、实践指导。全书可以分成ARM硬件、ARM前后台系统应用和基于Linux系统的应用3个部分。ARM硬件部分包括了整个硬件的原理分析、原理图和PCB板的绘制、元件焊接、硬件的检测与调试。

第一篇 ARM硬件 3

第1章 概述 3

1.1 嵌入式系统、单片机、ARM及Linux概述 3

1.2 ARM处理器的选择 3

1.3 S3C2410A简介和公版资源 4

1.4 ARM开发工具及调试方法 5

1.4.1 集成开发环境 5

1.4.2 硬件仿真器 6

1.4.3 前后台系统的调试方法 7

1.4.4 嵌入式Linux的开发调试方法 8

1.5 亲自制作实验平台在ARM学习中的意义和可行性 9

第2章 实验平台硬件分析 11

2.1 平台概述及组成 11

2.2 地址空间分配 13

2.2.1 S3C2410A内存映射图 13

2.2.2 AN2410平台地址空间分配 14

2.3 常用元件概述 14

2.3.1 电阻标称值 14

2.3.2 肖特基二极管 18

2.3.3 功率电感 18

2.3.4 铁氧体磁珠 19

2.3.5 自恢复保险丝PPTC 19

2.3.6 有源蜂鸣器和无源蜂鸣器 20

2.4 最小系统板AN2410SSB原理图分析 20

2.4.1 CPU部分 20

2.4.2 BootROM设置和时钟电路 29

2.4.3 JTAG接口电路 30

2.4.4 NANDFlash存储器 30

2.4.5 SDRAM存储器 33

2.4.6 调试串口 34

2.4.7 I0M以太网 35

2.4.8 按键中断和LED电路 38

2.4.9 ADC/PWM_DAC和蜂鸣器控制电路 39

2.4.10 复位电路 39

2.4.11 电源电路 40

2.4.12 最小系统板与底板的接口 42

2.5 底板AN2410MB原理图分析 42

2.5.1 缓冲电路 43

2.5.2 NORFlash存储器 43

2.5.3 USBHost/Device 43

2.5.4 100M以太网 46

2.5.5 pcmcia接口 46

2.5.6 SD卡接口 49

2.5.7 IIS音频电路 50

2.5.8 IIC存储器 51

2.5.9 LCD显示 52

2.5.10 触摸屏 55

2.5.11 RS485总线 55

2.5.12 IrDA、红外遥控发射与学习电路 57

2.5.13 CPLD扩展电路 58

2.5.14 SC16C554串口扩展电路 58

2.5.15 I/O口和红外遥控发射扩展电路 60

2.5.16 电源提供电路 62

2.6 下载板电路 64

2.6.1 S3C2410AFlash烧写工具SJF2410 64

2.6.2 CPLD下载工具ByteBlaster II 64

2.7 S3C2440A与S3C2410A的不同点及注意事项 66

第3章 硬件制作 67

3.1 原理图和PCB绘制过程及心得 67

3.2 PCB常用快捷键 73

3.3 焊接心得 74

第4章 系统核心部分硬件调试 76

4.1 调试步骤及概述 76

4.2 电源/复位/时钟/NANDFlash设置 77

4.3 Multi-ICE仿真器的使用 78

4.3.1 仿真器与目标板硬件安装 78

4.3.2 ADS1.2/Multi-ICEServer安装和配置 78

4.4 处理器内核检测 82

4.5 仿真测试 85

4.6 SDRAM测试 85

4.7 调试串口测试 91

4.8 NANDFlash测试 92

4.9 Flash的烧写 92

4.9.1 SJF2410的安装 92

4.9.2 NANDFlash烧写 93

4.9.3 NORFlash烧写 93

第二篇 ARM前后台系统部分 99

第5章 启动代码分析 99

5.1 启动代码和Bootloader的区别 99

5.2 汇编基础 100

5.2.1 伪操作 100

5.2.2 汇编指令及伪指令 104

5.3 启动代码功能模块分解 108

5.3.1 定义程序入口地址 108

5.3.2 看门狗及中断的禁止 112

5.3.3 测试LED的显示 112

5.3.4 系统时钟初始化 113

5.3.5 低功耗模式 114

5.3.6 初始化内存控制器 118

5.3.7 堆栈初始化 120

5.3.8 中断向量表 122

5.3.9 映像文件运行域的初始化 129

5.3.10 进入C语言程序 133

5.4 S3C2410A启动过程总结 133

第6章 基于AN2410SSB的外设实验 135

6.1 LED跑马灯显示实验 135

6.1.1 实验功能和目的 135

6.1.2 工程的创建 135

6.1.3 仿真调试及工程的设置 138

6.1.4 脱机运行及设置 141

6.2 按键输入及中断实验 143

6.2.1 实验功能和目的 143

6.2.2 GPIO口输入实验 144

6.2.3 外部中断实验 145

6.3 串口通信实验 147

6.3.1 实验功能和目的 147

6.3.2 系统时钟和波特率的计算 147

6.3.3 功能函数介绍 150

6.3.4 串口控制台功能测试 154

6.4 A/D采集实验 155

6.4.1 实验功能和目的 155

6.4.2 测试程序 155

6.5 PWM实验 156

6.5.1 实验功能和目的 156

6.5.2 PWM DAC实验 157

6.6 10M以太网控制器CS8900A硬件调试 158

6.6.1 CS8900A与处理器间接口通信的调试 158

6.6.2 10BASE-T物理连接的调试 162

6.7 基于RealViewMDK的实验 163

6.7.1 基础知识概述 163

6.7.2 基于RealView MDK的LED跑马灯实例 167

6.7.3 基于RealView MDK的按键输入及中断实例 175

6.7.4 基于RealView MDK的Flash烧写 177

第7章 扩展底板AN2410MB的调试与实验 182

7.1 电源调试 182

7.2 u241mon的使用与USB下载 182

7.3 100M以太网硬件调试 185

7.4 pcmcia硬件调试 187

7.5 SD卡测试 192

7.6 wav声音文件的播放 195

7.6.1 wav文件及应用 195

7.6.2 S3C2410A的数字音频接口IIS设置 200

7.6.3 UDA1341TS初始化及控制 203

7.6.4 功放电路的音量调节 203

7.6.5 wav文件播放 205

7.7 IICEEPROM测试 207

7.8 RS485网络实验 207

7.9 LCD显示与触摸屏采集 212

7.9.1 TFT型LCD的显示 212

7.9.2 LCD背光控制 215

7.9.3 触摸屏 217

7.10 CPLD的扩展调试 226

7.10.1 CPLD部分原理分析 226

7.10.2 CPLD设计实现 228

7.11 I/O口读/写实验 232

7.12 16C554串口扩展实验 233

7.13 红外遥控学习与发射实验 238

第8章 基于前后台系统的应用 244

8.1 前后台系统概述 244

8.2 NANDFlash的Bootloader设计 245

8.2.1 官方的2410bs 245

8.2.2 增强2410bs 247

8.3 简易文件系统设计 252

8.3.1 文件系统结构 253

8.3.2 文件系统功能函数 254

8.3.3 文件系统的测试 263

8.4 简易图形用户界面的设计 266

8.4.1 字符和汉字的显示 266

8.4.2 基本图形和控件的绘制 272

8.4.3 触摸屏事件处理 285

第三篇 基于Linux系统的应用 291

第9章 基于PC机的Linux学习 291

9.1 Linux系统下的常用操作 291

9.1.1 Red Hat Linux9下的常用操作问答 291

9.1.2 超级终端minicom的使用 294

9.1.3 网络文件系统的使用 294

9.2 Linux下的应用编程 295

9.2.1 进程间隔定时器 296

9.2.2 关于进程的体会 299

9.3 Linux下的驱动程序设计 302

9.3.1 模块编程实验 302

9.3.2 简单的字符设备驱动实验 303

第10章 嵌入式Linux开发环境 307

10.1 开发环境概述 307

10.2 PC宿主机环境的创建 307

10.2.1 安装基本的软件开发工具 307

10.2.2 安装MIZI Linux SDK for S3C2410 307

10.2.3 安装交叉编译工具 308

10.3 嵌入式Linux系统的配置和编译 309

10.3.1 Bootloader的配置和编译 309

10.3.2 内核的配置和编译 311

10.3.3 根文件系统的生成 311

10.4 目标板Linux系统的创建 312

10.4.1 Bootloader的烧写 312

10.4.2 Linux系统的下载 312

10.4.3 Linux系统的更新 314

10.4.4 在Windows下更新目标板的Linux系统 319

10.5 嵌入式Linux平台测试 320

第11章 嵌入式Linux驱动开发 322

11.1 模块编程实验 322

11.2 点亮目标板的LED 323

11.2.1 LED驱动 323

11.2.2 驱动的测试 325

11.2.3 将驱动编译进内核 327

11.2.4 测试程序的自动运行 328

11.3 按键中断实验 330

11.3.1 按键驱动程序 330

11.3.2 按键中断测试程序 334

11.4 定时器驱动及PWM输出 336

11.4.1 驱动功能描述 336

11.4.2 PWM驱动程序 336

11.4.3 PWM测试程序 340

11.5 PWM驱动蜂鸣器 341

11.5.1 驱动程序 341

11.5.2 驱动测试程序 344

11.5.3 出现过的问题 345

11.6 RS485网络驱动 346

11.6.1 驱动程序 346

11.6.2 驱动测试程序 351

11.6.3 出现的问题 353

11.7 CPLD扩展I/O驱动 356

11.7.1 虚拟地址的分配 356

11.7.2 驱动程序 358

11.7.3 驱动测试程序 360

11.7.4 出现过的问题 361

11.8 CPLD扩展串口16C554驱动 363

11.8.1 驱动说明 363

11.8.2 驱动程序 363

11.8.3 测试程序 372

11.8.4 出现过的问题 374

11.9 红外学习与发射 376

11.9.1 驱动程序 376

11.9.2 驱动测试程序 383

11.9.3 出现的问题 385

11.9.4 中断总结 385

11.10 点亮目标板的LCD 385

11.10.1 修改现有的s3c2410fb.c驱动程序 385

11.10.2 LCD测试程序 386

11.11 安装触摸板 389

11.11.1 触摸板驱动程序的修改 389

11.11.2 触摸板测试程序 389

11.12 系统时间的实现 390

11.13 100M以太网 391

第12章 嵌入式Linux平台优化 393

12.1 桌面系统的启动 393

12.2 yaffs可读/写文件系统 394

12.2.1 yaffs文件系统的使用 394

12.2.2 yaffs文件系统的移植 396

12.2.3 更新yaffs为根文件系统 406

12.3 NFS的使用 408

12.3.1 宿主机NFS配置 408

12.3.2 目标板NFS配置 408

12.3.3 出现的问题 409

12.4 嵌入式Web服务器 409

12.4.1 boa移植 409

12.4.2 Web应用开发 412

12.5 WIFI无线网络 414

12.5.1 Red Hat9上使用ndiswrapper安装无线网卡驱动 414

12.5.2 无线网络配置 419

12.5.3 RedHat9上使用linux-wlan-ng安装无线网卡 423

12.5.4 嵌入式平台上使用linux-wlan-ng安装无线网卡 429

第13章 网络编程 437

13.1 常用函数 437

13.2 服务器实例 448

13.3 客户端测试 454

13.4 利用I/O复用替代多进程的并发服务器 456

13.5 无线网络测试 459

第14章 图形用户界面设计 460

14.1 Qt应用编程 460

14.2 Qt/Embedded和Qtopia 460

14.2.1 linuette平台 460

14.2.2 QtE2.3.7/Qtopia1.7.0 463

14.2.3 QtE2.3.12/QtopiaPDA2.2.0 471

14.2.4 linuette的root、root_english、usr比较 477

后记 480

参考文献 482