嵌入式系统接口设计与Linux驱动程序开发.docx
-
资源ID:35581374
资源大小:109.35KB
全文页数:6页
- 资源格式: DOCX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
嵌入式系统接口设计与Linux驱动程序开发.docx
嵌入式系统接口设计与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嵌入式系统概述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.4uptechpxa270上的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.4upnetarm2410s平台的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.1uptechpxa270平台上nor flash驱动程序309 14.2.2uptechpxa270平台上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.3uptechpxa270平台上的blob分析353 16.2arm linux内核的启动过程362 16.2.1编译生成linux内核362 16.2.2uptechpxa270平台上的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本书用到的缩写 参考文献