(三)嵌入式 Linux驱动程序设计之驱动编译进内核

嵌入式 Linux驱动程序设计之驱动编译进内核

接上篇(二)嵌入式 Linux驱动程序设计之make menuconfig图形化配置及问题解决

例子
source "drivers/redled/kconfig" //它会包含drivers/redled/这个路径下驱动文件,方便对菜单进行管理
config LED_4412   //LED_4412配置选项的名称
	tristate "Led Support for GPIO Led"
	depends on LEDS_CLASS
	help
	this option enable support for led

说明:
tristate表示驱动状态,把驱动编译进模块,把驱动编译进内核,不编译
与之对应的还有bool分别是编译到内核与不编译
Led Support for GPIO Led是输入make menuconfig后显示的名字
A depends on B 表示只有在选择B的时候才可以选择A
比如想去掉LED相关的驱动,可以直接改.config文件?
答:可以但是不推荐,因为有的有依赖关系.直接修改.config是不成功的.
select 反向依赖,该选项被选择后后面的定义也会被选中.
help 帮助信息,如上面的"this option enable support for led"
步骤总结:
1.进入到想要编译的对应驱动文件路径下(如hello文件夹下),新建一个kconfig,内容如下:
config HELLO
	tristate "hello world"
	help
	hello hello
2.新建makefile文件,增加语句如下:
obj-$(CONFIG_HELLO)+=hello.o
//.c文件名为hello所以写hello.o,CONFIG_HELLO根据编译状态而改变,-y为编译到内核,-M为编译为模块;因为kconfig中目标为HELLO所以此次为CONFIG_HELLO
3.打开上一级路径下的makefile文件,增加包含此驱动文件的文件夹的语句如下:
obj-y +=hello
4.打开上一级路径下的kconfig文件,增加包含此驱动文件的kconfig的语句如下:
source "drivers/hello/kconfig"
5.返回到内核路径下使用make menuconfig进行查看是否已经添加正确,正确就选中后保存退出.
6.检查内核根路径下编译脚本,查看内核默认编译的配置文件,如果不是我们现在改为的.config,我们需要使用命令:make distclean清除所有的编译文件;然后将默认编译的配置文件拷贝到源码根路径下并命名为.config,然后使用make menuconfig再将新驱动添加保存;此时查看.config中就会有新加的驱动编译命令,如:CONFIG_HELLO=y ;然后进入到内核默认编译的配置文件理解下将默认配置文件重命名,然后再回到源码路径下将自己新的.config命名改为默认配置文件名.
7.运行编译内核脚本,完成后检验是否成功方法1:在开发板运行检验,方法2:进入到新驱动路径下看是否生成了.o文件
开发板运行过程:将编译生成的zImage烧写到开发板,将开发板开机打印信息保存后搜索hello world就可以完成检验是否成功.

下面的hello后面需要加/因为是文件夹,否则无法生成o
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值