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

2026/1/27 14:55:57

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驱动模块开发流程.doc 将本文的Word文档下载到电脑
搜索更多关于: linux驱动开发笔记7驱动模块开发流程 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219