linux设备驱动归纳总结

本文转载自chinaunix,作者:diytvgy,感觉总结的不错,代码和原理结合,适合初学者学习

前言:

(总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!)

前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。 
我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux设备驱动程序》第三版和《linux设备驱动开发详解》第一版来归纳的。文章中涉及一些自己的想法,并不能保证所说的一定正确。
 我也是一位linux初学者,在这里发博也是想跟大家分享技术,同时也希望别人能够指正错误。 
我把一些知识点拆分来讲述,文章会写得比较长,而且章节涉及的知识不会很多,但这是我复习时的思路。
 
因为我学习的是ARM-linux,除了第一章外,其他的代码都是通过交叉编译后在ARM9上运行,我使用的内核版本是我学习时候使用的2.6.29内核。


以下的文章若有侵权,请马上与我联系,我一定立即删除。

·linux设备驱动归纳总结(一):内核的相关基础概念
|
|---------1.1、linux设备驱动的作用
|         1.2、内核代码树介绍
|         1.3、内核补丁
|         1.4、内核中的Makefile
|         1.5、子目录下的Makefile和Kconfig
|         1.6、内核和模块的编译
·linux设备驱动归纳总结(二):模块的相关基础概念
|
|---------2.1、初探linux内核模块——hello world!
|         2.2、内核中的printk
|         2.3、模块传参——module_param
|         2.4、内核函数间的调用——EXPRORT_STMBOL

·linux设备驱动归纳总结(三):1字符型设备之设备申请
·linux设备驱动归纳总结(三):2open.close.read.write
·linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2011.2.19修改 《linux设备驱动归纳总结(一):内核的相关基础概念》
2011.2.22修改 《linux设备驱动归纳总结(二):模块的相关基础概念》
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux设备驱动是一种软件程序,用于控制硬件设备的操作。它允许操作系统与硬件设备进行通信,从而实现对设备的控制和管理。Linux设备驱动通常由内核模块或用户空间程序实现,可以通过编C语言代码来实现。设备驱动程序需要遵循Linux内核的规范,包括使用标准的设备文件接口和实现正确的设备操作函数等。在Linux系统中,设备驱动程序是非常重要的组成部分,它们为各种硬件设备提供了支持,包括网络适配器、磁盘驱动器、USB设备等。 ### 回答2: Linux设备驱动是指是在Linux操作系统中控制和管理硬件设备的软件模块,它使得操作系统能够与硬件设备进行通信和交互。在Linux系统中,每个硬件设备都需要由相应的设备驱动程序来支持,这些设备驱动程序负责向操作系统提供设备的操作接口,并处理设备的输入和输出。 Linux设备驱动可以分为字符设备驱动和块设备驱动两种。字符设备驱动用于管理字符设备,例如键盘、鼠标等;块设备驱动用于管理块设备,例如硬盘、固态硬盘等。在驱动程序中,通常会包含设备的初始化和配置、设备的打开和关闭、设备的读取和入等功能。 为了方便设备驱动的开发和维护,Linux提供了一些设备驱动开发框架和接口,如字符设备驱动的主要接口为file_operations结构体,块设备驱动的主要接口为block_device_operations结构体。开发人员只需要实现这些接口,就可以将相应的设备驱动程序编译为内核模块,然后加载到Linux内核中。 Linux设备驱动的编需要熟悉硬件设备的工作原理和寄存器的操作,同时还需要了解Linux内核的相关知识。开发人员需要通过阅读设备规格书、硬件设计手册等,了解硬件设备的寄存器地址和寄存器位域的含义,然后编适当的代码来读取和入这些寄存器。此外,还需要熟悉Linux内核的设备模型、设备树等,以便正确地注册设备并与操作系统进行通信。 总之,Linux设备驱动是为了实现操作系统与硬件设备之间的通信和交互而编的软件模块。通过适当配置和编设备驱动程序,可以使得Linux操作系统能够正确地识别和管理各种硬件设备。 ### 回答3: Linux 设备驱动是指用于操作系统中的设备和外设的软件模块或程序。它负责对计算机和外围设备进行通信和控制,使它们能够正确地工作和与其他部分进行交互。 Linux 设备驱动由内核负责加载和管理,它提供了一种与硬件设备通信的接口,使应用程序能够通过系统调用与设备进行交互。设备驱动程序可以根据底层硬件设备的特定规格和功能进行开发,以确保设备可以和系统进行可靠而有效的通信。 Linux 设备驱动提供了一套标准接口和程序,使开发人员可以编适用于不同硬件设备的通用驱动程序。这使得设备供应商和开发人员可以更轻松地将设备接入Linux系统,而不需要自行开发专门的驱动程序。此外,设备驱动程序可以提供一系列的API函数和工具,以便应用程序能够控制和访问设备的不同功能和特性。 Linux 设备驱动的开发需要一些特定的技能和知识,包括熟悉C语言编程、了解硬件设备的工作原理和接口规范、熟悉Linux内核和设备驱动开发的相关知识等。开发人员需要编设备驱动程序的相关代码,并将其编译为内核模块,然后将模块加载到系统中。 总而言之,Linux 设备驱动在操作系统中起到了至关重要的作用,它使得Linux系统能够与各种硬件设备进行联通和交互,从而为应用程序提供了丰富的功能和特性。通过开源的特性,Linux 设备驱动的开发变得更加便捷和灵活,使得越来越多的硬件设备能够与Linux系统兼容,并为用户带来更好的使用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值