驱动编译成模块、编译进内核

驱使硬件
image

移植(同一个东西)(移植心脏)

字符设备驱动(工作中大部分是字符设备)


驱动分4部分:

  • 头文件
    image

  • 驱动模块的入口和出口
    image

  • 声明信息
    image

  • 功能实现
    image


编译驱动2种方法:

  • 将驱动编译成模块,然后使用命令将驱动加载到内核
  1. 需要Makefile文件
    image
    这里是obj-m

  2. 编译
    image

  3. 加载驱动模块
    使用insmod命令,insmod hello.ko

  4. 其它命令
    查看我们加载的模块,使用lsmod命令
    卸载驱动模块,使用rmmod命令,rmmod hello,注意没有ko后缀

实践(即使不会写驱动,知道怎么编译也可完成一些需求)
万万没想到,常用的ch340 usb转串口芯片是wch沁恒(最近使用它家ch569芯片)
编译过程中,出错了,设置环境变量CROSS_COMPILE 和 ARCH后,编译成功

  • 直接把驱动编译到内核
    make menuconfig图形化配置

和menuconfig有关的文件
image

image
为了方便,可以将config下面的配置文件复制给.config文件

image

image

image

Kconfig文件解释
image
image
image
编写Kconfig文件
image
这里是HELLO

编写Makefile文件
image
这里是CONFIG_HELLO

修改上一级Makefile
image
这里是obj-y

修改上一级Kconfig
image
进入make menuconfig界面,选中helloworld(*)

查看有没有编译成功
image
image


posted @ 2023-02-07 22:42  我爱茜茜公主  阅读(258)  评论(0)    收藏  举报