您的位置:首页 > 运维架构 > Linux

hello 之linux2.6.30.4 arm 下的驱动开发

2011-04-18 16:16 225 查看
嵌入式设备的驱动开发,理论学了差不多有3年了。但是因为资金的问题迟迟没有买开发板。年后我大出了一次血买了TQ的2410开发板。从嵌入式的软件开发到驱动开发我一直在深入的学习希望自己能够把嵌入式的技术要领学到手,。没有放弃。我一直在努力去做。下面我将将自己如何亲手做出hello world的驱动模块。并且详细的讲述开发的过程,

对于初始的hello.c文件大家都十分的不陌生,关键是如何以驱动模块的方式









加载的驱动如上图所示。。。。。

加载到系统内核里面去呢》下面我贴出hello.c的源文件。

#include<linux/init.h>

#include<linux/kernel.h>

#include<linux/module.h>

static int hello_init(void)

{

printk("hello world/n");

return 0;

}

static void hello_exit(void)

{

printk("bye bye/n");

}

module_init(hello_init);

module_exit(hello_exit);

MODULE_LICENSE("BSD/GPL");

源程序就这么简单。但是如何编写makefile文件确实有点复杂

我编写makefile的时候,提示好多头文件不在,而我进入相关的目录下面(include/linux/xx/h)文件是存在的啊。。在网上找了下是因为内核树目录没有建立起来。。何谓内核树目录,请Google 我make module 和make modules_install 下,在/lib/modules/下面生成了相关的文件

在Makefile文件-C 的时候。这个文件是内核树目录的路径。。切记!!!

下面的编写都没什么了。。。

2,将xx.ko文件移植到开发的时候切记交叉编译链的使用。。移植到开发板之后输入insmod xx.ko 然后看输出的内容,来判断是否驱动加载正常。或者file xxx.ko 或者lsmod 来显示当前系统所加载的模块.

这只是万里长征的一步而已。继续加油。。。目标:嵌入式的应用程序+驱动开发

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: