当前位置: 首页 > news >正文

编写驱动设备函数的用法

从终端输出和文件信息来看,已经编译成功了(生成了 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
http://www.cnnetsun.cn/news/192960.html

相关文章:

  • 10分钟搞定VMDE虚拟机检测工具:从零到精通实战指南
  • LangFlow与社交媒体API集成:自动发布与监控评论
  • LangFlow与股票行情接口结合:金融信息实时推送
  • VirtualBox虚拟机运行卡顿问题
  • AP0316语音模组深度解析:一站式解决降噪消回音,音频项目党必藏!
  • 18、网络流量路由与过滤全解析
  • unity中利用MRTK添加全息面板并部署到HoloLens 2中
  • 小白指南:认识二极管伏安特性曲线的起始导通点
  • 新手必看:UDS NRC基础概念通俗解释
  • 52、优化和管理软件部署策略:全面指南
  • 55、Windows Server 2003 技术详解与操作指南
  • ubuntu22.04 更新了最新版本chrome插件提示无法使用
  • 告别写代码!LangFlow让你像搭积木一样开发大模型应用
  • 42、软件部署与远程安装服务指南
  • LangFlow Ackee自托管基础统计
  • 基于usb_burning_tool的产线刷机操作指南
  • LangFlow Treo APMP性能监控
  • ModbusTCP报文解析安全风险与防护建议
  • ESP32-CAM如何连接手机APP?一文说清通信机制(Arduino)
  • LangFlow Plausible轻量级隐私友好分析
  • LangFlow DebugBear网页性能测试
  • LangFlow Airbrake快速定位代码缺陷
  • 掌握大数据领域 Hive 的动态分区技术
  • 差模电感的作用与滤波性能深度剖析
  • LangFlow vRealize Operations VMware环境优化
  • 户外泳池漆用什么材料好?资深分析师拆解水池蓝耐水抗氯耐候性能
  • 学生上机常见问题:Multisim主数据库无法打开的系统学习
  • Unity3D中实现实时数字孪生的操作指南
  • Wine 中 GDI 绘制的实现原理分析与架构解读
  • 吉因加冲刺港股:上半年营收2.9亿亏4亿 华大基因与爱尔医疗是股东