当前位置:文档之家› 嵌入式系统接口设计与Linux驱动程序开发

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

嵌入式系统接口设计和Linux驱动程序开发书名:嵌入式系统接口设计和Linux驱动程序开发作者:刘淼出版社:北京航天航空大学出版社ISBN:9787810778619定价:39.00 元出版日2006-5-1期:编辑推荐Linux是源码开放的操作系统,它发展迅速,爱好者众多,同时也是主流的嵌入式操作系统之一。

以ARM 为核心的处理器使用广泛,成本低廉,软件支持好,也是当今市场占有率最高的32位嵌入式处理器。

本书Linux和ARM处理器平台为例,结合两大主流软件和硬件,讲述嵌入系统开发的相关知识,是对深入学习嵌入式系统很有借鉴意义的书。

内容简介本书针对ARM处理器为核心的主流嵌入式系统平台,主要讲述嵌入式Linux驱动程序的设计和开发过程。

内容同时涵盖嵌入式系统的软硬件两个方面:一方面是嵌入式系统常用的硬件接口时序、电气特性等内容的分析;另一方面讲述对应硬件的Linux驱动程序实现方法。

本书共分为16章。

第1、2章介绍嵌入式系统和Linux驱动程序的基础性知识。

从第3章开始,详细讲述硬件平台及其对应的Linux驱动程序。

硬件包括I/O口、CAN总线、触摸屏、I2CPS/2、异步串口、音频、显示、IDE、PCMCIA、USB、以太网以及Flash 的使用等内容。

软件涉及针对上述硬件的各种驱动程序在Linux下的体系结构,Linux的字符设备、块设备和网络设备驱动程序,ARM Linux的中断处理,BootLoader和内核的启动过程等。

本书可作为机器人技术、机电控制系统、信息家电、工业控制、手持设备、智能玩具、医疗仪器等方面嵌入式系统开发和使用的参考书,也可作为高等院校有关嵌入式系统教学的本科生或研究生的教材。

作者简介刘焱,吉林省吉林市人。

2000年开始从事嵌入式系统方面的研发工作,参加过多项国家863、自然基金研究项目,熟练掌握ARM等RISC微处理器系统的硬件设计及LinuxWinCEVxWorks等操作系统的软件设计.尤其擅长硬件接口和驱动程序等系统底层架构设计。

先后主持过基于S3C4480、S3C2410、PXA270等多款嵌入式教学实验平台及基于HMS30C7202.AT91 RM9200的工业测控系统的开发工作,作为主要研究人员完成的嵌入式数控系统已在企业成功使用。

曾担任过清华大学软件学院、北京航空航天大学软件学院嵌入式系统课程的实验教学工作及南开大学软件学院的嵌入式系统专业课程教学工作。

现任中国电子学会嵌入式系统培训中心ESTC认证讲师。

目录第1章典型的嵌入式系统体系结构1.1嵌入式系统概述11.2嵌入式系统的组成11.2.1嵌入式平台的硬件架构21.2.2板级支持包和嵌入式系统21.2.3嵌入式系统上的使用程序31.3嵌入式系统的开发流程和优势31.4嵌入式系统的方案选择51.4.1处理器的选择51.4.2嵌入式操作系统的选择51.5本书涉及的平台及linux内核版本7第2章linux内核和驱动程序2.1linux内核和arm82.2阅读arm linux内核源码82.3编译环境的建立92.4linux驱动程序122.4.1用户态和内核态122.4.2linux驱动程序结构132.4.3设备文件和设备文件系统13第3章简单的linux字符设备驱动程序3.1linux字符设备驱动程序结构183.2一个双色led的linux驱动程序193.2.1系统硬件平台组成原理193.2.2linux下的双色led驱动程序实现21 3.2.3双色led驱动程序的测试323.3按键的linux驱动程序333.3.1系统硬件平台组成原理343.3.2linux系统中断分析353.3.3linux下按键驱动程序的实现533.3.4按键驱动程序的测试60第4章can总线接口设计和linux驱动程序4.1can总线接口设计624.1.1can总线概述624.1.2嵌入式处理器上扩展can总线接口64 4.2can总线驱动程序的体系结构674.3can总线的linux驱动程序684.4can总线驱动测试程序79第5章触摸屏接口设计和linux驱动程序5.1触摸屏接口设计835.1.1触摸屏概述835.1.2嵌入式处理器上扩展触摸屏接口85 5.2触摸屏驱动程序的体系结构875.3触摸屏的linux驱动程序分析885.3.1自定义的字符设备885.3.2linux的输入设备945.4触摸屏驱动测试程序985.4.1自定义触摸屏设备985.4.2输入事件接口的触摸屏设备995.5触摸屏的校准方法101第6章i2c总线和linux驱动程序6.1i2c总线接口设计1066.1.1i2c总线概述1066.1.2嵌入式处理器上的i2c总线接口1096.2linux下i2c总线驱动程序体系结构1106.3s3c2410上的i2c总线驱动程序分析1116.4i2c总线驱动测试程序116第7章ps/2接口设计和linux键盘/鼠标驱动程序7.1ps/2接口设计1207.1.1键盘接口和ps/21207.1.2ps/2接口的物理标准1217.1.3ps/2接口的电气特性1227.1.4ps/2键盘的数据帧格式1247.1.5ps/2鼠标的数据帧格式1257.1.6嵌入式处理器上扩展ps/2接口1267.2linux键盘驱动程序体系结构1347.3up-netarm2410平台的ps/2接口驱动程序分析137 7.3.1现有的i2c总线驱动的不足1387.3.2对linux下i2c总线驱动程序的改造1387.3.3ps/2接口驱动的实现1417.3.4ps/2键盘驱动程序1497.3.5ps/2鼠标驱动程序1537.4ps/2接口驱动的测试1567.4.1ps/2键盘1567.4.2ps/2鼠标156第8章音频接口设计和linux驱动程序8.1音频总线1578.1.1i2s总线接口1588.1.2ac97总线接口1608.1.3音频接口的硬件设计1638.2linux音频驱动程序体系结构1648.3s3c2410平台的音频驱动分析1658.3.1dma的重要性1668.3.2标准的音频设备1678.4音频驱动的测试175第9章异步串口和linux驱动程序9.1异步串口概述1779.1.1异步传输的标准和分类1779.1.216c550兼容的异步串口控制器1829.1.3异步串口的硬件设计1849.2linux终端和控制台体系1859.2.1linux终端概述1859.2.2linux控制台的初始化过程1869.2.3linux启动命令行和控制台定义1899.2.4控制台和printk输出1919.3linux串口驱动程序和分析1929.3.1uart驱动注册函数1939.3.216c550驱动程序端口的初始化1979.3.3设备文件名和控制台名的问题1989.4linux串口的使用1999.4.1linux串口测试1999.4.2linux串口编程1999.4.3通过linux串口实现gprs拨号上网201第10章显示接口和linux帧缓冲10.1液晶显示概述20510.1.1液晶显示简介20510.1.2液晶屏接口20610.1.3vga接口21010.1.4tft接口到vga接口的转换21110.2嵌入式处理器上的lcd控制器21310.2.1lcd控制器21410.2.2显示缓存和显示点的对应关系21610.3linux帧缓冲驱动程序体系结构21710.4pxa270上简单的帧缓冲驱动程序22110.5linux帧缓冲的使用程序接口23010.5.1一个简单的linux帧缓冲的使用程序23010.5.2linux下常用的基于帧缓冲的gui234第11章ide接口和linux驱动程序设计11.1ide接口概述23511.1.1ide接口物理及电气特性23711.1.2ide接口寄存器24111.1.3使用于嵌入式系统的存储设备24311.1.4ide模式的cf卡24411.2嵌入式处理器的ide接口扩展24611.3linux的ide驱动程序接口24911.4up techpxa270上的ide接口驱动程序分析25011.4.1linux 2.4内核中ide接口驱动程序25011.4.2linux 2.6内核中ide接口驱动程序25211.5ide驱动程序测试25411.5.1硬盘分区工具25511.5.2常见的磁盘文件系统25511.5.3linux下fat和ext3文件系统的使用257第12章pcmcia接口和linux驱动程序结构12.1pcmcia接口25912.1.1pcmcia接口概述25912.1.2pcmcia接口引脚定义26012.1.3pcmcia卡的类型检测26512.1.4pcmcia和cf卡26712.2为嵌入式处理器扩展pcmcia接口27012.3linux下pcmcia驱动程序接口27512.4up netarm2410s平台的pcmcia接口驱动程序分析27612.5pcmcia接口测试28312.5.1pcmcia接口cf卡的使用28312.5.2pcmcia接口无线网卡的使用284第13章usb host接口和linux驱动程序设计13.1usb接口概述28613.2usb ohci标准28813.3usb host接口的硬件设计28913.4linux的usb ohci驱动程序接口分析29013.5usb host驱动程序测试29513.5.1热插拔脚本29613.5.2利用热插拔脚本实现u盘的自动加载298第14章建立flash上的文件系统14.1flash的特性30114.1.1flash的分类和比较30214.1.2nand flash和处理器的接口30314.2linux下mtd驱动程序体系结构30714.2.1up techpxa270平台上nor flash驱动程序309 14.2.2up techpxa270平台上nand flash驱动程序315 14.2.3mtd驱动程序的配置32014.3mtd驱动程序的接口和测试32014.4建立在flash上的文件系统32114.4.1jffsx文件系统32114.4.2yaffs/yaffs2文件系统32414.4.3cramfs文件系统326第15章以太网接口和linux网络驱动程序设计15.1以太网概述32815.1.1以太网mac层帧格式32915.1.2网络协议栈和常用的网络通信协议33015.2嵌入式处理器上扩展以太网接口33215.2.1带有mac层控制器的嵌入式处理器33215.2.2通过mac+phy的以太网芯片扩展33315.3linux网络驱动程序体系结构33415.3.1linux网络驱动程序的层次33415.3.2网络设备的初始化33515.3.3网络数据包的发送和接收33615.3.4网络设备的内核加载33715.3.5网络设备的模块加载33915.4ne2000兼容的网卡驱动程序的移植34015.5网络的使用和测试34415.5.1linux的网络配置34415.5.2网络数据嗅探器软件34515.5.3nfs文件系统的使用347第16章嵌入式linux的启动过程16.1bootloader35016.1.1bootloader概述35016.1.2常见的linux bootloader35216.1.3up techpxa270平台上的blob分析35316.2arm linux内核的启动过程36216.2.1编译生成linux内核36216.2.2up techpxa270平台上的linux启动过程364 16.3linux的根文件系统38216.3.1基本的linux根文件系统结构38216.3.2用busybox建立简单的根文件系统38316.3.3在flash上建立jffs2根文件系统386附录a键盘扫描码表a.1第1套键盘扫描码388a.2第2套键盘扫描码390a.3第3套键盘扫描码392附录barm mmu简介b.1arm mmu的基本结构394b.2arm的存储器访问方法395b.3允许和禁止mmu396b.4虚拟地址到物理地址的转换过程396b.4.1转换表基址397b.4.2取第一级表397b.4.3第一级描述符397b.4.4节的描述符和转换398b.5访问权限399b.6cp15寄存器399b.6.1寄存器1: mmu控制位400b.6.2寄存器2:转换表基地址400b.6.3寄存器3:域访问控制400b.6.4寄存器4:保留401b.6.5寄存器5:错误状态寄存器fsr401b.6.6寄存器6:错误地址寄存器far401b.6.7寄存器8: tlb功能401b.6.8寄存器10: tlb锁定402附录c本书用到的缩写参考文献。

相关主题