成功在 Tiny6410开发板上加载hello world模块

今天弄了整整一天,终于在赖子同学的帮助下将最简单的hello world模块加载上去了,发次博客将过程简单的记录下。

首先在home下新建一个工作目录hello_mod,然后编辑hello_module.c文件(编辑的时候记得不要把代码敲错了,今天就出现了这个问题的^_^)

#include <linux/kernel.h>
#include <linux/module.h>


static int __init mini6410_hello_module_init(void)
{
    printk("Hello, Mini6410 module is installed !\n");
    return 0;
}

static void __exit mini6410_hello_module_cleanup(void)
{
    printk("Good-bye, Mini6410 module was removed!\n");
}

module_init(mini6410_hello_module_init);
module_exit(mini6410_hello_module_cleanup);
MODULE_LICENSE("GPL");

然后就是写Makefile啦,驱动里面的Makefile跟应用程序里Makefile的内容方面还是有很多区别的⊙﹏⊙b,目前还木有搞清楚区别,还需要多多学习啊...

ARCH := arm
CROSS_COMPILE := arm-linux-

#ifneq ($(KERNELRELEASE),)
	obj-m :=module_test.o
#else
	KDIR ?=/opt/FriendlyARM/mini6410/linux/linux-2.6.38
	PWD := $(shell pwd)
default: 
	make -C $(KDIR) M=$(PWD) modules
#endif

.PHONY:clean
clean:
	rm -f *.ko *.order *.symvers *.o

注意ARCH 和CROSS_COMPILE 的填写。这里先留一个疑问,之前没有注释这三行(带#号的)直接在hello_mod里面make,结果没有错误,但是也没有生成*.ko文件。赖子同学重新帮我修改了Makefile,注释掉了三行(代码中带#的),再make就生成了*.ko文件,下到板子里insmod,OK!

PS:貌似需要按照Tiny6410提供的用户手册,讲内核顶目录中的一个配置文件(eg:config_mini6410_n43)cp为.config文件。执行一次make zImage,然后在编译模块文件...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值