基本信息·出版社:北京航空航天大学出版社 ·页码:405 页 ·出版日期:2006年05月 ·ISBN:7810778617 ·条形码:9787810778619 ·版本:第1版 ·装帧: ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
嵌入式系统接口设计与Linux驱动程序开发 |
|
|
|
嵌入式系统接口设计与Linux驱动程序开发 |
|
基本信息·出版社:北京航空航天大学出版社
·页码:405 页
·出版日期:2006年05月
·ISBN:7810778617
·条形码:9787810778619
·版本:第1版
·装帧:平装
·开本:16开 Pages Per Sheet
内容简介 《嵌入式系统接口设计与Linux驱动程序开发》针对ARM处理器为核心的主流嵌入式系统平台,主要讲述嵌入式Linux驱动程序的设计和开发过程。内容同时涵盖嵌入式系统的软硬件两个方面:一方面是嵌入式系统常用的硬件接口时序、电气特性等内容的分析;另一方面讲述对应硬件的Linux驱动程序实现方法。《嵌入式系统接口设计与Linux驱动程序开发》共分为16章。第1、2章介绍嵌入式系统和Linux驱动程序的基础性知识。从第3章开始,详细讲述硬件平台及其对应的Linux驱动程序。硬件包括I/O口、CAN总线、触摸屏、I2C、PS/2、异步串口、音频、显示、IDE、PCMCIA、USB、以太网以及Flash的使用等内容。软件涉及针对上述硬件的各种驱动程序在Linux下的体系结构,Linux的字符设备、块设备和网络设备驱动程序,ARM Linux的中断处理,BootLoader和内核的启动过程等。
《嵌入式系统接口设计与Linux驱动程序开发》可作为机器人技术、机电控制系统、信息家电、工业控制、手持设备、智能玩具、医疗仪器等方面嵌入式系统开发与应用的参考书,也可作为高等院校有关嵌入式系统教学的本科生或研究生的教材。
作者简介 刘焱,吉林省吉林市人。2000年开始从事嵌入式系统方面的研发工作,参加过多项国家863、自然基金研究项目,熟练掌握ARM等RISC微处理器系统的硬件设计及Linux、WinCEVxWorks等操作系统的软件设计.尤其擅长硬件接口与驱动程序等系统底层架构设计。先后主持过基于S3C4480、S3C2410、PXA270等多款嵌入式教学实验平台及基于HMS30C7202.AT91 RM9200的工业测控系统的开发工作,作为主要研究人员完成的嵌入式数控系统已在企业成功应用。曾担任过清华大学软件学院、北京航空航天大学软件学院嵌入式系统课程的实验教学工作及南开大学软件学院的嵌入式系统专业课程教学工作。现任中国电子学会嵌入式系统培训中心ESTC认证讲师。
编辑推荐 Linux是源码开放的操作系统,它发展迅速,爱好者众多,同时也是主流的嵌入式操作系统之一。以ARM为核心的处理器应用广泛,成本低廉,软件支持好,也是当今市场占有率最高的32位嵌入式处理器。《嵌入式系统接口设计与Linux驱动程序开发》Linux和ARM处理器平台为例,结合两大主流软件和硬件,讲述嵌入系统开发的相关知识,是对深入学习嵌入式系统很有借鉴意义的书。
目录 第1章 典型的嵌入式系统体系结构
1.1 嵌入式系统概述
1.2 嵌入式系统的组成
1.2.1 嵌入式平台的硬件架构
1.2.2 板级支持包和嵌入式系统
1.2.3 嵌入式系统上的应用程序
1.3 嵌入式系统的开发流程和优势
1.4 嵌入式系统的方案选择
1.4.1 处理器的选择
1.4.2 嵌入式操作系统的选择
1.5 本书涉及的平台及Linux内核版本
第2章 Linux内核与驱动程序
2.1 Linux内核与ARM
2.2 阅读ARM Linux内核源码
2.3 翻译环境的建立
2.4 Linux驱动程序
2.4.1 用户态与内核态
2.4.2 Linux驱动程序结构
2.4.3 设备文件与设备文件系统
第3章 简单的Linux字符设备驱动程序
3.1 Linux字符设备驱动程序结构
3.2 一个双色LED的Linux驱动程序
3.2.1 系统硬件平台组成原理
3.2.2 Linux下的双色LED驱动程序实现
3.2.3 双色LED驱动程序的测试
3.3 按键的Linux驱动程序
3.3.1 系统硬件平台组成原理
3.3.2 Linux系统中断分析
3.3.3 Linux下按键驱动程序的实现
3.3.4 按键驱动程序的测试
第4章 CAN总线接口设计与Linux驱动程序
4.1 CAN总线接口设计
4.1.1 CAN总线概述
4.1.2 嵌入式处理器上扩展CAN总线接口
4.2 CAN总线驱动程序的体系结构
4.3 CAN总线的Linux驱动程序
4.4 CAN总线驱动测试程序
第5章 触摸屏接口设计与Linux驱动程序
5.1 触摸屏接口设计
5.1.1 触摸屏概述
5.1.2 嵌入式处理器上扩展触摸屏接口
5.2 触摸屏驱动程序的体系结构
5.3 触摸屏的Linux驱动程序分析
5.3.1 自定义的字符设备
5.3.2 Linux的输入设备
5.4 触摸屏驱动测试程序
5.4.1 自定义触摸屏设备
5.4.2 输入事件接口的触摸屏设备
5.5 触摸屏的校准方法
第6章 I2C总线与Linux驱动程序
6.1 I2C总线接口设计
6.1.1 I2C总线概述
6.1.2 嵌入式处理器上的12C总线接口
6.2 Linux下12C总线驱动程序体系结构
6.3 S3C2410上的I2C总线驱动程序分析
6.4 I2C总线驱动测试程序
第7章 PS/2接口设计与Linux键盘/鼠标驱动程序
7.1 PS/2接口设计
7.1.1 键盘接口与PS/2
7.1.2 PS/2接口的物理标准
7.1.3 PS/2接口的电气特性
7.1.4 PS/2键盘的数据帧格式
7.1.5 PS/2鼠标的数据帧格式
7.1.6 嵌入式处理器上扩展PS/2接口
7.2 Linux键盘驱动程序体系结构
7.3 UP—NETARM2410平台的PS/2接口驱动程序分析
7.3.1 现有的I2C总线驱动的不足
7.3.2 对Limax下I2C总线驱动程序的改造
7.3.3 PS/2接口驱动的实现
7.3.4 PS/2键盘驱动程序
7.3.5 PS/2鼠标驱动程序
7.4 PS/2接口驱动的测试
7.4.1 PS/2键盘
7.4.2 PS/2鼠标
第8章 音频接口设计与Linux驱动程序
8.1 音频总线
8.1.1 I2S总线接口
8.1.2 AC97总线接口
8.1.3 音频接口的硬件设计
8.2 Linux音频驱动程序体系结构
8.3 S3C2410平台的音频驱动分析
8.3.1 DMA的重要性
8.3.2 标准的音频设备
8.4 音频驱动的测试
第9章 异步串口与Linux驱动程序
9.1 异步串口概述
9.1.1 异步传输的标准与分类
9.1.2 16C550兼容的异步串口控制器
9.1.3 异步串口的硬件设计
9.2 Linux终端与控制台体系
9.2.1 Linux终端概述
9.2.2 Linux控制台的初始化过程
9.2.3 Linux启动命令行与控制台定义
9.2.4 控制台与printk输出
9.3 Linux串口驱动程序与分析
9.3.1 UART驱动注册函数
9.3.2 16c550驱动程序端口的初始化
9.3.3 设备文件名和控制台名的问题
9.4 Linux串口的应用
9.4.1 Linux串口测试
9.4.2 Linux串口编程
9.4.3 通过Linux串口实现GPRS拨号上网
第10章 显示接口与Linux帧缓冲
10.1 液晶显示概述
10.1.1 液晶显示简介
10.1.2 液晶屏接口
10.1.3 VGA接口
10.1.4 TFT接口到VGA接口的转换
10.2 嵌入式处理器上的LCD控制器
10.2.1 LCD控制器
10.2.2 显示缓存与显示点的对应关系
10.3 Linux帧缓冲驱动程序体系结构
10.4 PXA270上简单的帧缓冲驱动程序
10.5 Linux帧缓冲的应用程序接口
10.5.1 一个简单的Linux帧缓冲的应用程序
10.5.2 Linux下常用的基于帧缓冲的GUI
第11章 IDE接口与Linux驱动程序设计
11.1 IDE接口概述
11.1.1 IDE接口物理及电气特性
11.1.2 IDE接口寄存器
11.1.3 应用于嵌入式系统的存储设备
11.1.4 IDE模式的CF卡
11.2 嵌入式处理器的IDE接口扩展
11.3 Linux的IDE驱动程序接口
11.4 UP-TECHPXA270上的IDE接口驱动程序分析
11.4.1 Linux 2.4内核中IDE接口驱动程序
11.4.2 Linux 2.6内核中IDE接口驱动程序
11.5 IDE驱动程序测试
11.5.1 硬盘分区工具
11.5.2 常见的磁盘文件系统
11.5.3 Linux下FAT和Ext3文件系统的使用
第12章 PCMCIA接口与LinlllX驱动程序结构
12.1 PCMCIA接口
12.1.1 PCMCIA接口概述
12.1.2 PCMCIA接口引脚定义
l2.1.3 PCMCIA卡的类型检测
12.1.4 PCMC:IA与CF卡
12.2 为嵌入式处理器扩展PCMCIA接口
12.3 Linux下PCMCIA驱动程序接口
12.4 UP-NETARM2410—S平台的PCMCIA接口驱动程序分析
12.5 PCMCIA接口测试
l2.5.1 PCMCIA接口CF卡的应用
l2.5.2 PCMCIA接口无线网卡的应用
第13章 USB HOST接口与Linux驱动程序设计
13 1 USB接口概述
13.2 LISBOHCI标准
13.3 LISB Host接口的硬件设计
13.4 Linux的LISBOHCI驱动程序接口分析
13.5 USB Host驱动程序测试
13.5.1 热插拔脚本
13.5.2 利用热插拔脚本实现U盘的自动加载
第14章 建立Flash上的文件系统
14.1 Flash的特性
14.1.1 Flash的分类与比较
14.1.2 NAND Flash与处理器的接口
14.2 Linux下MTD驱动程序体系结构
14.2.1 UP-TECHPXA270平台上NORFlash驱动程序
14.2.2 UP-TECHPXA270平台上NANDFlash驱动程序
14.2.3 MTD驱动程序的配置
14.3 MTD驱动程序的接口与测试
14.4 建立在Flash上的文件系统
14.4.1 JFFsx文件系统
14.4.2 YAFFS/YAFFS2文件系统
14.4.3 cramfs文件系统
第15章 以太网接口与Linux网络驱动程序设计
15.1 以太网概述
15.1.1 以太网MAC层帧格式
15.1.2 网络协议栈与常用的网络通信协议
15.2 嵌入式处理器上扩展以太网接口
15.2.1 带有MAC层控制器的嵌入式处理器
15.2.2 通过MAC+PHY的以太网芯片扩展
15.3 Linux网络驱动程序体系结构
15.3.1 Linux网络驱动程序的层次
15.3.2 网络设备的初始化
15.3.3 网络数据包的发送和接收
15.3.4 网络设备的内核加载
15.3.5 网络设备的模块加载
15.4 NE2000兼容的网卡驱动程序的移植
15.5 网络的应用与测试
15.5.1 Linux的网络配置
15.5.2 网络数据嗅探器软件
15.5.3 NFS文件系统的使用
第16章 嵌入式Linux的启动过程
16.1 BootLoader
16.1.1 BootLoader概述
16.1.2 常见的Linux BootLoader
16.1.3 UP TECHPXA270平台上的Blob分析
16.2 ARM Linux内核的启动过程
16.2.1 编译生成Linux内核
16.2.2 UP—TECHPXA270平台上的Linux启动过程
16.3 Linux的根文件系统
16.3.1 基本的Linux根文件系统结构
16.3.2 用BusyBox建立简单的根文件系统
16.3.3 在Flash上建立JFFS2根文件系统
附录A 键盘扫描码表
A.1 第1套键盘扫描码
A.2 第2套键盘扫描码
A.3 第3套键盘扫描码
附录B ARM MMU简介
B.1 ARM MMU的基本结构
B.2 ARM的存储器访问方法
B.3 允许和禁止MMU
B.4 虚拟地址到物理地址的转换过程
B.4.1 转换表基址
B.4.2 取第一级表
B.4.3 第一级描述符
B.4.4 节的描述符和转换
B.5 访问权限
B.6 CPl5寄存器
B.6.1 寄存器1:MMU控制位
B.6.2 寄存器2:转换表基地址
B.6.3 寄存器3:域访问控制
B.6.4 寄存器4:保留
B.6.5 寄存器5:错误状态寄存器FSR
B.6.6 寄存器6:错误地址寄存器FAR
B.6.7 寄存器8:TLB功能
B.6.8 寄存器10:TLB锁定
附录C 本书用到的缩写
参考文献
……
序言 我十分荣幸结识并指导了一批优秀的博士生,他们不仅勤奋好学,勇于开拓,更重要的是他们有抱负、有理想,刘淼博士就是其中的一位。我记得第一次见到刘淼是2000年,当时他还是北京航空航天大学一名大二的学生,经我的一位博士生介绍,加入了我们仿生机器鱼研究小组。他给我的印象是个头不高,身体单薄,但微笑中带着亮亮的眼神,眼神中透着自信和执著。随后他们小组通过勤奋努力,其研究成果“多微小型仿生机器鱼协调控制”获得了2001年全国“挑战杯”大学生课外科技活动竞赛一等奖,刘淼作为第一作者,主要负责其中的单片机控制和图像处理软件工作。刘淼不仅编程能力很强,硬件设计能力也很强。