驱动编译成模块、编译进内核
驱使硬件
移植(同一个东西)(移植心脏)
字符设备驱动(工作中大部分是字符设备)
驱动分4部分:
-
头文件
-
驱动模块的入口和出口
-
声明信息
-
功能实现
编译驱动2种方法:
- 将驱动编译成模块,然后使用命令将驱动加载到内核
-
需要Makefile文件
这里是obj-m -
编译
-
加载驱动模块
使用insmod命令,insmod hello.ko -
其它命令
查看我们加载的模块,使用lsmod命令
卸载驱动模块,使用rmmod命令,rmmod hello,注意没有ko后缀
实践(即使不会写驱动,知道怎么编译也可完成一些需求)
万万没想到,常用的ch340 usb转串口芯片是wch沁恒(最近使用它家ch569芯片)
编译过程中,出错了,设置环境变量CROSS_COMPILE 和 ARCH后,编译成功
- 直接把驱动编译到内核
make menuconfig图形化配置
和menuconfig有关的文件
为了方便,可以将config下面的配置文件复制给.config文件
Kconfig文件解释
编写Kconfig文件
这里是HELLO
编写Makefile文件
这里是CONFIG_HELLO
修改上一级Makefile
这里是obj-y
修改上一级Kconfig
进入make menuconfig界面,选中helloworld(*)
查看有没有编译成功
如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」