zoukankan      html  css  js  c++  java
  • 驱动设计ARM(6410)按键驱动0基础知识点

    在Linux的ARM平台上的驱动设计需要遵循一个基本的模式,也就是说在你的驱动设计里面除了有些是关于你的硬件知识,但是有些东西是设计这个驱动的几个必须的模块:

    1、内核驱动的加载函数(必须的)

    static int  _ _init initialization_function(void)

    {

    ………………………..

    }

    module_init(initialization_function);但是在2.6的内核中可以用requset_module(module_name)或者request_module(“char-major-%d-%d”,MAJOR(dev),MINOR(dev));

    2、内核驱动卸载模块(必须的)

    static void _ _exit cleanup_function(void)

    {

    ……………………………

    }

    module_exit(cleanup_function);

    3、内核模块参数(可以选择的)

    在这一点上要说清楚,我们可以在加载驱动的时候给我们的驱动传一些参数,这个参数可是单个的也可以说数组,具体的可以按照实际情况。

    static char *student_name =”xmphoenix!”;

    static int num=9;

    module_param(num,int,S_IRUGO);

    module_param(student_name,char *p,S_IRUGO);

    这样在内核加载的时候就传进去了两个参数,如果你是在命令行加载该驱动的话,那么你可以在命令行后加入该参数的名称=xxx,类似的模式来加载你传入的参数

    4、模块许可声明(必须的)

    在这个部分由于Linux的版权的问题,你需要在你的驱动模块里面添加一些声明,其实这个模块什么很大的实际意义,对于的编程没有任何的影响,但是必须加上去

    5、模块导出符号(可以选择的)

    具体的什么意思,不是很清楚也没有用到过,但是估计就是把内核的符号表导出来,可以让其他的模块使用罢了

    6、模块的声明与描述

    在这个模块主要是描述你些的这个驱动的一些基本信息,版本…….等一系列的信息,具体的参见一般的说明书就可以。

  • 相关阅读:
    ‘内部系统’怎么测试?两年测试的总结与反思
    微信公众号支付 -- 笔记
    数组处理
    String操作
    number 处理
    date 处理
    type检查
    全选全不选,返回字符串长度,汉字计数为2,获取url中的参数 ,函数防抖,函数节流
    关于移动端兼容BUG问题收集及处理
    nginx 1.6.0 配置文件服务器下载
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2233215.html
Copyright © 2011-2022 走看看