linux驱动开发--导出内核符号
2013-12-26 08:44
489 查看
导出内核符号模板代码,验证小实例:
/** *Copyright (c) 2013.TianYuan *All rights reserved. * *文件名称: Esdexp.c *文件标识: 导出内核符号,此文件中的函数模块被Esdimp.c调用 * *当前版本:1.0 *作者:wuyq * *取代版本:xxx *原作者:xxx *完成日期:2013-11-18 */ #include <linux/init.h> #include <linux/module.h> //声明内核模块的许可权,如果不声明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 驱动开发之内核模块开发(四)—— 符号表的导出
- Linux 驱动开发之内核模块开发(四)—— 符号表的导出
- Driver:搭建linux驱动开发环境、内核驱动开发基础、导出符号、打印优先级
- Linux驱动开发中s3c2410关于gpio的内核导出函数的解读
- Linux设备驱动开发详解-第4章(三)-导出符号
- linux驱动开发-内核符号表
- linux驱动开发之module导出符号
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- linux驱动基础开发——linux 内核配置机制
- Linux 驱动开发之内核模块开发 (一)—— 内核模块机制基础
- linux驱动开发--字符设备:内核等待队列
- linux内核导出符号
- 浅谈 Linux 内核开发之网络设备驱动
- 浅谈 Linux 内核开发之网络设备驱动
- 获取Linux内核未导出符号的几种方式
- 嵌入式linux平台设备驱动(设备驱动模型)开发之linux内核中bus总线
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)
- 浅谈 Linux 内核开发之 PCI 设备驱动
- Linux内核开发之简单字符设备驱动(下)