c文件如何编译为ko的MAKEFILE文件编写

分类: Android平台

首先需要知道:
obj-m = *.o
obj-y = *.o
上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件。

生成KO文件,分两种情况:单个.c文件和多个.c文件【以展讯7730 ANDROID4.4为例】
1.单个.c文件
kernel配置文件中定义
CONFIG_RUNYEE_CAMVIB=m
注意上面的m,表示作为一个模块进行编译,最后在MAKEFILE中需要用到的编译开关。
然后再相应的源码目录中的MAKEFILE中添加如下语句:
obj-$(CONFIG_RUNYEE_CAMVIB) := camvib.o
上面的一行的作用就是编译camvib.c的源文件,同时会生成相应的camvib.ko文件,和编译生成
的camvib.o在同一目录
最后就是insmod动作了:
insmod /system/lib/modules/camvib.ko

2.多个.c文件生成ko文件
kernel配置文件中定义
CONFIG_TOUCHSCREEN_FOCALTECH=m
注意上面的m,表示作为一个模块进行编译,最后在MAKEFILE中需要用到的编译开关。
然后再相应的源码目录中的MAKEFILE中添加如下语句:
obj-$(CONFIG_TOUCHSCREEN_FOCALTECH)  +=  focaltech_ts.o
focaltech_ts-objs :=  focaltech.o
focaltech_ts-objs +=  foc altech _ctl .o
focaltech_ts-objs +=  f ocaltech_ex_fu n .o
上面的意思就是编译生成 ko文件需要三个.c文件【focaltech.c focaltech_ctl.c focaltech_ex_fun.c】,最后
生成名为 focaltech_ts 的ko文件,注意ko文件名一定不能 focaltech那么在obj-m和lpc-objs中都含有focaltech.o
对make来讲会产生循环和混淆,因此也不能这样书写

最后就是insmod动作了:
insmod /system/lib/modules/ focaltech_ts .ko
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值