news 2026/7/30 18:46:48

编写驱动设备函数的用法

作者头像

张小明

前端开发工程师

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/30 9:24:58

10分钟搞定VMDE虚拟机检测工具:从零到精通实战指南

10分钟搞定VMDE虚拟机检测工具:从零到精通实战指南 【免费下载链接】VMDE Source from VMDE paper, adapted to 2015 项目地址: https://gitcode.com/gh_mirrors/vm/VMDE 还在担心你的系统是否运行在虚拟机环境中吗?VMDE虚拟机检测工具就是你的最…

作者头像 李华
网站建设 2026/7/30 9:21:08

LangFlow与社交媒体API集成:自动发布与监控评论

LangFlow与社交媒体API集成:自动发布与监控评论 在数字营销和品牌运营日益依赖实时互动的今天,企业对社交媒体内容的自动化管理需求正以前所未有的速度增长。想象这样一个场景:一款新产品刚刚上线,市场团队需要在多个平台同步发布…

作者头像 李华
网站建设 2026/7/31 12:20:42

LangFlow与股票行情接口结合:金融信息实时推送

LangFlow与股票行情接口结合:金融信息实时推送 在金融市场的快节奏环境中,信息就是优势。一个交易员是否能在股价异动的第一时间捕捉到信号,并迅速理解其背后可能的原因,往往决定了策略的成败。然而,传统的工作流中&am…

作者头像 李华
网站建设 2026/7/29 22:13:55

VirtualBox虚拟机运行卡顿问题

本机是华为笔记本前提:WIN11 24H2,关闭内核完整性,打开电脑虚拟化之后,发现虚拟机无法开启无法启用AMD-V或INTEL VT-X可能的原因是 Windows 11 24H2 的虚拟化功能(如 VBS)与某些 Virtualbox 版本冲突。打开…

作者头像 李华
网站建设 2026/7/31 2:27:09

AP0316语音模组深度解析:一站式解决降噪消回音,音频项目党必藏!

👉 做音频项目的兄弟集合!是不是总被这些问题卡壳:环境噪音盖过人声、麦克风和喇叭离太近全是回音、模拟/数字音频接口不兼容、调试半天还是出问题?今天给大家安利一款“音频全能王”——AP0316全功能降噪回音消除模组&#xff0c…

作者头像 李华
网站建设 2026/7/30 15:25:07

18、网络流量路由与过滤全解析

网络流量路由与过滤全解析 路由算法对比 在网络路由中,距离向量协议和链路状态算法是两种重要的路由算法。 距离向量协议存在一些缺点。它会导致路由表不断增大,因为它会周期性地向其他路由器通告自己的路由表,即使网络收敛后也是如此,这就增加了网络流量。而且,大型互联…

作者头像 李华