编写驱动程序,测试确认流程

2024-08-23 20:12

本文主要是介绍编写驱动程序,测试确认流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编写一个驱动程序,测试需要确认的流程,根据需求查看卡在那个步骤。
在Ubuntu系统中,编写驱动程序,权限控制要比rootfs最小根文件系统要严一点,需要逐步确认一下,否则没有权限不能运行成功。
当驱动程序编译完成后,首先需要查看驱动程序的权限

user@phytium-Ubuntu:~/workspace/gpio$ ls -l
total 292
-rwxrwxr-x 1 user user  13784 Aug 22 08:43 led_test
-rw-rw-r-- 1 user user 281640 Aug 22 08:44 leddrv.ko
user@phytium-Ubuntu:~/workspace/gpio$

使用sudo权限加载驱动程序。

user@phytium-Ubuntu:~/workspace/gpio$ sudo insmod leddrv.ko
[sudo] password for user:

加载成功,可以通过lsmod查看当前系统加载的模块。

user@phytium-Ubuntu:~/workspace/gpio$ lsmod
Module                  Size  Used by
leddrv                 16384  0
ds18b20                16384  0
crct10dif_ce           20480  1

可以通过dmesg 查看内核打印信息,了解驱动是否加载成功。

user@phytium-Ubuntu:~/workspace/gpio$ dmesg
[ 2564.876331] The drive info of led:major: 237minor: 0
[ 2564.876473] auto mknod success!
[ 2564.876476] led init success!user@phytium-Ubuntu:~/workspace/gpio$ ls /dev/led -l
crw------- 1 root root 237, 0 Aug 22 08:45 /dev/led

在做驱动测试之前,修改驱动的权限
属组权限

user@phytium-Ubuntu:~/workspace/gpio$ sudo chown user /dev/led
user@phytium-Ubuntu:~/workspace/gpio$

设备读写权限

user@phytium-Ubuntu:~/workspace/gpio$ sudo chmod 666 /dev/led
user@phytium-Ubuntu:~/workspace/gpio$ ls /dev/led -l
crw-rw-rw- 1 user root 237, 0 Aug 22 08:45 /dev/led
user@phytium-Ubuntu:~/workspace/gpio$

启动应用程序,测试是否能够正确打开驱动。

user@phytium-Ubuntu:~/workspace/gpio$ ./led_test /dev/led
can open /dev/led
user@phytium-Ubuntu:~/workspace/gpio$

也可以直接在Ubuntu arm64位系统上编写驱动程序:
Makefile声明内核的路径如下,声明后直接make,就可以在arm64上编译驱动程序。

user@phytium-Ubuntu:~/workspace/gpio$ cat Makefile
#export ARCH=arm64
#export CROSS_COMPILE=aarch64-none-linux-gnu-
##KERN_DIR = /home/hudahua/workspace/D2000/phytium-linux-buildroot/output/build/linux-custom
KERN_DIR = /usr/src/linux-headers-5.10.209-phytium-embedded-v2.1all:make -C $(KERN_DIR) M=`pwd` modulesclean:make -C $(KERN_DIR) M=`pwd` modules cleanrm -rf modules.orderobj-m   += leddrv.o
user@phytium-Ubuntu:~/workspace/gpio$

这篇关于编写驱动程序,测试确认流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1100387

相关文章

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应