嵌入式系统接口设计与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本书用到的缩写

参考文献