嵌入式开发第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
- 嵌入式开发第64日(内核模块的依赖)
- 嵌入式开发第62日(linux内核模块之设备驱动:修改内核的默认输出级别)
- 嵌入式开发第63日(linux内核模块之设备驱动:模块传参)
- 嵌入式开发第61日(linux内核模块之设备驱动:怎么写一个简单的驱动)
- 3-05 嵌入式Linux内核模块开发
- 【内核编程】【Makefile】:嵌入式驱动开发时驱动模块于内核版本不匹配的解决
- 内核模块的开发
- 内核模块的开发
- 内核模块的开发
- 内核符号和驱动模块的依赖
- 嵌入式Linux内核模块的移植
- 嵌入式Linux驱动开发(一)一个简单的Linux内核模块框架
- 嵌入式学习-驱动开发前奏-lesson1-内核模块相关知识
- 嵌入式开发第7日(数组与指针)
- 嵌入式开发第51日(系统移植之u-boot)
- Helloworld内核模块的开发
- linux内核模块依赖图
- 我的linux内核模块关系依赖图
- ios 自定义滑杆
- 语句
- oracle对数据的导入导出
- C函数与汇编函数之间参数及返回值传递方法
- java基础-面向对象-this关键字
- 嵌入式开发第64日(内核模块的依赖)
- leetcode-283-Move Zeros 顺序表
- linux多线程-互斥锁
- 关于错误map/set iterator not incrementable
- APICloud手机端网站直接制作手机APP
- 【Hadoop入门】Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0
- android 用canvas 绘制简单圆形时钟
- 基于OpenCV的膨胀和腐蚀
- ASP.NET MVC 微信JS-SDK认证