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

驱使硬件
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 @   我爱茜茜公主  阅读(240)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示