• Android 添加驱动的两种方式


    下面介绍,在Android系统中如何将驱动添加到kernel中。

    要求:将驱动queue.c添加kernel中。

    方案:下面介绍2种实现方案。2种方案的本质是一样的,区别是一种在menuconfig中单独建立菜单,而另一种则不在menuconfig中单独新建菜单,而是修改已有的配置文件。

    1方案一

    方案一中,采取的方法是:不新建config菜单,直接将驱动添加到已有的Kconfig中。下面介绍详细步骤。

    1.1修改已有配置文件

    (1)修改配置文件driver/char/Kconfig,添加如下内容:

    config SKYWANG_CQUEUE
        tristate "skywang char queue driver"
        help
            add this to support skywang char queueue 

    (2)修改配置文件driver/char/Makefile,添加如下内容:

    obj-$(CONFIG_SKYWANG_CQUEUE)   += cqueue.o 

    1.2 添加“驱动代码”

    添加驱动文件,驱动文件路径如下:

    drivers/char/cqueue.c 

    1.3 添加驱动

    执行make menuconfig打开配置界面,并将驱动cqueue.c添加到kernel中。

    如图01,是添加cqueue.c前的选项:

    如图02,是添加cqueue.c后的选项:

    1.4 验证是否添加成功

    查看.config文件,应该有如下配置选项:

    CONFIG_SKYWANG_CQUEUE=y

    2方案二

    方案二中,采取的方法是:新建config菜单,将驱动添加到新建的Kconfig中。下面介绍详细步骤。

    2.1修改已有配置文件

    (1)修改配置文件driver/char/Kconfig,添加如下内容:

    source "drivers/char/skywang/Kconfig"

    (2)修改配置文件driver/char/Makefile,添加如下内容:

    obj-$(CONFIG_SKYWANG_CQUEUE)   += skywang/

    2.2新建“驱动配置”

    (1)在driver/char下新建目录,新建后的目录完整路径如下:

    driver/char/skywang 

    (2)新建drivers/char/skywang/Kconfig文件,内容如下:

    menu "skywang test devices"
     
    
    config SKYWANG_CQUEUE
        tristate "skywang char queue driver"
        help
            add this to support skywang char queueue
     
    endmenu 

    (3)新建drivers/char/skywang/Makefile文件,内容如下:

    obj-$(CONFIG_SKYWANG_CQUEUE)   += cqueue.o

    2.3 添加“驱动代码”

    拷贝驱动文件,拷贝后的文件路径如下:

    drivers/char/skywang/cqueue.c

    2.4 添加驱动

    执行make menuconfig打开配置界面,并将驱动cqueue.c添加到kernel中。

    如图03,是添加cqueue.c前的选项:

    如图04,是添加cqueue.c后的选项:

    如图05,选择“skywang test drivers”后进入的子菜单界面:

    通过NDK,使用Android界面的Button点亮LED这4盏灯的方法,必须在adb shell环境下,通过insmod的shell命令预先加载驱动程序。能不能一启动应用程序,就自动加载该驱动程序,开发板一上电,就自动加载该驱动程序 ,方法可将insmod等shell命令加入/etc/profile 或/etc/init.d/rcS等自启动脚本,即可实现开机自动加载。

  • 相关阅读:
    c++ const的使用
    C++面向对象程序设计举例
    C++构造函数与析构函数的解析
    inline函数和一般的函数有什么不同
    Linux 脚本为什么会有#!
    Linux 基本概念和操作2
    Linux 基本概念和操作
    ubuntu14.0464位 Ros环境 安装halcon13.01
    数据类型之间的连接和运算
    cmd命令 从C盘转到D盘
  • 原文地址:https://www.cnblogs.com/liumin-txgt/p/14611290.html
Copyright © 2020-2023  润新知