编译内核到模块(无需加载)

以helloworld为例:

① 把hello.c复制到内核代码下(具体放哪根据模块功能,比如字符驱动放在/drivers/char/下,并cd进入该目录下);

 

② 修改配置菜单选项Kconfig:vi Kconfig,在menu "Character devices"代码下增        加下面两行:

config HELLO_WORLD

bool "helloworld"

此时重新配置菜单make menuconfig则能在Device Drivers-->Character devicesk看到新增的helloworld(NEW)选项,选上后保存则vi .config能找到CONFIG_HELLO_WORLD=y;

 

③ 修改Makefile:vi drivers/char/Makefile(根据模块放的位置),在适当位置添加:

obj -${CONFIG_HELLO_WORLD}        += hello.o

/*****obj -y是编译内核,obj -m是编译模块,obj -n什么都不做,obj -${}则根据括号里面的信息自己判断编译******/

 

④ 然后编译内核make uImage ARCH=arm CROSS_COMPILE=arm-linux-,并通过tftp拷到开发板运行#cp arch/arm/boot/uImage  /tftpboot,则能在启动时看到打印的"Hello World !"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值