下载  >  课程资源  >  嵌入式  > ARM嵌入式Linux设备驱动实例开发.pdf

ARM嵌入式Linux设备驱动实例开发.pdf 评分:

ARM嵌入式Linux设备驱动实例开发.pdf 本书通俗易懂,可作为高等院校电子类、电气类、控制类、计算机类等专业本科生、研究生学习嵌入式Linux设备驱动开发的参考书或自学教材,也可供广大希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式开发培训班的教材或教辅材料。有8个典型实例。按键设备驱动、触摸屏设备驱动、MMC/SD设备驱动、网卡设备驱动、Framebuffer设备驱动、USB设备驱动、PCI设备驱动 Linux是一个成熟而稳定的开放源代码操作系统,将Linux植入嵌入式设备具有众多的优点。本书以应用最广泛的新一代ARM9处理器为对象,专门分析Linux系统下设备驱动的设计
ARM嵌入式 Linux系统开发丛书 ARM嵌入式 设备驱动实例开发 李亚锋编著 忄用电力归照姓 www.infopower.c。m.cn 内容提要 Linux是一个成熟而稳定的开放源代码操作系统,将Linx植入嵌入式设备具有众多的优点。本书以 应用最广泛的新一代ARM9处理器为对象,专门分析Lnux系统下设备驱动的设计和实现方法。本书以8 个典型实例为研究对象,讲述基于 Linux2620内核的设备驱动开发过程。这些实例几乎覆盖了Linx系 统下常见的设备类型,其中包括按键设备、触摸屏、 MMCSD、网卡、 Framebuffer、USB和PCI设备等, 本书提供了实例的所有源代码,便于读者分析和学习。 本书通俗易懂,可作为高等院校电子类、电气类、控制类、计算机类等专业本科生、研究生学习嵌 人式 Linux设备驱动开发的参考书或自学教材,也可供广大希望转人嵌入式领域的科研和工程技术人员 参考使用,还可作为嵌人式开发培训班的教材或教辅材料。 图书在版编目(C|P)数据 ARM嵌人式 Linux设备驱动实例开发/李亚锋编著北京:中国电力出版社,2008 (ARM嵌入式Iim系统开发丛书) IsBN978-7-5083-7435-2 L.A…Ⅱ.李…Ⅲ.①微处理器,ARM-系统设计②Iix操作系统-系统设计Ⅳ.TP332TP31689 中国版本图书馆CIP数据核字(2008)第077264号 责任编辑:王杏芸 责任校对:崔燕菊 责任印制:郭华清 书名:ARM嵌入式Iimx设备驱动实例开发 编著:李亚锋 出版发行:中国电力出版社 地址:北京市三里河路6号邮政编码:100044 电话:(010)68362602传真:(010)68316497 印刷:北京同江印刷厂 开本尺寸:185mmx260mm印张:16字数:337千字 书号:ISBN978-7-5083-7435-2 版次:2008年7月北京第1版 印次:208年7月第1次印刷 印数:0001-4000册 定价:3000元(含1CD) 敬告读者 本书封面贴有防伪标签,加热后中心图案消失 本书如有印装质量问题,我社发行部负责退换 版权专有翻印必究 A前言 开放的Liux受到广泛的欢迎,得到越来越多公司的支持,但是阻碍 Linux在各个领 域广泛应用的主要因素就是内核和驱动开发高端人才极度缺乏。 Linux源代码中85%是设 备驱动,在嵌入式系统中驱动程序更为重要,几乎每一个嵌入式系统都是从驱动程序员手 中调试出来的。面对巨大的市场需求,将有越来越多的人员加入到 Linux设备驱动开发行 业中来。但许多初学者根本不知道如何入手学习 Linux设备驱动开发,本书以实用简洁为 宗旨给读者提供了一个纲领性的参考,希望读者能快速地掌握嵌入式 Linux设备驱动开发 的核心。 编写目的 嵌入式 Linux属于一个交叉学科,并且也是一个高起点的学科,它涵盖了微电子技术、 电子信息技术、计算机软件和硬件等多项技术领域。另外,学习嵌入式 Linux最好具备相 应的嵌入式开发板和软件,还需要有经验的人进行指导开发。目前国内大部分高校都很难 达到这种要求,这也是造成目前国内嵌入式 Linux开发人才极其缺乏局面的原因之一。 很多希望学习嵌入式 Linux设备驱动的人已经具备了一定的硬件知识,并且对操作系 统原理、数据结构等都很了解,但在 Linux系统下进行设备驱动开发仍然没有合适的入口 点。编写本书的主要目的就是对那些 Linux设备驱动开发的初学者有个很好的指导作用, 让他们少走弯路。 此外,笔者希望通过编写本书来总结这几年在工作中的项目经验,与更多的读者分享 自己的技术,也是对自己所做项目的巩固;通过编写本书,笔者更加清楚了实践与理论之 间的联系,从而将自己的亲身经验和教训寄托在书中的每个章节。 主要内容 本书共由10章组成,提供8个典型实例,以下是每章的内容概要: 口第1章:介绍嵌入式 Linux设备驱动开发基础知识,包括 Linux设备驱动概念以及 分类、Liuⅸ中断处理、内存与IO端口、并发控制、阻塞与非阻塞概念。此外, 以最简单的内核模块 Hello world为例,讲述 Linux设备驱动的编译与加载。接着 介绍了ARM处理器及其选型,还专门介绍了常用的ARM处理器S3C2410。最后 介绍了北京蓝海微芯科技发展有限公司提供的ARM9开发板,本书所有实验代码 都是基于该开发板进行的。 口笫2章:介绍本书的第一个典型实例:按键设备模块的驱动开发。首先介绍按键 3ARM嵌入式 Linux设备驱动实例开发 设备的硬件接口和相关寄存器,接着介绍字符设备相关的核心数据结构,最后重 忐点分析按键设备驱动程序的代码实现,并且给出了该设备驱动的测试程序 口第3章:以触摸屏设备驱动为实例,首先对触摸屏设备进行了讲述,包括四线式 触摸屏工作原理以及S3C2410触摸屏接口的工作原理;然后讲述触摸屏设备的接 口电路以及相关的寄存器定义;接着重点分析了触摸屏设备驱动程序的代码实现; 最后饼述了如何编译和测试触摸屏设备驱动程序 第4章:以MMC/SD卡设备驱动为实例,首先对 MMCISD卡分别进行了介绍,然 后讲述S3C2410芯片的SD接口以及相关的寄存器定义,接着重点分析了 MMC/SD 卡设备驱动程序的代码实现,最后讲迷了如何测试和编译MMC/SD卡设备驱动 程序 口笫5章:以CS8900A网卡设备驱动为实例,首先对网络设备驱动进行了介绍,然 后讲述CS8900A网卡设备,接着重点分析CS8900A网卡设备驱动程序的代码实 现,最后讲述了如何测试和编译CS8900A网卡设备驱动程序 第6章:介绍基于 Framebuffer的ICD设备驱动。首先对 Framebuffer进行了介绍, 然后讲述 framebuffer内部的API,接着重点分析基于 Framebuffer机制的LCD设 备驱动程序的代码实现,最后讲述了如何编译和测试LCD设备驱动程序 口第7章:介绍USB驱动程序的实现。首先对USB进行了概要介绍;然后介绍USB 驱动。其中包括USB主机驱动、Hub驱动和设备驱动;最后重点分析USB主控制 器驱动程序和USB设备驱动程序 口第8章:介绍 NAND Flasl驱动程序的实现。首先对 NAND Flash进行了概要介绍, 然后讲述MTD设备驱动,最后重点分析S3C2410 NAND Flash设备驱动程序。此 外,还讲述了如何使用 fdisk工具在Lnux系统下为CF卡进行分区 口第9章:介绍PCI设备驱动程序的实现。首先对PCI总线进行了概要介绍,然后 讲述PCI设备驱动,最后重点分析了PCI设备驱动程序的代码实现。 口第10章:主要介绍Linuκ下常用调试方法和调试工具。首先介绍打印调试技术; 然后介绍查询调试技术;最后介绍常见的内核调试工具,分别介绍了GDB、KGDB、 KDB、 strace和OOPS。 致谢 首先,感谢我的妻子,是她精心照顾家庭才使得我能专心从事撰写工作,这本书的完 成离不开她对我的默默支持。其次,感谢我的岳父、岳母,是他们对我们孩子的精心照顾, 才使得我有更多的时间投入到写作中。 鉴于作者水平限,加之时间仓促,本书一定有不少疏漏与不妥之处,希望得到广大 读者的指正与建议。有兴趣的读者可以登录笔者的个人Blog来做技术上的交流: http://mike2linus.blog.com.cn/ 作者 2008年4月 目录 前言 第1章嵌入式Lnux设备驱动开发基础 中中·中●中●看垂和··目取面是 l1设备驱动介绍… 11,1 Linux设备驱动… 虚會音■1日曾會中宁中中,导·· …2 1.1.2 Linux设备驱动分类 12设备驱动相关的重要概念 12.1 Linux中断 12,2内存与IO端口 123并发控制……… 10 124阻塞( Blocking)与非阻塞( Nonblocking) 14 1.3运行和编译设备驱动模块 13.1编写 Hello world设备模块 55 132编写 Makefile……… 1.3、3加载和卸载模块 4;■;,和↓↓玉日道息t中自;日目目目中中中中中中 如面女h血tttt番 18 4ARM处理器…………………… i日噩量噩F吾普卡平晋早甲日·■■ 19 41ARM处理器简介 9 142ARM处理器的选型 …如如“+++日14事耳果 143S32410筒介 21 1.5LD2410DⅤKI开发板 …22 151开发板简介… ……22 152硬件资源……… ●中中和中 ………24 153软件资源 和#本本4日日:血·如中中曲西“日日日1日.和春际师暴!■日日自自自堂t日目自自·自中宁导F导!号! 5 16小结 25 第2章按键设备驱动程序…… 2.1按键设备模块硬件接口和寄存器………… 28 2.1.1按键设备模块硬件接口电路-… 画·“·4·+↓斗↓↓+斗+福日日圈暮4显目■ 8 ARM嵌入式Lnux设备驱动实例开发“ 2.1.2按键设备模块相关寄存器 22按键设备模块驱动程序… ++…32 221字符设备相关的数据结构… 222按键设备模块驱动程序分析 ……-39 223按键设备驱动测试 …48 23小结 第3章触摸屏设备驱动程序 ↓↓↓↓碍 51 31触摸屏设备简介 311四线电阻式触摸屏工作原理 …….52 3.12S3C2410触摸屏接口原理… 11售十會十曹十 52 32触摸屏设备接口电路与寄存器 t广t量 54 3.2.1触摸屏接口电路 54 322触摸屏与ADC接口寄存器 1■道■建t『tt晋量量曾 3.3触摸屏设备驱动程序分析………… ……………57 331初始化和退出函数 332pobe函数 t十量· 333中断处理函数… 334 remove函数………… 翻十量十++"+·=====-如4新+吾 66 34测试和编译触摸屏设备驱动 67 3.5小结 第4章 MMC/SD卡设备驱动程序 4.1 MMC/SD卡 72 411MMC简介…… …72 4.1.2SD卡简介………… ……………73 42 MMC/SD卡设备接口 ………74 4.2.1S3c2410 的 SDI… ……………74 422SDI的相关寄存器…… ……………75 4.2.3 MMC/SD与主机的接口电路 ……79 4.3 MMC/SD卡设备驱动程序分析… 43.1 MMC/SD设备驱动框架… ·::aa:十女由寸!导 ……79 4.32 MMCSD设备驱动分析 4.4测试和编译 MMCSD卡驱动程序…… 电。电中 8 4.5小结 目录 第5章网卡设备驱动程序 …103 51网络设备驱动介绍 104 51.1驱动程序体系结构… 104 512网络设备相关的数据结构…… ……105 52CS8900A网卡设备……… 521CS8900A芯片简介… 109 522CS8900A的系统应用 …410 523CS8900A网卡接口电路…-…- ■冒1 …………11 53CS8900A网卡设备驱动程序分析 面.目中中中·中垂垂垂e番日日自物物·D■ 事↓ 12 53.1初始化 112 532打开和关闭… …:117 533中断处理 -……………………120 534发送数据 曾十會雪量tt ……………122 535接收数据…-… ::124 54测试和编译CS8900A网卡驱动程序 126 5.5小结 ………………,………129 第6章 Framebuffer设备驱动程序… …131 6.1 Framebuffer介绍 …-…132 61.1 Framebuffer显卡技术…… ……………132 6.1.2 Framebuffer的工作原理…… …133 613常见的显示设备 ·!平平千手导·!如吾 34 62 Framebuffer内部API ……136 621重要的数据结构… ……136 622 Framebuffer操作……………………………………………139 63S3C2410LCD控制器驱动程序实现 ………141 63.1LCD控制器功能…… 量雪晋 ……………………141 632LCD控制器驱动程序分析 ………………142 64编译和测试LCD设备驱动程序………………………………….146 65小结… …………………148 第7章USB设备驱动程序……………….149 71USB简介 150 71IUSB总线特点…………………………… ……150 ARM嵌入式 Linux设备驱动实例开发 7.12USB通信技术… 151 713USB传输方式 ……151 72UsB驱动 152 7.21USB主机驱动 …152 7.2,2 USB Hub驱动…… ■■■■■ ………………154 7.23USB设备驱动… ……156 73USB主控制器驱动与设备驱动分析 …………157 7.3,1USB主控制器驱动程序分析…… .,…:157 7.32USB设备驱动程序分析… 163 74小结 第8章 NAND Flash设备驱动程序 173 81 NAND Flash简介………… ……174 81.1 NAND Flash工作原理……… ,174 8.1.2 NAND Flash与 Nor Flash区别………………………176 813常见的 Flash存储器… …,,…,…4……177 82MTD设备驱动介绍 178 821重要的数据结构 44日日目日.1日日自雪t 79 822API函数…………… 中。中。中· 83S3C2410 NAND Flash控制器驱动程序分析…… 831 probe函数 18 8.32 remoTe函数…………………… …………192 8.33ECC相关函数 atb中ψ品詬■■■自鲁··· 84 fdisk分区 ■1 195 8.41 fdisk命令 ……195 ■如士量十吾+香 84.2创建分区… ………-……196 85小结………… 第9章PC设备驱动程序 201 91PCI简介…… 1,202 91.1PCI总线体系结构 202 9.1.2PCI总线体系典型应用 ………203 9.2PCI设备驱动……… …,…………204 921在 Linux系统中查看PCI设备…… 204 922核心的数据结构

...展开详情
2016-03-18 上传 大小:41.28MB
举报 收藏 (1)
分享

评论 下载该资源后可以进行评论 共3条

u014111654 学习学习。
2018-09-05
回复
xqligong 时间有些久远了,不过还很有用
2017-09-02
回复
ciscrisc 有点老了,Linux变化较快。
2016-11-07
回复
周立功 嵌入式Linux开发教程上下册 pdf

周立功 嵌入式Linux开发教程 上下册 pdf高清版,带书签。

立即下载
《嵌入式Linux驱动开发教程》书中完整代码下载

linux驱动开发教程资源,《嵌入式linux驱动开发教程》书中源码下载

立即下载
嵌入式Linux开发教程(下册)PDF

嵌入式Linux开发教程(下册)讲述了内核模块与驱动,里面有LED GPIO IIC驱动范例

立即下载
linux 驱动程序开发实例(冯国进)代码

linux 驱动程序开发实例(冯国进)代码

立即下载
《LINUX驱动程序开发实例第2版》_冯国进编著_2017.zip

LINUX驱动程序开发实例第2版

立即下载
ARM嵌入式应用系统开发典型实例

ARM嵌入式应用系统开发典型实例

立即下载
嵌入式linux驱动 开发教程-源代码.7z

《嵌入式Linux驱动开发教程》完整的源代码下载。没有密码,解压直接编译即可以使用。

立即下载
【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0-尝鲜版.pdf

本文档是正点原子出的linux开发板的使用文档,基于I.mx6ull

立即下载
ARMCortex-M3嵌入式开发实例详解--ARM Cortex-M3嵌入式开发实例详解-基于NXP LPC1768.pdf

ARM Cortex-M3嵌入式开发实例详解--基于NXP LPC1768 pdf资源网络首发,有需要的童鞋不要错过,建议结合周立功的开发文档一起学习,进步迅速。

立即下载
《LINUX驱动程序开发实例第2版》_冯国进编著_2017

本书是一本专门介绍Linux设备驱动程序开发的书籍,涵盖了Linux驱动程序基础、驱动模型、内存管理、内核同步机制、I2C驱动程序、LCD驱动程序、网络驱动程序、USB驱动程序、输入子系统驱动程序、块设备驱动程序、音频设备驱动等内容。

立即下载
嵌入式Linux开发教程

嵌入式Linux开发教程.pdf

立即下载
Linux驱动开发入门与实战高清PDF

Linux驱动开发入门与实战高清PDF

立即下载
Linux驱动程序开发实例(第2版).冯国进(带详细书签).pdf

Linux设备驱动程序是高级应用程序与硬件设备之间的桥梁。驱动程序开发是软硬件相互结合的技术。本书是一本专门介绍Linux设备驱动程序开发的书籍,涵盖了Linux驱动程序基础、驱动模型、内存管理、内核同步机制、I2C驱动程序、LCD驱动程序、网络驱动程序、USB驱动程序、输入子系统驱动程序、块设备驱动程序、音频设备驱动等内容。本书以实例为主线,是为Linux设备驱动程序开发人员量身打造的学习精品书籍和实战指南。本书基于Linux4.5内核,提供了丰富的实例代码和详细的注释,并附赠完整源代码供读者下载。本书主要面向各种层次的嵌入式Linux软硬件开发工程师,也可以作为各类嵌入式系统培训机构的培训

立即下载
【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0.pdf

【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0.pdf 官方下载完整版,2019.10.26发布完整版

立即下载