嵌入式系统接口设计与Linux驱动程序开发

出版社:北京航空航天大学出版社
出版日期:2006-5
ISBN:9787810778619
作者:刘淼
页数:405页

前言

  我十分荣幸结识并指导了一批优秀的博士生,他们不仅勤奋好学,勇于开拓,更重要的是他们有抱负、有理想,刘淼博士就是其中的一位。我记得第一次见到刘淼是2000年,当时他还是北京航空航天大学一名大二的学生,经我的一位博士生介绍,加入了我们仿生机器鱼研究小组。他给我的印象是个头不高,身体单薄,但微笑中带着亮亮的眼神,眼神中透着自信和执著。随后他们小组通过勤奋努力,其研究成果“多微小型仿生机器鱼协调控制”获得了2001年全国“挑战杯”大学生课外科技活动竞赛一等奖,刘淼作为第一作者,主要负责其中的单片机控制和图像处理软件工作。刘淼不仅编程能力很强,硬件设计能力也很强。

内容概要

  刘焱,吉林省吉林市人。2000年开始从事嵌入式系统方面的研发工作,参加过多项国家863、自然基金研究项目,熟练掌握ARM等RISC微处理器系统的硬件设计及Linux、WinCEVxWorks等操作系统的软件设计.尤其擅长硬件接口与驱动程序等系统底层架构设计。先后主持过基于S3C4480、S3C2410、PXA270等多款嵌入式教学实验平台及基于HMS30C7202.AT91 RM9200的工业测控系统的开发工作,作为主要研究人员完成的嵌入式数控系统已在企业成功应用。曾担任过清华大学软件学院、北京航空航天大学软件学院嵌入式系统课程的实验教学工作及南开大学软件学院的嵌入式系统专业课程教学工作。现任中国电子学会嵌入式系统培训中心ESTC认证讲师。

书籍目录

第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内核与ARM2.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/27.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 BootLoader16.1.1 BootLoader概述16.1.2 常见的Linux BootLoader16.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 允许和禁止MMUB.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:错误状态寄存器FSRB.6.6 寄存器6:错误地址寄存器FARB.6.7 寄存器8:TLB功能B.6.8 寄存器10:TLB锁定附录C 本书用到的缩写参考文献

编辑推荐

  Linux是源码开放的操作系统,它发展迅速,爱好者众多,同时也是主流的嵌入式操作系统之一。以ARM为核心的处理器应用广泛,成本低廉,软件支持好,也是当今市场占有率最高的32位嵌入式处理器。《嵌入式系统接口设计与Linux驱动程序开发》Linux和ARM处理器平台为例,结合两大主流软件和硬件,讲述嵌入系统开发的相关知识,是对深入学习嵌入式系统很有借鉴意义的书。

作者简介

《嵌入式系统接口设计与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驱动程序开发》可作为机器人技术、机电控制系统、信息家电、工业控制、手持设备、智能玩具、医疗仪器等方面嵌入式系统开发与应用的参考书,也可作为高等院校有关嵌入式系统教学的本科生或研究生的教材。

图书封面


 嵌入式系统接口设计与Linux驱动程序开发下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024