驱动编写(linux)
前置
1 | 查看设备节点 |
https://zhuanlan.zhihu.com/p/425420889 文章记录
1、字符设备
1-1、加载驱动模块
1 | 比如 |
如果drv.ko设备存在了依赖关系,那么就必须先加载所依赖的模块,再加载drv.ko。
如果不想去关注依赖关系,可以采用modprobe进行驱动的加载。
驱动加载路径/lib/modules/默认下的情况
1-2、卸载驱动
可以采用
1 | rmmod drv.ko |
或者
1 | modprobe -r drv.ko |
1-3、工程创建
打开 VSCode,按下“Crtl+Shift+P”打开 VSCode 的控制台,然后输入
“C/C++: Edit configurations(JSON) ”,打开 C/C++编辑配置文件
需要添加3个头文件的路径、Linux源码下的include、
arch/arm/include 和 arch/arm/include/generated 这三个目录的路径
2 、第一个驱动编写chardevbase
- 第一步:写驱动的入口
1
2module_init(); //入口
module_exit(); //出口 - 第二步:注册入口函数
注册函数怎么写?去kernel源码搜索module_init,看别人是怎么写的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 naro!