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、模块的声明与描述

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

  • 相关阅读:
    左耳听风
    极客时间-算法
    极客时间-左耳听风阅读笔记
    涨知识
    学做饭
    开发流程
    线上问题复盘
    反思学习复习练习
    系统安全(转)
    单元测试
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2233215.html
Copyright © 2011-2022 走看看