news 2026/4/17 5:41:53

编写驱动设备函数的用法

作者头像

张小明

前端开发工程师

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/4/16 14:07:32

35、打印服务全解析:设置、故障排除与常见问题解答

打印服务全解析:设置、故障排除与常见问题解答 1. 打印通知设置 在设置打印通知时,可按以下步骤操作: - 打开“Set Notifications (Optional)”向导页面,有两种通知设置方式可供选择: - 邮件通知 :选中“Send Email Notification”复选框,输入一个或多个收件人和发…

作者头像 李华
网站建设 2026/4/16 19:53:18

LangFlow如何管理敏感信息?API密钥加密存储方案

LangFlow 如何安全处理 API 密钥?深入解析其敏感信息管理机制 在 AI 应用开发日益普及的今天,低代码平台正成为开发者快速构建智能工作流的核心工具。LangFlow 作为 LangChain 生态中最具代表性的可视化编排工具,凭借“拖拽即用”的交互体验&…

作者头像 李华
网站建设 2026/4/11 3:54:25

视频解说创作,从未如此简单

影视混剪工具演示还在为制作原创视频内容而苦恼吗?脚本写好了,素材也有了,却卡在了枯燥的后期处理上? 切片、合并、配音、混音… 每一个环节都像是技术壁垒,消耗着你本应用于创意构思的宝贵时间。 我们懂你。 所以&…

作者头像 李华
网站建设 2026/4/17 4:40:52

Multisim示波器使用在电路仿真中的核心要点

深入掌握Multisim示波器:从电路仿真到动态信号分析的实战指南你有没有遇到过这样的情况?在搭建一个放大电路时,理论计算明明没问题,但输出波形却严重失真;或者设计了一个滤波器,输入是1kHz正弦波&#xff0…

作者头像 李华
网站建设 2026/4/12 5:05:58

内核中延迟的工作delayed_work

对于周期性的任务,除了定时器以外,在Linux内核中还可以利用一套封装得很好的快捷机制,其本质是利用工作队列和定时器实现,这套快捷机制就是delayed_work. schedule_delayed_work的作用为在指定延时后将任务,放到工作队…

作者头像 李华