news 2026/7/11 10:32:11

编写驱动设备函数的用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
编写驱动设备函数的用法

从终端输出和文件信息来看,已经编译成功了(生成了 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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 5:01:14

手把手教你使用L298N搭建简易电机控制器

从零开始搭建直流电机控制器:L298N实战全解析你有没有试过让一个小车自己动起来?或者想控制一个机械臂精准转动?这一切的背后,都离不开一个关键角色——电机控制器。而对初学者来说,最友好、最常用的入门方案之一&…

作者头像 李华
网站建设 2026/7/11 16:49:41

利用Multisim访问用户数据库:自动化测试系统的设计与实现

让Multisim“活”起来:打通数据库的自动化测试系统实战你有没有经历过这样的场景?为了验证一个电源模块在不同负载下的输出稳定性,你需要手动修改电路图中的负载电阻,运行一次瞬态仿真,打开波形窗口,用光标…

作者头像 李华
网站建设 2026/7/10 9:38:33

LangFlow与数据库连接:MySQL、PostgreSQL直连操作

LangFlow与数据库连接:MySQL、PostgreSQL直连操作 在企业数据智能转型的浪潮中,一个现实难题日益凸显:业务人员掌握着关键问题,却无法直接访问数据库;而数据工程师忙于写SQL、改查询,难以快速响应层出不穷的…

作者头像 李华
网站建设 2026/7/11 11:34:06

LangFlow支持语音输入输出吗?多模态扩展可能性分析

LangFlow支持语音输入输出吗?多模态扩展可能性分析 在智能对话系统日益普及的今天,用户早已不再满足于“打字交流”。从车载助手到家庭机器人,语音交互正成为人机沟通的核心入口。而随着大语言模型(LLM)能力的爆发式增…

作者头像 李华
网站建设 2026/7/10 2:01:38

screen+与Framebuffer集成完整指南

屏幕背后的极简之道:用 screen 驱动 Framebuffer 的完整实践你有没有遇到过这样的场景?设备开机五秒后,屏幕才“慢悠悠”地亮起一个静态画面;或者多个进程同时往/dev/fb0写数据,结果界面花屏、文字重叠……在嵌入式开发…

作者头像 李华