linux内核模块编程之符号导出
很简单的一个程序,sub模块提供两个函数sub_integer,add_integer,并将其导出到内核符号表中,sub_test模块对这两个函数进行调用。这算是自己写的第一个内核模块程序吧,纪念一下.
sub.c:
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
//int add_integar(int,int);
//int sub_integar(int,int);
int add_integer(int a,int b){
return a+b;
}
int sub_integer(int a,int b){
return a-b;
}
int __init mod_init(){
printk(KERN_ALERT "the first module program");
return 0;
}
void __exit mod_exit(){
printk(KERN_ALERT "i like u");
}
EXPORT_SYMBOL(add_integer);
EXPORT_SYMBOL(sub_integer);
module_init(mod_init);
module_exit(mod_exit);
sub_test.c:
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
MODULE_LICENSE("Dual BSD/GPL");
extern int sub_integer(int,int);
extern int add_integer(int,int);
int __init test1(void){
int a=sub_integer(3,1);
int b=add_integer(2,2);
printk(KERN_ALERT"sub:%d\nadd:%d\n",a,b);
return 0;
}
void __exit test2(void){
printk(KERN_ALERT"bybye\n");
}
module_init(test1);
module_exit(test2);
对这两个函数的引用应该有比extern更好的方式,要是都extern就太麻烦了
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
十年以来,全球
Linux
界有哪些重要进展,人们应该知道?对此,人们可以有不同的看法,但是,大家总得有个大致相同的认识。实际情况怎样呢?
......
ELDK;支持GDB的BDIGDB Firmware FOR Linux;基于windows的嵌入式Linux交叉开发工具软件INSIGHT GNUPROXTOOLS ;支持GDB的BDIGDB FIRMWARE FOR WINDOWS
bootloader
German DENK U-boot GNU
fuction:
network support;(tftp\Bootp);;;FlashRAM ;串口deng多种方式下载 ......
Linux 中如何查询和卸载已安装的软件
Linux软件的安装和卸载一直是困扰许多新用户的难题。在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序” 来实现。与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM。它可以用来建立、安装、查询、更新、卸载软件。该工 ......