Linux:驱动程序直接编译到内核(源自国嵌的视频教学)

引子:前面的文章实现了可加载的内核模块,通过这个内核模块实现对PWM定时器的控制和中断处理程序的注册。这里讨论一下将内核模块直接编译进内核的过程,首先声明来源于国嵌的视频教学。

其实很简单,第一步把冰箱门打开...(此处略去200字)

正经的第一步:将源文件代码 mytimer.c(不知道这么说规范不,反正就是 .c 文件)拷到Linux源代码目录下的 drivers 下的某个目录下 如:drivers/char

第二步:修改drivers/char 中的 Kconfig,Kconfig文件维护着内核模块配置的菜单(Linux源代码根目录下 make menuconfig 出来的东西)
打开Kconfig,看到:
menu "Charecter devices" (drivers/char 中的Kconfig维护着菜单中字符驱动的选项)
(依照其他驱动的格式添加)
config MY_TIMER
(Tab)bool "my_timer" (在make menuconfig 打开的菜单中,my_timer 将出现在Charecter devices 的下一层)
(保存关闭)
如果在make menuconfig 中选择了my_timer配置结果将体现在Linux源代码根目录下 .config 文件中,在该文件中将会自动添加 CONFIG_MY_TIMER=y 的配置项。

第三步:打开drivers/char 中的 Makefile
(依照其他驱动的格式添加)
obj-$(CONFIG_MY_TIMER)        += mytimer.o
(保存关闭)
编译就可以了
同颜色的部分是相关联的,即肝胆相照,荣辱与共,同生共死,互为因果

注意:

编译可加载的内核模块的代码 mytimer.c 同拷到直接编译到内核所使用的 mytimer.c 稍有不同,加载的内核模块的代码 mytimer.c 中开始部分需要有

#ifndef MODULE
#define MODULE
#endif

在直接编译到内核时应当去掉

否则会报错(该部分源自网民阿南的《ARMLinux入门与实践》)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值