编写驱动设备函数的用法
2026/6/14 8:25:43 网站建设 项目流程

从终端输出和文件信息来看,已经编译成功了(生成了 RK3568 平台对应的 ARM64 架构驱动模块)。

一、编译成功的核心依据

  1. make过程完成了CC(编译)、MODPOST(模块符号处理)、LD(链接)等步骤,最终生成了chrdevbase.ko
  2. file chrdevbase.ko显示这是ARM aarch64(即 RK3568 对应的架构)的 ELF 文件,符合平台要求。

二、生成文件的用途说明

当前目录下的文件可分为驱动模块文件辅助文件两类:

文件用途
chrdevbase.ko核心:编译好的字符设备驱动模块,需传到 RK3568 开发板加载使用
chrdevbase.o驱动源码chrdevbase.c编译生成的目标文件(模块链接的中间文件)
chrdevbase.mod.*模块的依赖信息、符号表文件(内核加载模块时自动读取,无需手动操作)
Module.symvers模块导出的符号表(多模块依赖时用,单模块可忽略)
chrdevbaseApp用户态测试程序(对应chrdevbaseApp.c编译后的可执行文件,用于测试驱动)

三、这些文件的典型使用流程(在 RK3568 开发板上)

需要将chrdevbase.kochrdevbaseApp传到开发板,按以下步骤操作:

步骤 1:将文件传到开发板

通过scp或 U 盘等方式,把chrdevbase.kochrdevbaseApp传到 RK3568 开发板的某个目录(比如/root)。

步骤 2:加载驱动模块

在开发板终端执行(加载驱动到内核):

# 加载模块 insmod chrdevbase.ko # 验证是否加载成功(能看到chrdevbase即表示加载成功) lsmod | grep chrdevbase
步骤 3:创建设备节点

驱动加载后,需创建用户态访问驱动的入口(设备文件)

  1. 先查看驱动分配的主设备号:

    cat /proc/devices | grep chrdevbase

    输出类似240 chrdevbase(240 是主设备号,以实际输出为准)。

  2. 创建字符设备节点(假设主设备号是 240,次设备号为 0):

    mknod /dev/chrdevbase c 240 0
步骤 4:测试驱动(用用户态程序)

运行chrdevbaseApp测试驱动的读写功能(需匹配chrdevbaseApp.c的逻辑,比如读驱动数据):

# 给测试程序加执行权限 chmod +x chrdevbaseApp # 运行测试(示例:假设程序是读驱动数据,具体参数看App的代码逻辑) ./chrdevbaseApp /dev/chrdevbase 1
步骤 5:卸载驱动模块

测试完成后,卸载驱动(从内核移除):

# 先删除设备节点 rm /dev/chrdevbase # 卸载模块 rmmod chrdevbase

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询