作者:z
历史:
20210914 编写
20210923 简单驱动
文章目录
1.驱动专题
1.1驱动开发
原理:.ko文件:kernel object:内核模块
uimage:二进制内核文件,直接写到内核
整体步骤:编写代码,编译ko, 转载insmod
1.2代码
mkimage缺少
sudo cp -raf mkimage /usr/bin/
chmod 777 /usr/bin/
设备树
dtb会自己去找dts
1.3通用解法
1.四步驱动框架
2.makefile编译驱动(框架基本一致的)
3&4.装驱动,卸驱动
2.驱动模块开发+固件wifi模块开发
2.1参数传递
2.2源码学习在以后所有的工程中
2.3驱动模块写法以及使用
2.4 驱动中添加其他驱动
2.4.1 insmod hello.ko报未知错误与解决
查找 /sys/module/math 看是否有这个参数
没有则进行insmod math.ko
然后重新insmod hello.ko即可通过驱动调用驱动。
3. 字符设备驱动
字符设备、块设备、网络设备总结
字符设备
1.LCD屏幕,按键,IIC对应坐标和温度,主要特征是快
2.用户空间和内核空间的交互会很快
块设备
1.磁盘,U盘,flash,SD卡,都是存储块数据的存储设备,主要特征是慢
2.不能很快的给用户
网络设备
1.socket设备,以太网,wifi,主要涉及协议
2.比较复杂,主要对协议操作
3.1 字符设备对应的文件IO操作
1.通过操作字符设备唯一的设备号ID,对字符设备进行唯一管理
2.用户必须知道设备驱动对应的设备节点(文件),这样才能open