x4412开发板&ibox卡片电脑项目实战15-移植第一个hello x4412内核驱动
来源:互联网 发布:对于网络直播的看法 编辑:程序博客网 时间:2024/05/20 21:43
前面我们学习了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
这里驱动被编译进内核了,它将无法被卸载。这时,卸载函数以及驱动的相关信息我们将无从测试。因此,我们有必要将它编译成驱动模块。
0 0
- x4412开发板&ibox卡片电脑项目实战15-移植第一个hello x4412内核驱动
- x4412开发板&ibox卡片电脑项目实战15-移植第一个hello x4412内核驱动
- x4412开发板&ibox卡片电脑项目实战16-将hello x4412驱动编译成模块
- x4412开发板&ibox卡片电脑项目实战16-将hello x4412驱动编译成模块
- x4412开发板&ibox卡片电脑项目实战2-内核编译脚本解析
- x4412开发板&ibox卡片电脑项目实战5-修改内核LOGO
- x4412开发板&ibox卡片电脑项目实战6-配置内核
- x4412开发板&ibox卡片电脑项目实战7-Linux内核的引导
- x4412开发板&ibox卡片电脑项目实战2-内核编译脚本解析
- x4412开发板&ibox卡片电脑项目实战5-修改内核LOGO
- x4412开发板&ibox卡片电脑项目实战6-配置内核
- x4412开发板&ibox卡片电脑项目实战7-Linux内核的引导
- x4412开发板&ibox卡片电脑项目实战11-linux驱动的调试方法
- x4412开发板&ibox卡片电脑项目实战12-linux驱动的加载方法
- x4412开发板&ibox卡片电脑项目实战14-linux驱动的编写步骤
- x4412开发板&ibox卡片电脑项目实战18-驱动中导出符号
- x4412开发板&ibox卡片电脑项目实战12-linux驱动的加载方法
- x4412开发板&ibox卡片电脑项目实战11-linux驱动的调试方法
- 大学
- 一道笔试题目
- 如何选择开源许可证?
- 与大师同行 第57届世界互联网峰会 2014年11月13-16日 中国·深圳
- 【C/C++】【Linux&Windows】Windows系统下的文件夹扫描与Linux系统下的实现比较
- x4412开发板&ibox卡片电脑项目实战15-移植第一个hello x4412内核驱动
- 前方有雾--葡桃
- 第七周项目1电阻串联
- UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
- 生成元
- http://www.cnblogs.com/wengzilin/p/3530712.html
- OK6410 TFTP的安装以及TFTP下载zImage映像
- mysql中unique key与auto_increment的性能分析
- checkbox复选框全选及全不选操作,attr无效解决办法