第一范文网 - 专业文章范例文档资料分享平台

linux驱动开发笔记7驱动模块开发流程

来源:用户分享 时间:2025/6/29 5:30:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

linux驱动开发笔记7驱动模块开发流程

一、驱动模块的搭建

1、 在Drivers目录下建立自己的模块目录 2、 建立Makefile文件,见上一篇博客

3、 建立源文件,源文件矿建如下,其中这两个函数式必须实现的

#include #include

void myprink(int cmd); //一个模块调用的源文件调用另一个源文件需要在本本件声明一下

static __init int moduleTestInit(void) {

printk(\ myprink(100); return 0; }

static __exit void moduleTestExit(void) {

myprink(100);

printk(\}

module_init(moduleTestInit); module_exit(moduleTestExit); MODULE_LICENSE(\MODULE_AUTHOR(\MODULE_VERSION(\

MODULE_DESCRIPTION(\

二、一个驱动模块调用另一个驱动模块的函数

A模块要调用B模块的函数 则B模块必须这样定义函数 #include #include

void my_printk(int no) { printk(\}

EXPORT_SYMBOL(my_printk); //必须做这个符号导出才能在其它模块使用

MODULE_LICENSE(\三、模块参数

#include #include static int age = 10;

static char *name = \static int array[10]; static int num = 0; static char string[20];

//module_param_named(a,age,int,S_IRUGO); //a代表参数的名字,在命令行输入时insmod test.ko a=10 .如果输入a参数则age的值为a=value的value值,若不输入参数,则age为默认的定义的值10

//module_param_named(n,name,charp,S_IRUGO);//同上

下面两个函数和上面两个函数一样 module_param(age,int,S_IRUGO); module_param(name,charp,S_IRUGO);

module_param_array(array,int,&num,S_IRUGO);/./num是输入的数组的元素个数,但不能超过定义数组的大小,输入的命令行array=1,2,3,3,

module_param_string(str,string,10,S_IRUGO); // 字符的最大长度为10,命令行输入str=tangzhi

static __init int module_init3(void) { printk(\ printk(\ printk(\ printk(\ while(num--){ printk(\ } printk(\ printk(\ return 0; }

static __exit int module_exit3(void) { printk(\}

module_init(module_init3); module_exit(module_exit3); MODULE_LICENSE(\

搜索更多关于: linux驱动开发笔记7驱动模块开发流程 的文档
linux驱动开发笔记7驱动模块开发流程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7dnme6jxzb3qhtz4wk7c_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top