标题：嵌入式系统接口设计与Linux驱动程序开发
基本信息
作者： 刘淼  嵌入式系统接口设计与Linux驱动程序开发出版社：北京航空航天大学出版社
ISBN：7810778617
上架时间：2006-6-2
出版日期：2006 年6月
开本：16开
页码：405
版次：1-1
内容简介
本书针对arm处理器为核心的主流嵌入式系统平台，主要讲述嵌入式linux驱动程序的设计和开发过程。内容同时涵盖嵌入式系统的软硬件两个方面： 一方面是嵌入式系统常用的硬件接口时序、电气特性等内容的分析；另一方面讲述对应硬件的linux驱动程序实现方法。本书共分为16章。第1、2章介绍嵌入式系统和linux驱动程序的基础性知识。从第3章开始，详细讲述硬件平台及其对应的linux驱动程序。硬件包括i/o口、can总线、触摸屏、 i2c、ps/2、异步串口、音频、显示、ide、pcmcia、usb、以太网以及flash的使用等内容。软件涉及针对上述硬件的各种驱动程序在 linux下的体系结构，linux的字符设备、块设备和网络设备驱动程序，arm linux的中断处理，bootloader和内核的启动过程等。.
本书可作为机器人技术、机电控制系统、信息家电、工业控制、手持设备、智能玩具、医疗仪器等方面嵌入式系统开发与应用的参考书，也可作为高等院校有关嵌入式系统教学的本科生或研究生的教材。 ...
目录
第1章典型的嵌入式系统体系结构
1.1嵌入式系统概述1
1.2嵌入式系统的组成1
1.2.1嵌入式平台的硬件架构2
1.2.2板级支持包和嵌入式系统2
1.2.3嵌入式系统上的应用程序3
1.3嵌入式系统的开发流程和优势3
1.4嵌入式系统的方案选择5
1.4.1处理器的选择5
1.4.2嵌入式操作系统的选择5
1.5本书涉及的平台及linux内核版本7
第2章linux内核与驱动程序
2.1linux内核与arm8
2.2阅读arm linux内核源码8
2.3编译环境的建立9
2.4linux驱动程序12
2.4.1用户态与内核态12
2.4.2linux驱动程序结构13
2.4.3设备文件与设备文件系统13
第3章简单的linux字符设备驱动程序
.3.1linux字符设备驱动程序结构18
3.2一个双色led的linux驱动程序19
3.2.1系统硬件平台组成原理19
3.2.2linux下的双色led驱动程序实现21
3.2.3双色led驱动程序的测试32
3.3按键的linux驱动程序33
3.3.1系统硬件平台组成原理34
3.3.2linux系统中断分析35
3.3.3linux下按键驱动程序的实现53
3.3.4按键驱动程序的测试60
第4章can总线接口设计与linux驱动程序
4.1can总线接口设计62
4.1.1can总线概述62
4.1.2嵌入式处理器上扩展can总线接口64
4.2can总线驱动程序的体系结构67
4.3can总线的linux驱动程序68
4.4can总线驱动测试程序79
第5章触摸屏接口设计与linux驱动程序
5.1触摸屏接口设计83
5.1.1触摸屏概述83
5.1.2嵌入式处理器上扩展触摸屏接口85
5.2触摸屏驱动程序的体系结构87
5.3触摸屏的linux驱动程序分析88
5.3.1自定义的字符设备88
5.3.2linux的输入设备94
5.4触摸屏驱动测试程序98
5.4.1自定义触摸屏设备98
5.4.2输入事件接口的触摸屏设备99
5.5触摸屏的校准方法101
第6章i2c总线与linux驱动程序
6.1i2c总线接口设计106
6.1.1i2c总线概述106
6.1.2嵌入式处理器上的i2c总线接口109
6.2linux下i2c总线驱动程序体系结构110
6.3s3c2410上的i2c总线驱动程序分析111
6.4i2c总线驱动测试程序116
第7章ps/2接口设计与linux键盘/鼠标驱动程序
7.1ps/2接口设计120
7.1.1键盘接口与ps/2120
7.1.2ps/2接口的物理标准121
7.1.3ps/2接口的电气特性122
7.1.4ps/2键盘的数据帧格式124
7.1.5ps/2鼠标的数据帧格式125
7.1.6嵌入式处理器上扩展ps/2接口126
7.2linux键盘驱动程序体系结构134
7.3up-netarm2410平台的ps/2接口驱动程序分析137
7.3.1现有的i2c总线驱动的不足138
7.3.2对linux下i2c总线驱动程序的改造138
7.3.3ps/2接口驱动的实现141
7.3.4ps/2键盘驱动程序149
7.3.5ps/2鼠标驱动程序153
7.4ps/2接口驱动的测试156
7.4.1ps/2键盘156
7.4.2ps/2鼠标156
第8章音频接口设计与linux驱动程序
8.1音频总线157
8.1.1i2s总线接口158
8.1.2ac97总线接口160
8.1.3音频接口的硬件设计163
8.2linux音频驱动程序体系结构164
8.3s3c2410平台的音频驱动分析165
8.3.1dma的重要性166
8.3.2标准的音频设备167
8.4音频驱动的测试175
第9章异步串口与linux驱动程序
9.1异步串口概述177
9.1.1异步传输的标准与分类177
9.1.216c550兼容的异步串口控制器182
9.1.3异步串口的硬件设计184
9.2linux终端与控制台体系185
9.2.1linux终端概述185
9.2.2linux控制台的初始化过程186
9.2.3linux启动命令行与控制台定义189
9.2.4控制台与printk输出191
9.3linux串口驱动程序与分析192
9.3.1uart驱动注册函数193
9.3.216c550驱动程序端口的初始化197
9.3.3设备文件名和控制台名的问题198
9.4linux串口的应用199
9.4.1linux串口测试199
9.4.2linux串口编程199
9.4.3通过linux串口实现gprs拨号上网201
第10章显示接口与linux帧缓冲
10.1液晶显示概述205
10.1.1液晶显示简介205
10.1.2液晶屏接口206
10.1.3vga接口210
10.1.4tft接口到vga接口的转换211
10.2嵌入式处理器上的lcd控制器213
10.2.1lcd控制器214
10.2.2显示缓存与显示点的对应关系216
10.3linux帧缓冲驱动程序体系结构217
10.4pxa270上简单的帧缓冲驱动程序221
10.5linux帧缓冲的应用程序接口230
10.5.1一个简单的linux帧缓冲的应用程序230
10.5.2linux下常用的基于帧缓冲的gui234
第11章ide接口与linux驱动程序设计
11.1ide接口概述235
11.1.1ide接口物理及电气特性237
11.1.2ide接口寄存器241
11.1.3应用于嵌入式系统的存储设备243
11.1.4ide模式的cf卡244
11.2嵌入式处理器的ide接口扩展246
11.3linux的ide驱动程序接口249
11.4up?techpxa270上的ide接口驱动程序分析250
11.4.1linux 2.4内核中ide接口驱动程序250
11.4.2linux 2.6内核中ide接口驱动程序252
11.5ide驱动程序测试254
11.5.1硬盘分区工具255
11.5.2常见的磁盘文件系统255
11.5.3linux下fat和ext3文件系统的使用257
第12章pcmcia接口与linux驱动程序结构
12.1pcmcia接口259
12.1.1pcmcia接口概述259
12.1.2pcmcia接口引脚定义260
12.1.3pcmcia卡的类型检测265
12.1.4pcmcia与cf卡267
12.2为嵌入式处理器扩展pcmcia接口270
12.3linux下pcmcia驱动程序接口275
12.4up?netarm2410?s平台的pcmcia接口驱动程序分析276
12.5pcmcia接口测试283
12.5.1pcmcia接口cf卡的应用283
12.5.2pcmcia接口无线网卡的应用284
第13章usb host接口与linux驱动程序设计
13.1usb接口概述286
13.2usb ohci标准288
13.3usb host接口的硬件设计289
13.4linux的usb ohci驱动程序接口分析290
13.5usb host驱动程序测试295
13.5.1热插拔脚本296
13.5.2利用热插拔脚本实现u盘的自动加载298
第14章建立flash上的文件系统
14.1flash的特性301
14.1.1flash的分类与比较302
14.1.2nand flash与处理器的接口303
14.2linux下mtd驱动程序体系结构307
14.2.1up?techpxa270平台上nor flash驱动程序309
14.2.2up?techpxa270平台上nand flash驱动程序315
14.2.3mtd驱动程序的配置320
14.3mtd驱动程序的接口与测试320
14.4建立在flash上的文件系统321
14.4.1jffsx文件系统321
14.4.2yaffs/yaffs2文件系统324
14.4.3cramfs文件系统326
第15章以太网接口与linux网络驱动程序设计
15.1以太网概述328
15.1.1以太网mac层帧格式329
15.1.2网络协议栈与常用的网络通信协议330
15.2嵌入式处理器上扩展以太网接口332
15.2.1带有mac层控制器的嵌入式处理器332
15.2.2通过mac+phy的以太网芯片扩展333
15.3linux网络驱动程序体系结构334
15.3.1linux网络驱动程序的层次334
15.3.2网络设备的初始化335
15.3.3网络数据包的发送和接收336
15.3.4网络设备的内核加载337
15.3.5网络设备的模块加载339
15.4ne2000兼容的网卡驱动程序的移植340
15.5网络的应用与测试344
15.5.1linux的网络配置344
15.5.2网络数据嗅探器软件345
15.5.3nfs文件系统的使用347
第16章嵌入式linux的启动过程
16.1bootloader350
16.1.1bootloader概述350
16.1.2常见的linux bootloader352
16.1.3up?techpxa270平台上的blob分析353
16.2arm linux内核的启动过程362
16.2.1编译生成linux内核362
16.2.2up?techpxa270平台上的linux启动过程364
16.3linux的根文件系统382
16.3.1基本的linux根文件系统结构382
16.3.2用busybox建立简单的根文件系统383
16.3.3在flash上建立jffs2根文件系统386
附录a键盘扫描码表
a.1第1套键盘扫描码388
a.2第2套键盘扫描码390
a.3第3套键盘扫描码392
附录barm mmu简介
b.1arm mmu的基本结构394
b.2arm的存储器访问方法395
b.3允许和禁止mmu396
b.4虚拟地址到物理地址的转换过程396
b.4.1转换表基址397
b.4.2取第一级表397
b.4.3第一级描述符397
b.4.4节的描述符和转换398
b.5访问权限399
b.6cp15寄存器399
b.6.1寄存器1： mmu控制位400
b.6.2寄存器2： 转换表基地址400
b.6.3寄存器3： 域访问控制400
b.6.4寄存器4： 保留401
b.6.5寄存器5： 错误状态寄存器fsr401
b.6.6寄存器6： 错误地址寄存器far401
b.6.7寄存器8： tlb功能401
b.6.8寄存器10： tlb锁定402
附录c本书用到的缩写
参考文献