linux 驱动学习-1th
来源:互联网 发布:桐乡淘宝摄影基地 编辑:程序博客网 时间:2024/05/01 20:21
linux 驱动学习1th,linux驱动程序的大致框架。
#include <linux/kernel.h>
#include <linux/module.h>
1.模块加载函数(必须)-----当通过insmod命令加载内核模块时,模块的加载函数会自动被内核执行,以完成本模块的相关初始化工作;
2.模块卸载函数(必须)-----当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模块加载函数相反的功能;
3.模块许可证声明(必须)---模块许可证(LICENSE)声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收到内核被污染的警告;
4.模块参数(可选)---------模块参数是模块被加载时可以传递给它的值,它本身对应模块内部的全局变量;
5.模块导出符号(可选)-----内核模块可以导出符号(symbol,对应于函数或变量),这样其它模块可以使用本模块中的变量或函数;
6.模块作者等信息声明(可选);
1.模块加载函数
static int __init initialization_function(void)
{
}
module_init(initialization_function);
2.模块卸载函数
static void __exit cleanup_function(void)
{
}
module_exit(cleanup_function);
3.模块许可证声明
MODULE_LICENSE("GPL");
MODULE_LICENSE("Dual BSD/GPL");
4.模块参数
module_param(xxx);
5.模块导出符号
EXPORT_SYMBOL(name);
EXPORT_SYMBOL_GPL(name);
6.模块作者等信息声明
MODULE_AUTHOR("onejacky wanshijie@126.com");
#include <linux/module.h>
1.模块加载函数(必须)-----当通过insmod命令加载内核模块时,模块的加载函数会自动被内核执行,以完成本模块的相关初始化工作;
2.模块卸载函数(必须)-----当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模块加载函数相反的功能;
3.模块许可证声明(必须)---模块许可证(LICENSE)声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收到内核被污染的警告;
4.模块参数(可选)---------模块参数是模块被加载时可以传递给它的值,它本身对应模块内部的全局变量;
5.模块导出符号(可选)-----内核模块可以导出符号(symbol,对应于函数或变量),这样其它模块可以使用本模块中的变量或函数;
6.模块作者等信息声明(可选);
1.模块加载函数
static int __init initialization_function(void)
{
}
module_init(initialization_function);
2.模块卸载函数
static void __exit cleanup_function(void)
{
}
module_exit(cleanup_function);
3.模块许可证声明
MODULE_LICENSE("GPL");
MODULE_LICENSE("Dual BSD/GPL");
4.模块参数
module_param(xxx);
5.模块导出符号
EXPORT_SYMBOL(name);
EXPORT_SYMBOL_GPL(name);
6.模块作者等信息声明
MODULE_AUTHOR("onejacky wanshijie@126.com");
0 0
- linux 驱动学习-1th
- linux驱动学习-2th
- linux驱动学习-3th
- linux驱动学习-4th
- linux驱动学习1---led驱动
- linux驱动学习笔记1
- linux驱动学习笔记1
- linux驱动--i2c驱动学习
- linux设备驱动学习笔记(1)-字符设备驱动
- Linux设备驱动开发学习(1)--字符设备驱动
- linux驱动学习笔记1--字符型驱动的编写
- Beginning Linux Programming 4th Edition 学习笔记 - Chapter 1:Getting started
- linux学习笔记-驱动(1)
- linux字符设备驱动学习笔记1
- Linux 驱动学习笔记1 -- HelloWorld
- Linux驱动学习1(框架梳理)
- Linux驱动开发学习笔记1
- Linux驱动开发学习归纳-1
- Remove Duplicates from Sorted Array II
- Ubuntu虚拟机安装
- Android开发中 页面加载超大图片时出现OOM
- LeetCode Pascal's Triangle
- 地铁换乘
- linux 驱动学习-1th
- apue和unp的学习之旅01——网络基本概念
- IOS中的随机数arc4random方法
- mysql删除,插入,查询等语句的总结
- 参数个数不同的函数载体(C++)
- java利用JXL包操作Excel表
- OpenCv中改变图像尺寸
- 拓扑排序c++实现
- Uboot 内存初始化(2440)