java 内核驱动程序,详解将驱动程序编译进Linux内核

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

2、新建目标目录01.led,将驱动相关文件复制到此目录

注:需确保复制的驱动文件是能正常运行的驱动

3、在目录01.led里编写Kconfig文件

menu "xxx"

config XXX_LED

tristate "xxx_ggg210_led"

default n

help

The led water made by xxx which was used by platform!

endmenu

4、在目录01.led里编写Makefile文件

obj-$(CONFIG_XXX_LED) += led_dev.o led_drv.o

5、修改01.led上级目录char里的Makefile文件

增加:obj-$(CONFIG_XXX_LED) += 01.led/

6、修改01.led上级目录char里的Kconfig文件

增加:source "drivers/char/01.led/Kconfig"

7、正确配置好之后,执行make menuconfig命令弹出菜单,然后按照下面步骤一一进入

Location:

-> Device Drivers

-> Character devices

-> xxx

< > xxx_ggg210_led (NEW)

8、使用“空格”键选择“*”号:

xxx_ggg210_led (NEW) 表示将该模块编译进内核中

9、执行命令:make -j 2 uImage

(“-j 2”表示开启2个线程以加快编译速度)

10、将生成的uImage文件烧录到开发板

11、开发板内核启动完成后,使用“ls /dev”命令查看是否有设备节点,以确认是否添加成功

12、删除驱动模块。

首先删除drivers目录下的01.led文件夹,然后再删除之前在相应Makefile和Kconfig中添加的语句。

########################################################################################

设备驱动程序存放在内核源码树根目录 drivers/ 的子目录下,在其内部,设备驱动文件进一步按照类别,类型等有序地组织起来。

a. 字符设备存在于 drivers/char/ 目录下

b. 块设备存放在 drivers/block/ 目录下

c. USB 设备则存放在 drivers/usb/ 目录下。

注意:

(1) 此处的文件组织规则并非绝对不变,例如: USB 设备也属于字符设备,也可以存放在 drivers/usb/ 目录下。

(2) 在 drivers/char/ 目录下,在该目录下同时存在大量的 C 源代码文件和许多其他目录。所有对于仅仅只有一两个源文件的设备驱动程序,可以直接存放在该目录下,但如果驱动程序包含许多源文件和其他辅助文件,那么可以创建一个新子目录。

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值