Linux驱动配置

什么是驱动程序

  1. 驱动程序是应用层和硬件设备之间的一个软件层。
  2. 它向应用层提供了一组标准化的调用接口,同时完全隐藏设备的工作细节。

无操作系统时的设备驱动

有操作系统时候的设备驱动

有了操作系统之后,设备驱动反而变得更加复杂了,那么还要操作系统做什么?

  1. 一个复杂的软件系统需要处理多个并发的任务
  2. 提供内存管理机制,对于LINUX操作提供可以让每个进程都独立的访问硬件设备
  3. 设备驱动都按照操作系统给出的独立于设备的接口而设计,应用程序将可使用统一的系统调用接口来访问各个设备

LINUX中驱动的存在方式

1.编译进内核,启动内核时就会驱动此硬件设备
2.模块方式,编译生成一个.ko文件,当应用程序需要时再动态加载进内核空间

驱动的分类

字符设备驱动

字符设备驱动是一种可以按字节以串行顺序依次访问的设备,如触摸屏、磁带驱动器、鼠标等。字符设备驱动则负责驱动字符设备,这样的驱动通常实现open 、close、read和write 等系统调用。

网络设备驱动

任何网络事务都通过一个接口来进行,这一个接口通常是一个硬件设备(eth0),但是它可以是要给纯粹的 软件设备,比如回环接口(lo)。一个网络接口负责发送和接收数据报文。
网络设备没有对应设备文件。

块设备驱动

块设备可以用任意顺序进行访问、以块为单位进行操作,如硬盘、软驱等,块的大小任意,但是一般是512的整数倍
因此 ,块设备和字符设备的区别是驱动的与内核的接口不同
当其实字符设备和块设备并没有明显的界限,如FLASH设备符合块设备的特点,当一般还是当作字符设备访问。
块设备驱动通常也是实现open、close、read和write系统调用

其他独特的驱动体系结构

另外。TTY驱动,IIC驱动,USB驱动,PCI驱动,LCD驱动等本身大体可归纳入3个基础大类,但是对于这些复杂的设备,linux系统还定义了独特的驱动 体系结构。

编写LINUX设备驱动的基础

驱动程序的使用

linux用户如何使用驱动程序


linux用户程序通过设备文件(又名:设备节点 eg:/dev/gpio)来使用驱动程序操作设备。

内核编程注意事项

1.要防止并发和竞争
2.不要做浮点运输
3.不能做太耗时的事情
4.拥有锁的时候,不要休眠
5.复杂的过程处理交给应用层去完成
6.不能访问应用层的函数
7.不能有死循环

Linux设备驱动入门相关推荐

  1. Linux设备驱动入门----globalmem字符设备驱动

    1.什么是globalmem虚拟设备 (1).globalmem字符设备驱动中,分配一片内存大小为GLOBALMEM_SIZE(4K)的空间 (2).提供对该片内存的读写.控制和定位函数 (3).用户 ...

  2. 【驱动】linux设备驱动·字符设备驱动开发

    Preface 前面对linux设备驱动的相应知识点进行了总结,现在进入实践阶段! <linux设备驱动入门篇>:http://infohacker.blog.51cto.com/6751 ...

  3. 《Linux设备驱动开发详解(第2版)》隆重出版

    Linux设备驱动开发详解(第2版)(前一版狂销3万册,畅销书最新升级) [新品] 点击看大图     基本信息 * 作者: 宋宝华       * 出版社:人民邮电出版社     * ISBN:97 ...

  4. linux设备驱动开发详解孔夫子,Linux设备驱动开发详解

    [内容简介] <Linux设备驱动开发详解(第2版)>是一本介绍linux设备驱动开发理论.框架与实例的书,<Linux设备驱动开发详解(第2版)>基于ldd6410开发板,以 ...

  5. Linux 设备驱动那些事

    目的 初步了解 linux 设备驱动框架模型 初步了解设备驱动模型有哪些元素 设备驱动模型元素的说明及解释 设备驱动模型元素的工作原理 设备驱动模型的小例子 对整体有个粗略的了解,设备驱动类型种类太多 ...

  6. 请教几个Linux设备驱动模型的问题

    http://bbs.chinaunix.net/thread-3691002-1-1.html 1.Linux设备驱动模型是如何将bus.device和driver关联起来的?它们之间的数据结构关系 ...

  7. linux设备驱动第五篇:驱动中的并发与竟态

    目录[-] 综述 信号量与互斥锁 Completions 机制 自旋锁 其他的一些选择 不加锁算法 原子变量与位操作 seqlock(顺序锁) 读取-拷贝-更新(RCU) 小结 综述 在上一篇介绍了l ...

  8. 《Android深度探索(卷1):HAL与驱动开发》——1.6节 Linux设备驱动

    本节书摘来自异步社区<Android深度探索(卷1):HAL与驱动开发>一书中的第1章,第1.6节 Linux设备驱动,作者李宁,更多章节内容可以访问云栖社区"异步社区" ...

  9. linux设备驱动归纳总结

    前言: (总结已经基本写完,这段时间我会从新排版和修正.错误总会有的,望能指正!) 前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习. 我的总结是根据学习时的笔记(李杨老师授 ...

  10. 【翻译】【linux设备驱动】linux地址类型

    [翻译][linux设备驱动]linux地址类型 Linux中使用的地址类型列表: 用户虚拟地址(User virtual addresses) 用户空间程序可见的普通地址.用户虚拟地址的长度为32位 ...

最新文章

  1. redistemplate分布式锁实现_基于 Redis SETNX 实现分布式锁
  2. HDU_2065 红色病毒问题(指数型生成函数)
  3. react前端显示图片_如何在react项目中引用图片?
  4. Vue中computedmethodwatch的区别
  5. php 分支排序,php – 基于类别和分支的Mysql排名
  6. msql查询姓名不带r的员工姓名_《MySQL数据库》关联查询
  7. Mac下启动AndroidStudio失败
  8. 归并排序java示例
  9. python曲线库_测井曲线储量python库lasio解读使用
  10. 20145306 信息安全系统设计基础 第五周博客总结
  11. chd6.0.1 kerberos安装碰到问题:
  12. Oralce Autovue Web Server (Servlet)启动异常
  13. (力扣)171.Excel表列序号(c语言)
  14. 遇到UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa3 in position 4: invalid start byte的几种处理方法
  15. 去哪儿2017校园招聘笔试题
  16. java如何让线程sheep_Java面试知识点之线程篇(三)
  17. [转]从IIC实测波形入手,搞懂IIC通信
  18. 【织梦总结】织梦常用调用标签总结
  19. 大数据平台用于生成数据跑批脚本的脚本(version2.0)
  20. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

热门文章

  1. 微软推送补丁的服务器叫什么,即将大规模推送: 微软介绍KB4023057易升补丁相关功能...
  2. \t\t使用Google APP Engine 完成个人代理服务器架设
  3. 解决print spooler打印服务自动停止的过程记录
  4. php导出excel 繁体,php导出excel并解决乱码问题的方法介绍
  5. 05笔记 离散数学——函数——基于离散数学(第3版)_章炯民,陶增乐
  6. 利用LFW对人脸识别模型进行精度评测
  7. 数值计算之 共轭梯度法(2)非线性共轭梯度法
  8. ffmpeg下载安装教程及介绍
  9. 【模拟电路】PID简介
  10. NS方程由精确解求源项matlab代码