驱动篇_210914

作者: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
在这里插入图片描述

3.1.1 为驱动申请专用设备号ID

在这里插入图片描述

3.1.2 断电重启后自动创建、销毁设备节点写法

创建

在这里插入图片描述

销毁
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值