典型的Linux设备驱动程序的代码

发布者:CrystalClear最新更新时间:2018-02-14 来源: eefocus关键字:Linux  设备驱动 手机看文章 扫描二维码
随时随地手机看文章

    为了增跟内核的灵活性和为了方便,设各驱动程序应被设计为一个可动态安装的内核模块。

    于是,一个典型的Linux设备驱动程序应包含如下几部分代码:

    ·驱动程序模块的注册与注销函数;

    ·设各的打开、关闭、读、写及需要的其他操作函数;


    ·设备的中断服务程序。

    下面用伪代码给出一个从键盘上输入一个字符的例子,以使读者对设备驱动程序的构成有一个基本的概念。

    (1)定义读操作函数

    ssize mydev_read(……)

    {

    获取本设备的信号量以确倮没有其他进程访闷本设备;

    申请中断标志,允许中断;

    对设备发出读命令;

    将进EH于等待队列,等待中断到来:

    }

    (2)定义中断服务程序

    void mydev_ihterpt(……)

    {

    处理器读入字符;

    设置中断标志:

    唤醒等侍的进程:

    }

    (3)定义模块初始化函数

    int init_module(void)

    向系统注册设各;

    其他初始化代码;

    (4)定义模块析构函数

    void cleMup_modtLle(void)

    {

    取消注册的设备;

    其他析构代码;

    }


关键字:Linux  设备驱动 引用地址:典型的Linux设备驱动程序的代码

上一篇:基于实时操作系统μC/OS-II远程终端硬件和软件的设计与实现
下一篇:嵌入式系统的调试方法

推荐阅读最新更新时间:2024-03-16 15:55

基于嵌入式Linux的LCD背光调节及驱动实现
  在手持式设备中,液晶显示屏的使用越来越广泛。 由于LCD自身是不能发光的,它需要一个强劲的光源来给它提供背光,以便清晰地显示信息。这样的光源是非常耗电的,通常液晶显示屏的功耗常常占到系统总功耗的60%以上。以群创的7寸屏为例,通常背光灯的功耗为2.5W,而LCD的功耗只有0.825W。由此可见,背光光源的功耗在整个电源中的比重是相当高的。如果系统在不用显示屏时,也全功率的运行,系统的电池能量将很快被耗光。所以,调节LCD的背光源,降低系统在不用显示屏时的能耗是十分必要的工作。   另外,由于手持式设备工作环境的变化,也需要根据外界光线强度的变化,对背光的亮度做出相应的调节,以适合人眼观看的舒适度。   基于上述2种原因
[电源管理]
基于嵌入式<font color='red'>Linux</font>的LCD背光调节及驱动实现
linux内核中的copy_to_user和copy_from_user(一)
Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blog.csdn.net/ce123) 1.copy_from_user 在学习Linux内核驱动的时候,经常会碰到copy_from_user和copy_to_user这两个函数,设备驱动程序中的ioctl函数就经常会用到。这两个函数负责在用户空间和内核空间传递数据。首先看看它们的定义(linux/include/asm-arm/uaccess.h),先看copy_from_user: view plain copy print ? static inline
[单片机]
基于FA526处理器SoC平台的Linux操作系统实现
引言   智原科技的FIE8100 SoC平台是一种低功耗、便携式视频相关应用开发SoC平台,也可用于基于FA526 CPU的SoC设计验证。   基于FA526的Linux软件开发套件,开发人员可将Linux一2.4.19软件环境在FIE8100平台上安装实现,并完成对平台上所有IP的驱动程序安装和对FA526的内部调试。 FA526介绍   FA526是一颗有着广泛用途的32位RISC处理器。它包括一个同步CPU内核(core)、独立的指令/数据缓存(cache)、独立的指令/数据暂存器(scratchpads)、一个写缓存(write buffer)、一个内存管理单元(memory management unit)和J
[嵌入式]
22.Linux-RTC驱动分析及使用
    linux中的rtc驱动位于drivers/rtc下,里面包含了许多开发平台的RTC驱动,我们这里是以S3C24xx为主,所以它的RTC驱动为rtc-s3c.c 1.进入./drivers/rtc/rtc-s3c.c     还是首先进入入口函数,如下图所示:     这里注册了一个“s3c2410-rtc”名称的平台设备驱动     而“s3c2410-rtc”的平台设备,在./arch/arm/plat-s3c24xx/dev.c里定义了,只不过这里没有注册,如下图所示:     当内核匹配到有与它名称同名的平台设备,就会调用.probe函数,接下来我们便进入s3c2410_rtcdrv- probe函
[单片机]
22.<font color='red'>Linux</font>-RTC驱动分析及使用
ARM-Linux驱动--DM9000网卡驱动分析(二)
硬件平台:FL2440(s3c2440) 内核版本:2.6.35 主机平台:Ubuntu 11.04 内核版本:2.6.39 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6612623 下面开始分析具体的代码,这里由于使DM9000驱动更容易理解,在不影响基本的功能的前提下,这里将尽可能的简化该驱动(如:去掉该驱动中支持电源管理的功能) 分析该驱动 1、首先看一下该驱动的平台设备驱动的结构体定义 view plainprint? static struct platform_driver dm9000_driver = { .dr
[单片机]
ARM-<font color='red'>Linux</font>驱动--DM9000网卡驱动分析(二)
第005课 linux进阶命令(文件查找,文件解压操作详解)
001节_Linux进阶命令__find命令 我们在Windows中搜索文件,一般查找文件需要传入两个条件: 1)在那些目录中查找; 2)查找的内容; 在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用 find 命令查找文件。 find 命令: *目的:查找符合条件的文件 *格式: find 目录名 选项 查找条件 举例1: find /work/001_linux_basic/dira/ -name test1.txt 说明: a)/work/001_linux_basic/dira/指明了查找的路径 b)-name表明以名字来查找文件
[单片机]
嵌入式Linux系统的键盘驱动实现
1引言 Linux由于其具有内核强大且稳定,易于扩展和裁减,丰富的硬件支持等诸多优点,在 嵌入式 系统中得到了广泛的应用。很多嵌入式 Linux系统 ,特别是一些具有与用户强交互的嵌入式系统,往往需要配备一个特殊键盘,此时开发者需要根据实际情况,为自己的特殊键盘编写驱动程序。 2Linux 键盘驱动 简介 Linux中的大多数驱动程序都采用了层次型的体系结构,键盘驱动程序也不例外。在Linux中,键盘驱动被划分成两层来实现。其中,上层是一个通用的键盘抽象层,完成键盘驱动中不依赖于底层具体硬件的一些功能,并且负责为底层提供服务;下层则是硬件处理层,与具体硬件密切相关,主要负责对硬件进行直接操作。键盘驱动程序的上层公共部分都在driv
[嵌入式]
基于嵌入式Linux与S3C2410平台的视频采集
摘要:首先简介基于嵌入式Linux系统的S3C2410平台和在平台上进行开发所需的软件环境,接着详细论述在该平台上如何实现视频采集这一应用,并对视频采集程序的实现进行具体的介绍,最后完成应用程序向目标平台的移植。 关键词:嵌入式Linux Video4Linux S3C2410 内存映射 随着多媒体技术、网络技术的迅猛发展和后PC机时代的到来,利用嵌入式系统实现远程视频监控、可视电话和视频会议等应用已成为可能。为了实现这些应用,实时获得视频数据是一个重要环节。针对这一点,本文在基于嵌入式Linux系统平台上,利用Video4Linux内核应用编程接口函数,实现了单帧图像和视频连续帧的采集,并保存成文件的形式供进一步视频处理和
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved