驱动编译成模块、编译进内核
驱使硬件

移植(同一个东西)(移植心脏)
字符设备驱动(工作中大部分是字符设备)
驱动分4部分:
-
头文件
![image]()
-
驱动模块的入口和出口
![image]()
-
声明信息
![image]()
-
功能实现
![image]()
编译驱动2种方法:
- 将驱动编译成模块,然后使用命令将驱动加载到内核
-
需要Makefile文件
![image]()
这里是obj-m -
编译
![image]()
-
加载驱动模块
使用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(*)
查看有没有编译成功


如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。







浙公网安备 33010602011771号