手机驱动

本文详细介绍了一个基于Linux内核的按键驱动开发流程,包括创建驱动文件、配置Kconfig及Makefile文件、内核编译和测试等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以按键驱动为例,驱动源代码为buttons_drv.c

1、进入目录linux-kernel-samsung-dev\drivers\char

            新建目录key_arm,并将驱动程拷贝进去

            mkdir key_drv

    2、在key_arm目录里编写里Kconfig文件,内容如下:

            menu "button driver"

            config BUTTON

                    tristate "BUTTON"

                    default n

                    help

                      The button water made by buttons which was used by platform.

            endmenu

    3、在key_arm目录里编写里Makefile文件,内容如下:

            obj-$(CONFIG_BUTTON) += buttons_drv.o

    4、修改key_arm上级目录char里的Makefile文件

            增加: obj-$(CONFIG_BUTTON) += key_arm/

    5、修改key_arm上级目录char里的Kconfig文件

            增加:source "drivers/char/key_arm/Kconfig"

    6、执行make menuconfig命令弹出菜单,然后按照下面步骤一一进入

            Device Drivers  --->

                Character devices  ---> 

                    button driver  --->

                        <*> BUTTON 

    7、编译内核

             make zImage -j2

    8、将生成的zImage拷贝到/tftpboot 

             cp arch/arm/boot/zImage /tftpboot/

    9、重启开发板

            [root@farsight /]# ls /dev/buttons

            /dev/buttons

    10、执行编译好的应用程序测试

            [root@farsight /]# ./button

            ------buttons_open------

            -------buttons_handler------------

            key pressed

            按下

            -------buttons_handler------------

             key up

            松开

=============================分割线================================

总的config文件

ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi ../../arch/arm/configs/sunmi_msm8937_defconfig

 

查看哪些被改过了

 

 

后面改了这几个 发现mytest居然能用啦

1 ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$vi ../../arch/arm/configs/sunmi_msm8937_defconfig

2、ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi Kconfig

3、ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi Makefile

4、改完之后去到下面目录 可以用 ls -a 查看有无 .config文件 打开它 ubuntu@ubuntu:/work1/1168MP/out/target/product/zqp1168_p2lite/obj/kernel/msm-3.18$ vi .config

然后查看CONFIG_MYHELLO 是否已经根据 改了m或y

查看方法为:shift+g到文末; 然后 /MYHELLO ;就可定位到CONFIG_MYHELLO

ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ ls ../../arch/arm/configs/ -l |grep sun

-rw-rw-r-- 1 ubuntu ubuntu 17196 7月 27 17:02 sunmi_msm8937_defconfig

-rw-rw-r-- 1 ubuntu ubuntu 16014 7月 9 14:58 sunmi_msm8937-perf_defconfig

-rw-rw-r-- 1 ubuntu ubuntu 2746 7月 9 14:58 sunxi_defconfig

查找一个文件在哪 可以用

ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ find / -type f -name ".config"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简书-乡村码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值