嵌入式Linux驱动笔记-基本知识二
来源:互联网 发布:雕刻机三工序换刀编程 编辑:程序博客网 时间:2024/05/22 06:10
一.嵌入式linux字符设备驱动框架
添加作者信息:MODULE_ATHOR("AlanWongCC");
添加模块使用信息:MODULE_DESCRIPION("xxxxxx");
命令:
moduleprobe xxx :加载内部模块。
优点是能够处理模块间的相互依赖,如:XXX.ko 和OOO.ko相互依赖,则此命令会自动处理。
内部模块能用insmod和moduleprobe来加载;外部模块只能用insmode来加载。
自定义模块加载和卸载函数
自定义:static int _hello_init(void); //模块加载函数
static ini _hello_exit(void); //模块卸载函数
模块加载、卸载函数接口:
module_init (_hello_init);
module_exit(_hello_exit);
__init(),静态编译时有意义,所修饰的函数代码放到内核init.text段中。
__exit()静态编译时有意义,静态编译时不编译不执行(修饰的函数不编译)
模块参数:传递参数给模块中的变量。
1.在模块加载时刻传递参数 2.用户空间可以访问(读写)模块参数。
查看系统所以模块详细信息:
#ls /sys/module/
目录/sys/module/ <xxx> /param/存放所以模块参数值,内核空间中普通用户只能读,只有超级用户才能写。
模块参数中导出符号“:void xxx(void)
{
xx...
}
EXPORT_SYUBOL("xxx");
EXPORT_SYSUBOL-GPL("xxx");
将内核模块变成驱动模块:
设备的分类:1.字符设备-键盘鼠标帧缓存fb -> 以字符(字符)为单位访问通常只支持顺序访问;不带缓冲。
2.块设备,-> 访问以固定大小为单位,通常支持随机访问;带缓冲通过缓冲来提高访问效率。
3.网络设备,没有设备文搜出,socket
- 嵌入式Linux驱动笔记-基本知识二
- 嵌入式Linux驱动笔记-基本知识一
- 嵌入式Linux驱动笔记二)------定时器
- 嵌入式Linux设备驱动开发笔记(二)
- 嵌入式linux驱动-触摸屏笔记
- 嵌入式linux驱动-I2C笔记
- 嵌入式linux驱动-DMA笔记
- 嵌入式linux驱动-网络设备驱动笔记
- linux 驱动笔记(二)
- 嵌入式Linux实验笔记(二)
- 【嵌入式Linux驱动开发】二、模块
- 嵌入式Linux设备驱动开发(二)
- 嵌入式LINUX驱动笔记1---创世纪
- 嵌入式linux驱动-输入子系统笔记
- 嵌入式linux驱动-块设备笔记
- 嵌入式linux驱动-nand flash笔记
- 嵌入式linux驱动-nor flash笔记
- 嵌入式Linux驱动笔记(三)------LCD驱动程序
- SQLServer海量数据处理 - 1 索引
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- 简单有线网络模型模拟
- Rotate Image
- meanShift
- 嵌入式Linux驱动笔记-基本知识二
- 【GUI组件】TextArea
- JVM系列三:JVM参数设置、分析
- centos安装mysqldb遇到的问题和解决方法
- 技巧:组合和替换 xml-stylesheet 处理指令
- VS2008提示无法读取项目文件 无法识别工具版本4.0 的解决方法
- C++数据类型:基本数据类型 构造数据类型(自定义数据类型)
- Sate210-F 金手指核心板引脚说明
- Ruby, 真是有很多魔力一样的东西在里面啊。