设备树下Led驱动实验-Led驱动加载测试

 一. 简介

本文对前面两篇文章实现的 Led驱动程序进行测试。

通过应用程序调用驱动程序,从而进行 Led灯的打开与关闭。

二.  Led驱动加载测试

1.  准备测试程序

将 前面实验中 3_newchrled工程中应用程序拷贝到 5_dtsled工程目录下。

进入 5_dtsled工程目录下进行拷贝:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/5_dtsled.c$ cp ../3_newchrled/led_app.c ./ -f

编译测试程序,即应用程序。操作如下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/5_dtsled.c$ arm-linux-gnueabihf-gcc led_app.c -o led_app

可以看出,应用程序也已经编译好。

2.  驱动测试

(1) 首先,拷贝程序。

将驱动程序与应用程序都拷贝到开发板的系统上。

注意:开发板的系统是通过 nfs服务挂载方式访问 ubuntu系统的。即 系统存放在 ubuntu系统所设置的 nfs目录下!

将驱动文件 dtsled.ko,拷贝到 开发板系统 /lib/modules/4.1.15/目录下,这里系统存放在 /home/wangtian/linux/nfs_File/ 目录下,命名是 rootfs:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/5_dtsled.c$ sudo cp dtsled.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f
[sudo] wangtian 的密码: 
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/5_dtsled.c$ 

拷贝应用程序到开发板的系统上:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/5_dtsled.c$ sudo cp led_app /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/ -f

(2) 其次,加载驱动模块

开发板上电后,进入系统 /lib/modules/4.1.15/目录下,确认驱动程序与应用程序是否已经存在:

/ # 
/ # cd /lib/modules/4.1.15/
/lib/modules/4.1.15 # ls -l
total 24
-rw-r--r--    1 0        0             7872 Jan 18  2024 dtsled.ko
-rwxr-xr-x    1 0        0            10588 Jan 18  2024 led_app
-rw-r--r--    1 0        0                0 Jan 17  2024 modules.alias
-rw-r--r--    1 0        0               21 Jan 17  2024 modules.dep
-rw-r--r--    1 0        0                0 Jan 17  2024 modules.symbols
/lib/modules/4.1.15 # 

上面可以看出,驱动与测试程序都已经拷贝到开发板上。

加载驱动模块

注意:这里因为该驱动程序测试过一次,所以,使用 modprobe 命令加载驱动模块时不需要运行 depmod命令。

输入 "modprobe dtsled.ko" 命令加载驱动程序:

确认驱动模块是否加载成功。

有两种方法:运行 "lsmod" 命令或运行 "cat /proc/devices" 命令进行查看。

执行 "lsmod" 命令确认驱动模块是否已加载:

确认是否自动创建Led相关的设备节点,进入 "/dev"目录下:

可以看出,在 /dev 目录下已经自动创建了设备节点 alpha_led。

(3) 最后,进行驱动程序的测试

进入开发板系统 /lib/modules/4.1.15/目录下,运行应用程序进行测试。

在 驱动模块入口函数中,继 Led灯的IO 初始化工作之后,是关闭了 Led灯,所以,默认情况下 Led灯是灭的。

运行应用程序,打开 Led灯,操作如下:

这时可以看开发板上 Led灯是否打开:

可以看出, 红色Led灯已经点亮。

现在运行应用程序,关闭Led灯:

这时可以查看开发板上的 Led灯是否关闭:

可以看出,红色的 Led灯已经灭。

测试完成,卸载驱动模块:

/lib/modules/4.1.15 # rmmod dtsled.ko 

注意:测试驱动模块时,可以进行多次的加载与卸载驱动模块的操作,这样可以防止程序可能存在问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uncaught referenceError:cannot access ‘xxxStore‘ before initialization

目录 一、问题 二、解决方法 三、总结 tiips:如嫌繁琐,直接移步总结即可! 一、问题 1.写代码的时候引入store,居然报错:store没有初始化就被使用了,连页面都打不开了。 1)错误如下,详细错误如下图1-1所…

瑞_Java开发手册_(六)工程结构

文章目录 工程结构的意义(一) 应用分层(二) 二方库依赖(三) 服务器 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的工程结构篇,主要介绍应用分层、二方库依赖、服务器。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c…

[LitCTF 2023] Web类题目分享

[LitCTF 2023] Web类题目做法及思路解析(个人分享) 题目平台地址:NSSCTF | 在线CTF平台 一、[LitCTF 2023]我Flag呢? 奇怪,放哪里了,怎么看不见呢?(初级难度) 1.访问…

基于Harris角点的多视角图像全景拼接算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Harris角点检测 4.2 图像配准 4.3 图像变换和拼接 4.4 全景图像优化 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 function [ImageB…

C++--默认参数

一.默认参数🍗 C中允许函数提供默认参数,也就是允许在函数的声明或定义时给⼀个或多个参数指定默认值。在调 ⽤具有默认参数的函数时,如果没有提供实际参数,C将⾃动把默认参数作为相应参数的值。 二.使用规则🍗 1.如果…

Linux ->windows自由复制文件文本

Linux ->windows自由复制文件文本 文章目录 Linux ->windows自由复制文件文本1.更新2.下载软件3.修改配置文件4.创建文件夹tftpboot修改权限为6665.重启服务 1.更新 sudo apt-get update2.下载软件 suod apt-get install tftp-hpa tftpd-hpa3.修改配置文件 sudo vim /et…

ChatGPT 股市知识问答

我 2024-01-17 14:16:38 股市交易的关键指标有哪些? ChatGPT 2024-01-17 14:16:38 股市交易中常用的关键指标有很多,以下是一些常见的指标: 股价指标:股价是衡量股票价格变化的重要指标,包括每股收益(EPS…

Spring Boot 配置文件和日志

目录 配置文件格式 properties配置文件说明 1.properties基本语法 2.读取配置文件 3.properties缺点 yml配置文件说明 1.yml基本语法 2.配置不同数据类型 3.字符串特殊情况 4.配置对象 properties和yml对比 日志 日志的使用 日志级别 日志持久化 Lombok Lombo…

【MIdjourney】一些材质相关的关键词

1.多维剪纸(Multidimensional papercut) "Multidimensional papercut"(多维剪纸)是一种剪纸艺术形式,通过多层次的剪纸技巧和设计来创造出立体感和深度感。这种艺术形式通常涉及在不同的纸层上剪裁不同的图案,并将它们…

蓝桥杯真题(Python)每日练Day1

说明:在CSP认证的基础上(可以看看本人CSP打卡系列的博客)备赛2024蓝桥杯(Python),本人专业:大数据与数据科学 因此对python要求熟练掌握,通过练习蓝桥杯既能熟悉语法又能锻炼算法和思…

Vue表单输入密码实现密码格式和强度验证提示框-demo

实现效果 实现过程 校验 //密码格式校验 const validateUppercase (rule, value, callback) > {if (!/[A-Z]/.test(value)) {callback(new Error(密码必须包含至少一个大写字母));} else {callback();} }; const validateNumber (rule, value, callback) > {if (!/\d…

【论文简介】个性化真实人像生成方法(2024.01.15发布,即将开源)

零样本身份保留生成方法:声称效果好于PhotoMaker(即将开源) 2401.InstantID: Zero-shot Identity-Preserving Generation in Seconds : 项目主页:https://instantid.github.io/ 一、简介 本文的主要内容是介绍了一种…

代码训练营第36天|● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

文档讲解:代码随想录 (programmercarl.com) 视频讲解:代码随想录的个人空间-代码随想录个人主页-哔哩哔哩视频 (bilibili.com) LeetCode 435. 无重叠区间 题目链接:435. 无重叠区间 - 力扣(LeetCode) 代码如下&#…

【驱动】I2C驱动分析(二)-驱动框架

I2C驱动框架简介 I2C 驱动属于总线-设备-驱动模型的,与I2C总线设备驱动模型相比,大体框架是一样,系统的整体框架如下所示。 最上层是应用层,在应用层用户可以直接用open read write对设备进行操作,往下是设备驱动层&a…

多线程编程——线程的属性

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 如果只是学习简单的多线程编程,本文内容可以暂时忽略。在利用pthread_create() 函数创建线程时,第二个参数设置为NULL即可。 一、引入 通过阅读前面章节&…

Jenkins的环境部署,(打包、发布、部署、自动化测试)

一、Tomcat环境安装 1.安装JDK(Java环境) JDK下载地址:Java Downloads | Oracle 安装好后在系统环境变量里配置环境变量: ①添加JAVA_HOME 变量名:JAVA_HOME变量值:C:\Program Files\Java\jdk1.8.0_18…

前端开发 2: CSS

在前端开发中,CSS(层叠样式表)是一种用于描述网页样式的语言。它控制着网页的布局、颜色、字体等外观效果。在本篇博客中,我将为你介绍 CSS 的基础知识和常用技巧,帮助你更好地掌握前端开发中的样式设计。 CSS 基础知…

CSS笔记II

CSS第二天笔记 复合选择器后代选择器子选择器并集选择器交集选择器伪类选择器 三大特性继承性层叠性优先级优先级-叠加计算规则 Emmet写法 背景属性背景图平铺方式位置缩放固定复合属性 显示模式转换显示模式 复合选择器 定义:由两个或多个基础选择器,通…

长虹智能电视C1100i、C1080i系列、3D51V50等 ZPM41AiJ机芯 刷机方法,及刷机数据

适用机芯:ZPM41AiJ 适用型号: 3D51C1100i、3D51C1080i、3D51V50 刷机方法: 1、将文件下载到电脑,解压后有3个文件,3个文件放到U盘的根目录。U盘必须使用FAT32格式; 2、将U盘接入电视的USB接口&#…

LeetCode19:删除链表的倒数第N个结点

力扣题目链接 思路:由于本题有可能删除头结点,为保证删除头结点和其他结点的操作一致,因此首先创建一个虚拟头结点dummy。 其次,本题需要删除倒数第N个结点,由于单链表只有next指针,因此需要找到倒数第N1…