下载 >  操作系统 >  Linux > 如何编写Linux设备驱动程序

如何编写Linux设备驱动程序

有很多朋友关心驱动,但更菜的菜鸟居多:)总结了一下 把I/O驱动改成个更简单的LED驱动吧 做的工作非常简单,就是让连在GPC0-GPC2上的LED顺序闪10下 目的就是演示一下驱动过程。 一 先补充一下基础知识 懂的朋友就不用看了 嵌入式驱动的概念 设备驱动程序是操作系统内核和机器硬件之间的接口,设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可 以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它主要完成的功能有:对设备进行初始化和释放;把数据从内核传送到硬件和从硬件读 取数据;读取应用程序传送给设备文件的数据、回送应用程序请求的数据以及检测和处理设备出现的错误。 Linux将设备分为最基本的两大类:一类是字符设备,另一类是块设备。字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬 件I/O一般就紧接着发生了。字符设备以单个字节为单位进行顺序读写操作,通常不使用缓冲技术;块设备则是以固定大小的数据块进行存储和读写的,如硬盘、 软盘等,并利用一块系统内存作为缓冲区。为提高效率,系统对于块设备的读写提供了缓存机制,由于涉及缓冲区管理、调度和同步等问题,实 现起来比字符设备复 杂得多。LCD是以字符设备方式加以访问和管理的,Linux把显示驱动看做字符设备,把要显示的数据一字节一字节地送往LCD驱动器。 Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设 备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不 同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。Linux为所有的设备文件都 提供了统一的操作函数接口,方法是使用数据结构struct file_operations。这个数据结构中包括许多操作函数的指针,如open()、close()、read()和write()等,但由于外设 的种类较多,操作方式各不相同。Struct file_operations结构体中的成员为一系列的接口函数,如用于读/写的read/write函数和用于控制的ioctl等。打开一个文件就是 调用这个文件file_operations中的open操作。不同类型的文件有不同的file_operations成员函数,如普通的磁盘数据文件, 接口函数完成磁盘数据块读写操作;而对于各种设备文件,则最终调用各自驱动程序中的I/O函数进行具体设备的操作。这样,应用程序根本不必考虑操作的是设 备还是普通文件,可一律当作文件处理,具有非常清晰统一的I/O接口。所以file_operations是文件层次的I/O接口。 ...展开详情收缩
2010-12-28 上传大小:20KB
分享
收藏 举报
如何编写Linux设备驱动程序.docx

如何编写Linux设备驱动程序.docx

立即下载
Linux设备驱动程序编写

Linux设备驱动程序的编写 Linux设备驱动程序的编写 Linux设备驱动程序的编写

立即下载
Linux Device Drivers

本书详细指导如何编写Linux设备驱动程序

立即下载
Linux驱动程序教程:如何编写简单的Linux设备驱动程序

Linux驱动程序教程:如何编写简单的Linux设备驱动程序 demo

立即下载
Linux Device Drivers 2rd(中文版)

Linux设备驱动程序,描述了如何针对各种设备编写驱动程序。

立即下载
如何编写Linux设备驱动程序-教程教材教学免费下载

如何编写Linux设备驱动程序-教程教材教学免费下载

立即下载
编写设备驱动程序(solaris)

编写设备驱动程序。设备驱动程序的原理,以及如何编写设备驱动程序

立即下载
如何编写 Linux 设备驱动程序

本文档适应Linux初学者入门学习,有一定的参考价值。

立即下载
linux设备驱动程序第三版pdf[英文原版]

linux设备驱动程序编写的参考经典书籍 linux设备驱动程序第三版---英文原版

立即下载
《Linux设备驱动程序》(源码)

《Linux设备驱动程序》的源码,Linux设备驱动程序这本书堪称经典,只有结合源码,才能真正学习该书的精华。另外还有Linux别的驱动解析

立即下载
Linux设备驱动程序编写教程.rar

Linux设备驱动程序编写教程.rar

立即下载
linux设备驱动程序(中文第三版)+源码

linux设备驱动程序(中文第三版)+源码, linux设备驱动程序(中文第三版)+源码, linux设备驱动程序(中文第三版)+源码

立即下载
LINUX设备驱动程序第3版_中文PDF版

LINUX设备驱动程序第3版_中文PDF版, 是扫描版,但文字清晰,排版整齐。

立即下载
Linux设备驱动程序(LDD)第三版英文PDF(附书中源码)

国外经典Linux驱动书籍《Linux设备驱动程序(LDD)第三版英文PDF》,高清PDF并附有书中源码!

立即下载
Linux设备驱动程序 电子版

Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序

立即下载
Linux设备驱动程序第三版配套源码

Linux设备驱动程序第三版的配套源码,可以学习的同时实践一下!

立即下载
Linux设备驱动程序(中文版 文字版 第三版).pdf

前言 第一章 设备驱动程序简介 设备驱动程序的作用 内核功能划分 设备和模块的分类 安全问题 版本编号 许可证条款 加入内核开发社团 本书概要 第二章 构造和运行模块 设置测试系统 Hello world模块 核心模块与应用程序的对比 编译和装载 内核符号表 预备知识 初始化和关闭 模块参数 在用户空间编写驱动程序 快速参考 第三章 字符设备驱动程序 scull的设计 主设备号和次设备号 一些重要的数据结构 字符设备的注册 open和release scull的内存使用 read和write 试试新设备 快速参考 第四章 调试技术 内核中的调试支持 通过打印调试 通过查询调试 通过监视调试 调试系统故障 调试器和相关工具 第五章 并发和竞态 scull的缺陷 并发及其管理 信号量和互斥体 completiOn 自旋锁 锁陷阱 除了锁之外的办法 快速参考 第六章 高级字符驱动程序操作 ioctl 阻塞型I/O poll和select 异步通知 定位设备 设备文件的访问控制 快速参考 第七章 时间、延迟及延缓操作 度量时间差 获取当前时间 延迟执行 内核定时器 tasklet 工作队列 快速参考 第八章 分配内存 kmalloc函数的内幕 后备高速缓存 get—free—page和相关函数 vmalloc及其辅助函数 per-CPU变量 获取大的缓冲区 快速参考

立即下载
如何编写Linux 设备驱动程序.pdf

不是软件,是书籍!欢迎大家下载,为了方便大家!

立即下载
Linux设备驱动程序(中文版第三版)高清pdf

Linux设备驱动程序(中文版第三版)高清pdf Linux设备驱动程序(中文版第三版)高清pdf Linux设备驱动程序(中文版第三版)高清pdf

立即下载
Linux设备驱动程序 Linux设备驱动程序

Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序Linux设备驱动程序

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

如何编写Linux设备驱动程序

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: