原创

x4412开发板&ibox卡片电脑项目实战15-移植第一个hello x4412内核驱动

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/armeasy/article/details/40017013

前面我们学习了Linux驱动的调试方法,加载方法以及编写步骤,本章节我们将从零开始,编写第一个字符设备驱动。

在kernel/drivers/char/x4412目录下新建Makefile,Kconfig以及hello-x4412.c三个文件,Makefile文件内容如下:

obj-$(CONFIG_HELLO_X4412_DRIVER) += hello-x4412.o

Kconfig文件内容如下:

config HELLO_X4412_DRIVER
         tristate"hello X4412 driver"
         defaulty
         help
         compilefor hello x4412 driver,y for kernel,m for module.

hello-x4412.c内容如下:

#include <linux/module.h>
#include <linux/init.h>
 
static int __devinit hello_x4412_init(void)
{
         printk("hello,x4412!\r\n");
         return0;
}
 
static void hello_x4412_exit(void)
{
         printk("Goodbye,x4412!\r\n");
}
 
module_init(hello_x4412_init);
module_exit(hello_x4412_exit);
 
MODULE_LICENSE("GPL");
MODULE_VERSION("1.0");
MODULE_AUTHOR("www.9tripod.com");
MODULE_ALIAS("a Character driversample");
MODULE_DESCRIPTION("hello x4412 driver");

       这个程序只包含设备驱动的加载,卸载函数以及一些模块描述信息。当驱动加载时,打印“hello,x4412!”,当驱动卸载时,打印“Goodbye,x4412!”。

       在kernel/drivers/char/Kconfig中添加如下语句:

source "drivers/char/x4412/Kconfig"

       在kernel/drivers/char/Makefile中添加如下语句:

obj-y                             +=x4412/

       再编译内核,即将驱动编译进内核映像zImage中了。更新开发板内核映像,重启开发板可以看到如下标红的打印信息:

[   1.818915] console [ttySAC3] enabled
[   1.900122] x4412 Oops driver
[   1.901891] hello,x4412!
[   1.908596] brd: module loaded

       这里驱动被编译进内核了,它将无法被卸载。这时,卸载函数以及驱动的相关信息我们将无从测试。因此,我们有必要将它编译成驱动模块。

文章最后发布于: 2014-10-12 12:42:00
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览