嵌入式Linux系统开发基础
《嵌入式Linux系统开发基础》是2013年清华大学出版社出版的图书,作者是王大永、葛超、张景春。
基本介绍
- 书名:嵌入式Linux系统开发基础
- 作者:王大永、葛超、张景春
- ISBN:9787302330240
- 定价:46元
- 出版社:清华大学出版社
- 出版时间:2013-7-5
- 装帧:平装
图书简介
嵌入式系统是计算机软体与硬体的完美结合,广泛地套用于手持设备、通信家电、仪器仪表、汽车电子、医疗仪器、工业控制、航天航空等各个领域,并嵌入各类设备中,起着核心作用。嵌入式系统开发,无疑是当前最有前途、最为热门、最需人才的技术领域。
本书共分为13章,对嵌入式系统的基本结构、指令系统以及嵌入式系统移植、设备驱动程式等作了比较全面的介绍。其中包括嵌入式ARM系列处理器、存储器、定时器及外围设备的介绍,嵌入式开发编译工具的使用,设备驱动程式的编写,嵌入式作业系统的移植及图形界面的开发。通过阅读本书可以使读者掌握开发嵌入式Linux系统的基本知识及套用技巧。
对于嵌入式处理器指令系统,本书给出了详细的介绍,希望该部分能作为编写ARM彙编程式的开发人员的参考资料,提高开发人员的工作效率。本书可供嵌入式系统、通信工程、信息技术、系统集成等专业的本科生作为教材使用,也可以作为嵌入式系统开发人员的参考用书。
目录
第1章嵌入式系统概述 1
1.1嵌入式系统简介 1
1.1.1嵌入式系统的定义 1
1.1.2嵌入式系统的硬体/软体特徵 3
1.1.3嵌入式作业系统 4
1.1.4学习嵌入式系统的意义 6
1.2嵌入式系统硬体 7
1.2.1嵌入式处理器 7
1.2.2嵌入式微处理器 8
1.2.3嵌入式微控制器 9
1.2.4嵌入式DSP处理器 9
1.2.5嵌入式片上系统 10
1.2.6嵌入式处理器的选择 10
1.3存储器 11
1.3.1存储器的分类 11
1.3.2存储器的层次结构 13
1.3.3随机存储器RAM 14
1.3.4只读存储器ROM 17
1.4输入/输出设备 19
1.4.1液晶显示 19
1.4.2触控萤幕 21
1.4.3语音输入/输出技术 23
1.4.4键盘 25
1.5电源转换与管理 26
1.5.1电源IC的分类 26
1.5.2电源IC的特点 27
1.5.3电源IC选用指南 28
1.6接口技术 29
1.6.1并口 29
1.6.2串口 30
1.6.3USB 31
1.6.4蓝牙 32
1.7汇流排 33
1.7.1ISA 33
1.7.2PCI 34
1.7.3I2C 35
1.7.4SPI 37
1.7.5PC-104 38
1.7.6CAN 39
1.8课后练习 41
第2章嵌入式处理器介绍 43
2.1ARM微处理器概述 43
2.1.1ARM微处理器套用领域及特点 43
2.1.2ARM微处理器系列 44
2.1.3ARM微处理器体系结构 50
2.1.4ARM微处理器的套用选型 57
2.1.5ARM微处理器存储体系结构 58
2.1.6ARM微处理器的工作状态 60
2.1.7ARM微处理器运行模式 61
2.1.8ARM微处理器的存储格式 62
2.1.9ARM状态下的暂存器结构 63
2.1.10ARM异常中断 66
2.2ARM微处理器指令系统 70
2.2.1ARM指令的一般格式 70
2.2.2ARM指令的定址方式 73
2.2.3ARM存储器访问指令 78
2.2.4跳转指令 82
2.2.5数据处理指令 84
2.2.6程式状态暂存器(PSR)传输指令 90
2.2.7协处理器指令 91
2.2.8ARM杂项指令 93
2.2.9ARM伪指令 96
2.3Thumb指令集 98
2.4课后练习 99
第3章嵌入式系统设计方法 101
3.1嵌入式系统设计概述 101
3.1.1嵌入式系统的总体结构 101
3.1.2嵌入式系统的设计内容 103
3.1.3嵌入式系统的设计特点 104
3.1.4嵌入式系统设计方法的分类 105
3.2嵌入式系统设计流程 107
3.3ARM920T简介 111
3.4S3C2410X开发板 112
3.4.1S3C2410处理器的特点 114
3.4.2ARM片上汇流排 118
3.4.3S3C2410的处理器中断 119
3.4.4S3C2410处理器片上资源的定义和使用 126
3.4.5编程参考软体包2410TEST 129
3.5课后练习 133
第4章BootLoader 135
4.1BootLoader概述 135
4.1.1BootLoader的基本概念 136
4.1.2BootLoader所支持的CPU和
嵌入式体系结构 137
4.1.3BootLoader的安装介质 138
4.1.4BootLoader的概念扩展 138
4.1.5ARMBootLoader的共性 138
4.1.6BootLoader移植的必要性 140
4.1.7BootLoader的烧录和存储 140
4.1.8BootLoader与主机之间进行
档案传输所用的通信设备及
协定 140
4.1.9BootLoader的通用执行
流程 140
4.2常用的嵌入式LinuxBootLoader 141
4.2.1U-Boot 141
4.2.2VIVI 142
4.2.3BLOB 143
4.2.4RedBoot 143
4.2.5ARMBoot 143
4.2.6DIY 143
4.3U-Boot基础 144
4.3.1U-Boot原始码的目录结构 144
4.3.2U-Boot支持的主要功能 146
4.3.3U-Boot的命令介绍及
环境变数 146
4.4U-Boot的启动过程 147
4.5U-Boot的编译过程 151
4.6U-Boot移植的关键技术 154
4.7课后练习 155
第5章嵌入式系统交叉编译 156
5.1交叉编译环境简介 156
5.1.1交叉编译概念模型 156
5.1.2目标板与宿主机之间的连线 157
5.1.3档案传输方式 159
5.1.4网路档案系统 160
5.2交叉编译工具 160
5.2.1gcc编译器 160
5.2.2Binutils工具包 162
5.2.3GNUmake 162
5.2.4glibc库 164
5.2.5gdb调试工具 165
5.2.6交叉编译环境的建立 166
5.3主机开发环境配置 170
5.3.1配置主机服务 170
5.3.2串口控制台工具 172
5.3.3配置DHCP服务 175
5.3.4配置TFTP服务 177
5.3.5配置NFS服务 179
5.4课后练习 181
第6章嵌入式Linux的软体
开发环境 182
6.1交叉编译环境 182
6.1.1安装交叉编译环境 182
6.1.2添加设备驱动和核心模组 183
6.2执行档 183
6.2.1COFF档案格式 183
6.2.2ELF档案格式 183
6.2.3FLAT档案格式 184
6.3调试技术 184
6.3.1基于主机的调试 186
6.3.2远程调试器与调试核心 187
6.3.3线上仿真ICE 188
6.3.4BDM 188
6.3.5软体仿真器 189
6.3.6记忆体调试 190
6.3.7MEMWATCH 190
6.3.8YAMD 191
6.4程式调试 193
6.4.1gdb 193
6.4.2kgdb 194
6.4.3Oops 196
6.5ROM仿真器 197
6.6JTAG接口 198
6.7系统引导和核心启动 199
6.7.1BootLoader程式的设计与
实现 199
6.7.2硬体平台的通信 200
6.7.3硬体平台初始化程式 200
6.7.4硬体平台监控程式 200
6.8?CLinux移植 201
6.8.1第一阶段 201
6.8.2第二阶段 202
6.9课后练习 203
第7章设备驱动程式 205
7.1概述 205
7.1.1设备类型 206
7.1.2设备号 206
7.1.3模组化编程 207
7.2设备驱动基础 212
7.2.1设备驱动程式的结构 214
7.2.2设备驱动程式的接口 215
7.3设备档案接口 216
7.3.1用户访问接口 216
7.3.2open入口点 216
7.3.3close入口点 217
7.3.4read入口点 217
7.3.5write入口点 217
7.3.6ioctl入口点 218
7.4档案操作 218
7.4.1file_operations结构 218
7.4.2file结构 219
7.5I/O操作 220
7.5.1阻塞型I/O 221
7.5.2select 221
7.5.3异步触发 222
7.6中断处理 223
7.6.1注册中断处理程式 223
7.6.2返回值 223
7.6.3参数 223
7.6.4实现中断处理程式 225
7.7实例:简单设备驱动程式 226
7.7.1按键 226
7.7.2触控萤幕 228
7.8课后练习 236
第8章FlashROM存储器实例 238
8.1S3C44B0存储器控制器 238
8.1.1概述 238
8.1.2功能描述 238
8.1.3特殊暂存器 243
8.2FlashRom原理分析 249
8.2.1Flash器件介绍 249
8.2.2Flash读写操作 250
8.2.3SST39VF160晶片介绍 251
8.2.4SST39VF1601晶片操作 252
8.3实例过程 256
8.3.1电路连线 256
8.3.2硬体和暂存器设定 257
8.3.3程式的编写 257
8.3.4调试与运行结果 260
8.4课后练习 261
第9章定时器中断实例 262
9.1S3C44B0中断机制分析 262
9.1.1中断控制器 262
9.1.2中断源与中断模式 264
9.1.3中断优先权 266
9.1.4其他特殊暂存器 268
9.2PWM定时器 271
9.2.1定时器结构概述 271
9.2.2定时器操作 272
9.2.3死区产生器 274
9.2.4DMA请求模式 275
9.2.5特殊暂存器 276
9.3实例过程 279
9.3.1暂存器设定 279
9.3.2程式的编写 280
9.3.3调试与运行结果 281
9.4课后练习 281
第10章?C/OS-Ⅱ移植与套用实例 283
10.1?C/OS-Ⅱ实时作业系统 283
10.1.1实时作业系统概念 283
10.1.2?C/OS-Ⅱ的档案结构 284
10.1.3?C/OS-Ⅱ的任务与中断 284
10.1.4?C/OS-Ⅱ中的任务函式 286
10.2?C/OS-Ⅱ的移植 293
10.2.1移植条件和内容分析 293
10.2.2OS_CPU.H 295
10.2.3OS_CPU_A.ASM 297
10.2.4OS_CPU_C.C 301
10.3实例过程 302
10.3.1配置OS_CFG.H档案 302
10.3.2任务函式的编写 302
10.3.3调试与运行结果 305
10.4课后练习 305
第11章mCLinux移植实例 307
11.1Linux作业系统 307
11.1.1Linux介绍 307
11.1.2Linux核心 311
11.2mCLinux作业系统 316
11.2.1mCLinux介绍 316
11.2.2mCLinux档案结构 319
11.3实例过程 319
11.3.1暂存器配置和档案修改 319
11.3.2编译过程 321
11.3.3下载与运行结果 322
11.4课后练习 325
第12章Linux下网路通信实例 327
12.1网路协定介绍 327
12.1.1乙太网协定 327
12.1.2ARP协定 328
12.1.3ICMP协定 330
12.1.4UDP协定 330
12.1.5TCP协定 332
12.1.6FTP、HTTP等套用层
协定 334
12.2Linux网路协定层 336
12.2.1网路层次总体结构 336
12.2.2网路设备驱动程式分析 340
12.3实例过程 342
12.3.1CS800A驱动的编写 342
12.3.2TCP编程实例 349
12.3.3UDP编程实现 351
12.4课后练习 353
第13章图形用户界面实例 355
13.1概述 355
13.1.1GUI简介 355
13.1.2GUI特徵 356
13.1.3GUI架构 357
13.2嵌入式LinuxGUI简介 358
13.2.1MicroWindows 358
13.2.2OpenGUI 359
13.2.3Qt/Embedded 359
13.2.4MiniGUI 360
13.3Qt/Embedded图形开发实例 361
13.3.1Qt/Embedded介绍与安装 361
13.3.2Qt/Embedded信号和插槽机制 366
13.3.3Qt/Embedded实现技术分析 369
13.3.4Qt/Embedded图形引擎实现基础 370
13.3.5Qt/Embedded事件驱动的基础 371
13.3.6Qt/Embedded应用程式的开发流程 371
13.3.7Qt/Embedded的移植与套用 372
13.3.8Qt/Embedded视窗实例 374
13.4课后练习 378
附录各章课后练习参考答案 379