xshbx 发表于 2009-4-18 13:57:43

嵌入式驱动程序开发历程

使用友善之臂mini2440开发板
Step1:配置内核
make menuconfig
Load an Alternate Configuration File
选择config_n35
Step2:将驱动程序源码放置于kernel-2.6.13/drivers/char目录下,名为qq2440_hello_module.c,内容如下:
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
static int __init qq2440_hello_module_init(void)
{
printk("Hello, QQ2440 module is installed !\n");
return 0;
}
static void __exit qq2440_hello_module_cleanup(void)
{
printk("Good-bye, QQ2440 module was removed!\n");
}
module_init(qq2440_hello_module_init);
module_exit(qq2440_hello_module_cleanup);

Step3:编辑配置文件Kconfig,加入驱动选项,使之在make menuconfig 的时候出现
打开 kernel-2.6.13/drivers/char/Kconfig 文件,添加
config QQ2440_HELLO_MODULE
        tristate "QQ2440/mini2440 Hello Module sample"
        depends on ARCH_S3C2410
        help
        QQ2440 hello module sample

Step4:在char目录下打开Makefile,添加
obj-$(CONFIG_QQ2440_MODULE)+= qq2440_hello_module.o

Step5:在kernel-2.6.13目录下执行make menuconfig
在Device Driver——Character Driver下将QQ2440_HELLO_MODULE选为M,模块方式,退出保存设置。

Step6:执行命令 make modules。在char目录下产生qq2440_hello_module.ko的文件。传到开发板上。
Step7:在超级终端 执行 chmod a+rwx qq2440_hello_module.ko
Step8:加载驱动模块,执行insmod qq2440_hello_module.ko
显示:
Hello, QQ2440 module is installed !
Step9:卸载驱动模块,执行rmmod qq2440_hello_module.ko
显示加载驱动模块,执行
Good-bye, QQ2440 module was removed!

daoshang 发表于 2009-4-18 14:13:01

呵呵,为了这个东东,我们俩郁闷了好几天啊!

armok 发表于 2010-1-26 11:29:37

页: [1]
查看完整版本: 嵌入式驱动程序开发历程