linux驱动开发--导出内核符号
2023-09-14 08:57:16 时间
//声明内核模块的许可权,如果不声明LISCENSE,模块加载时将收到内核被污染(kernel tainted)的警告
MODULE_LICENSE("GPL");
int esdexp_mult(int x, int y)
printk("enter esdexp_mult!\n");
return (x*y);
int esdexp_divd(int x, int y)
printk("enter esdexp_divd!\n");
return (x/y);
/*导出内核符号,定义的函数可以被其他函数调用*/
EXPORT_SYMBOL(esdexp_mult);
EXPORT_SYMBOL(esdexp_divd);
/** *Copyright (c) 2013.TianYuan *All rights reserved. *文件名称: Esdimp.c *文件标识: 验证Esdexp.c中的模块 *当前版本:1.0 *作者:wuyq *取代版本:xxx *原作者:xxx *完成日期:2013-11-18 #include linux/init.h #include linux/module.h /*两个ko文件, 安装应该有顺序的 modprob*/ //声明内核模块的许可权,如果不声明LISCENSE,模块加载时将收到内核被污染(kernel tainted)的警告 MODULE_LICENSE("GPL"); extern int esdexp_mult(int ,int ); extern int esdexp_divd(int ,int ); static int __init esdimp_init(void) int result = 0; /*编译器、代码可移植性、健壮性 */ printk("enter esdimp_init!\n"); /*局部变量分配在栈内存中,赋初值。默认不一定为0*/ /*局部变量应该放在函数内,可执行代码之前。且赋初值。即:函数开头,否则会有警告信息。*/ result = esdexp_mult(10, 17); printk("result = %d\n", result); return 0; static void __exit esdimp_exit(void) int result = 0; printk("enter esdimp_exit!\n"); result = esdexp_mult(1000, 60); printk("result = %d\n", result); module_init(esdimp_init); module_exit(esdimp_exit);
KERNELDIR ?=/root/Desktop/work/ldd3/linux-2.6.31_TX2440A PWD := $(shell pwd) obj-m += Esdimp.o Esdexp.o #obj-m += Esdexp.o default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules clean: @rm -f *.o *.ord* *.sy* *.mod.* *.ko
相关文章
- Linux 性能分析工具perf使用
- linux驱动开发--字符设备:原子操作
- 【Linux】在linux上java工具jps jstat jinfo等命令找不到怎么办
- linux lcd设备驱动剖析一
- linux常用命令
- Linux IO模型漫谈(4)- 非阻塞IO
- 【Linux基础】linux下修改ls显示的时间格式
- Linux Shell脚本自动化编程实战-模式匹配
- linux fedora35 zsh & oh-my-zsh 的配置与使用
- Linux 递归创建目录
- linux下华为HSPA模块MU609的驱动问题
- 【Linux 内核】CFS 调度器 ② ( CFS 调度器 “ 权重 “ 概念 | CFS 调度器调度实例 | 计算进程 “ 实际运行时间 “ )
- linux最大文件句柄数量之(file-max ulimit -n limit.conf)
- 在linux桌面上显示图标
- linux中的"空白字符"
- localdomain的linux域
- L68.linux命令每日一练 -- 第十章 Linux网络管理命令 -- ping和traceroute
- L41.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- userdel和groupadd
- Linux驱动中MODULE_DEVICE_TABLE的理解汇总
- Linux命令之printenv,查看u-boot环境变量
- linux AWK常用命令 —— 筑梦之路
- Linux驱动调试
- Linux设备驱动中的ioctl
- Linux系统启动过程分析
- linux监控程序
- Linux【基础篇】—— linux操作系统目录结构、运行级别介绍
- 认识篇Linux驱动----CAN通信方式实验
- makefile简单脚本编写和Linux调试器gdb的简单应用
- Linux下的截图工具 —— Spectable
- Linux磁盘满了