驱动程序--编译进内核和编译成模块

在 内核中增加程序需要完成以下五项工作:

1. 将编写的源代码复制到 Linux 内核源代码的相应目录;

2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项;

3. 在目录的 Makefile 文件中增加对新源代码的编译条目。

4.在该目录的上一级目录的Kconfig文件中把上面第二步修改的Kconfig包括到此Kconfig中。

5.在该目录的上一级MakeFile中修改下,使得可以编译到该目录。

1.内核编译命令(makefile)

obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.

obj-m: 则表示该文件作为模块编译.

除了y、m以外的obj-x 形式的目标都不会被编译。

 

2.内核编译 (make menuconfig) 

make   menuconfig

*标识编译到内核,

M标识作为内核模块编译.

空格,表示该功能不编译到内核中,即新的内核将不支持该功能.

编译进内核:

驱动被编译成  .ko 文件并insmode。

编译成模块

驱动边编译成  .ko 文件。

例如:makefil中有一句

obj-$(CONFIG_HELLO_WORLD) += hello.o

makemenuconfig 中 CONFIG_HELLO_WORLD  配置为 * 。那么CONFIG_HELLO_WORLD=y

makefile在执行的时候就是

obj-y += hello.o

就是编译进内核。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值