嵌入式开发第64日(内核模块的依赖)

来源:互联网 发布:淘宝删除差评步骤 编辑:程序博客网 时间:2024/06/08 11:09

内核模块依赖

一个模块使用了另一个模块的变量或者函数,第一个模块就依赖于第二个模块


#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("GPL v2");extern int test_mul(int,int);//外部声明,就可以调用了extern int test_div(int,int);int __init import_init(void){int result = 0;printk("enter import_init!\n");result = test_mul(10, 20);printk("result = %d\n",result);return 0;}void __exit import_exit(void){int result = 0;printk("enter import_exit!\n");result = test_div(15, 3);printk("result = %d\n",result);}module_init(import_init);module_exit(import_exit);



模块的导出符号

如果一个模块中的变量或者函数希望被别的模块使用,需要将对应的变量或者函数导出
EXPORT_SYMBOL:导出的内容所有模块都能使用
EXPORT_SYMBOL_GPL:导出的内容只有遵循GPL协议的模块才能使用

所以模块编程是一定要添加

MODULE_LICENSE("GPL v2");


#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("GPL v2");int test_mul(int x,int y){printk("enter test_mul!\n");return x*y;}int test_div(int x,int y){printk("enter test_div!\n");return x/y;}/*内核导出符号*/EXPORT_SYMBOL(test_mul);EXPORT_SYMBOL_GPL(test_div);


tips:

1)在使用insmod安装模块的时候 也要先安装依赖文件,不然外部声明会报错。

2)模块函数被别的模块所使用的时候,不能被卸载。

3)modprode安装模块会自动把依赖模块自动加载到上去,当然前提是依赖模块是已经安装好的。





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信不支持计步怎么办 肝癌二次介入后头晕心慌怎么办 跑步跑得胃疼怎么办 如果世界上的猪都死了怎么办 我和我老婆吵架怎么办 我和我老婆吵架了怎么办 智障人士父母死后怎么办 依赖性太强的人怎么办 高考只有一门写准考证号怎么办 ps做动画不流畅怎么办 ff15引擎剑卖了怎么办 fgo从者满了怎么办 游泳池的水喝了怎么办 月球没有水怎么办秒懂 请了新财神旧的怎么办 报警校体检没过怎么办 ae中建立了文本打不出字怎么办 宝宝3岁内八字怎么办 一岁半宝宝走路内八字怎么办 一岁宝宝走路内八字怎么办 宝宝1岁了内八字怎么办 宝宝学走路内八字怎么办 人胖走路磨腿怎么办 2岁半宝宝内八字怎么办 大狗跑步累倒怎么办? 拉小提琴的姿势不正确怎么办 屁股摔倒了很痛怎么办 腿摔倒了破了怎么办 骑车摔倒腿肿了怎么办 鸟翅膀老是掉着怎么办 有老人摔倒被讹怎么办 剑鞘囊肿手术后黏连怎么办 上古卷轴5变脏了怎么办 上古卷轴5病了怎么办 法院判的罚金没钱交怎么办 上古卷轴5亲吻出题怎么办 老滚5马不见了怎么办 上古卷轴5杀鸡了怎么办 上古卷轴5东西太多怎么办 上古卷轴天际杀鸡了怎么办 上古卷轴5偷东西被发现怎么办