ARM学习笔记——内核模块开发
2018-01-17 09:44
309 查看
1.思维导图
2.使用Makefile编译内核模块
Makefile文件:
如果有多个c文件:
obj-m:=test.o(要生成的目标文件)
test-objs:= hello.o simple.o
KDIR:=所依赖内核源代码路径
写完Makefile之后在terminal运行“make”编译
3.安装与卸载
² 安装insmod
² 卸载rmmod
² 查看lsmod
4.可选模块信息
4.1模块声明
² MODULE_LICENSE(“遵守的协议”) 可选协议:GPL,GPLv2
² MODULE_AUTHOR(“作者”)
² MODULE_DESCRIPTION(“模块的功能描述”)
² MODULE_VERSION(“v1.0”)
4.2模块参数
通过宏module_param指定保存模块参数的变量。模块参数用于在加载模块时残敌参数给模块。
modul_param(name,type,perm)
perm是permission,权限,有两个取值:S_IRUGO,读权限,S_IWUSR,写权限
4.3 符号导出
² EXPORT_SYMBOL()
² EXPORT_SYMBOL_GPL() 只能用于包含GPL许可证的模块
5.内核打印(有优先级的概念,0最高,默认级别是4)
rintk(“<0>
a is %d \n”,a);
printk(KERN_EMERG“a is %d \n”,a);
2.使用Makefile编译内核模块
Makefile文件:
如果有多个c文件:
obj-m:=test.o(要生成的目标文件)
test-objs:= hello.o simple.o
KDIR:=所依赖内核源代码路径
写完Makefile之后在terminal运行“make”编译
3.安装与卸载
² 安装insmod
² 卸载rmmod
² 查看lsmod
4.可选模块信息
4.1模块声明
² MODULE_LICENSE(“遵守的协议”) 可选协议:GPL,GPLv2
² MODULE_AUTHOR(“作者”)
² MODULE_DESCRIPTION(“模块的功能描述”)
² MODULE_VERSION(“v1.0”)
4.2模块参数
通过宏module_param指定保存模块参数的变量。模块参数用于在加载模块时残敌参数给模块。
modul_param(name,type,perm)
perm是permission,权限,有两个取值:S_IRUGO,读权限,S_IWUSR,写权限
4.3 符号导出
² EXPORT_SYMBOL()
² EXPORT_SYMBOL_GPL() 只能用于包含GPL许可证的模块
5.内核打印(有优先级的概念,0最高,默认级别是4)
rintk(“<0>
a is %d \n”,a);
printk(KERN_EMERG“a is %d \n”,a);
相关文章推荐
- linux 设备驱动开发学习笔记(一):最简单的内核模块
- 国嵌视频学习笔记---linux内核开发1
- ARM Cortex-M0+Kinetis L系列学习笔记_MCG模块简介
- linux内核开发基础学习笔记
- Linux内核学习2:内核模块的开发
- 微软企业库4.1学习笔记(十四)缓存模块2 使用缓存模块进行开发
- ARM学习笔记引脚连接模块和GPIO的学习
- 内核模块开发(笔记)
- linux驱动开发学习--对中断和内核定时器的学习笔记
- arm-linux内核启动学习笔记(二)
- nginx学习笔记一(开发自己的http模块)
- arm-linux内核启动学习笔记(二)(废弃)
- 新手一定要看的学习笔记 -ARM开发
- 嵌入式学习-驱动开发前奏-lesson1-内核模块相关知识
- [树莓派内核学习]内核模块开发
- 微软企业库4.1学习笔记(十四)缓存模块2 使用缓存模块进行开发
- linux驱动开发笔记--2.3内核模块相比于应用程序
- Linux学习笔记 - 内核模块
- 移动开发:S5PV210学习笔记——内核移植与文件系统构建
- 微软企业库4.1学习笔记(十四)缓存模块2 使用缓存模块进行开发