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

MX6ULL学习笔记(十二)Linux 自带的 LED 灯

  前言

         前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动,Linux 内 核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备 树文件中添加相应的 LED 节点即可,本章我们就来学习如何使用 Linux 内核自带的 LED 驱动。


一、Linux 内核自带 LED 驱动使能。

要使用 Linux 内核自带的 LED 灯驱动首先得先配置 Linux 内核,使能自带的 LED 灯驱 动,输入如下命令打开 Linux 配置菜单:

make menuconfig 

按照如下路径打开 LED 驱动配置项:  

按照上述路径,选择“LED Support for GPIO connected LEDs”,将其编译进 Linux 内核,也 即是在此选项上按下“Y”键,使此选项前面变为“”,如图

 

 重新编译 Linux 内核,然后使用新编译出来的 zImage 镜像启动开发板。

二、设备树节点编写

        打开文档 Documentation/devicetree/bindings/leds/leds-gpio.txt,此文档详细的讲解了 Linux 自 带驱动对应的设备树节点该如何编写,我们在编写设备节点的时候要注意以下几点:

①、创建一个节点表示 LED 灯设备,比如 dtsleds,如果板子上有多个 LED 灯的话每个 LED灯都作为 dtsleds 的子节点。

②、dtsleds 节点的 compatible 属性值一定要为“gpio-leds”。

③、设置 label 属性,此属性为可选,每个子节点都有一个 label 属性,label 属性一般表示

LED 灯的名字,比如以颜色区分的话就是 red、green 等等。

④、每个子节点必须要设置 gpios 属性值,表示此 LED 所使用的 GPIO 引脚!

⑤、可以设置“linux,default-trigger”属性值,也就是设置 LED 灯的默认功能,可以查阅

Documentation/devicetree/bindings/leds/common.txt 这个文档来查看可选功能,比如:

backlight:LED 灯作为背光。

default-on:LED 灯打开

heartbeat:LED 灯作为心跳指示灯,可以作为系统运行提示灯。

ide-disk:LED 灯作为硬盘活动指示灯。

timer:LED 灯周期性闪烁,由定时器驱动,闪烁频率可以修改

⑥、可以设置“default-state”属性值,可以设置为 on、off 或 keep,为 on 的时候 LED 灯默 认打开,为 off 的话 LED 灯默认关闭,为 keep 的话 LED 灯保持当前模式。

根据上述几条要求在设备树中添加如下所示 LED 灯设备节点:

dtsleds { compatible = "gpio-leds"; led0 { label = "red"; gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; default-state = "on"; }; }; 

修改完成以后保存并重新编译设备树,然后用新的设备树 启动开发板。

三、运行测试

        用 新 的 zImage 和 新的设备树启动开发板 ,启动以后查 看/sys/bus/platform/devices/dtsleds 这个目录是否存在,如果存在的话就如到此目录中,如图 所示:

进入到 leds 目录中,此目录中的内容如图所示:

        我们的设置究竟有没有用,最终是要通过测试才能知道的,首先查看一下系统中有没有 “sys/class/leds/red/brightness”这个文件,如果有的话就输入如下命令打开 RED 这个 LED 灯:

echo 1 > /sys/class/leds/red/brightness //打开 LED0

关闭 RED 这个 LED 灯的命令如下:

echo 0 > /sys/class/leds/red/brightness //关闭 LED0

 在之前的设备树节点下加一句

linux,default-trigger = "heartbeat";

这样开机就会进入心跳灯模式。

相关文章:

MX6ULL学习笔记(十二)Linux 自带的 LED 灯

前言 前面我们都是自己编写 LED 灯驱动&#xff0c;其实像 LED 灯这样非常基础的设备驱动&#xff0c;Linux 内 核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架&#xff0c;因此我们只需要按照要求在设备 树文件中添加相应的 LED 节点即可&#xff0c;本章我们就来学…...

Qt容器QToolBox工具箱

# QToolBox QToolBox是Qt框架中的一个窗口容器类,常用的几个函数有: ​setCurrentIndex(int index):设置当前显示的页面索引。可以通过调用该函数,将指定索引的页面设置为当前显示的页面。 addItem(QWidget * widget, const QString & text):向QToolBox中添加一个页面…...

华为实训课笔记

华为实训 12/1312/14 12/13 ping 基于ICMP协议&#xff0c;用来进行可达性测试 ping 目的IP地址/设备域名&#xff08;主机名&#xff09; 如果能收到 reply 回复&#xff0c;则表示双方可以正常通信 <Huawei> 用户视图&#xff0c;只能做查询和一些简单的资源调用&…...

基于java 的经济开发区管理系统设计与实现(源码+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于java 的经济开发区管…...

外包干了3个月,技术退步明显。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…...

详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第一节

关于使用Vue开发鸿蒙应用的教程,我这篇之前的博客还不够完整和详细。那么这次我会尝试写一个更加完整和逐步的指南,从环境准备,到目录结构,再到关键代码讲解,以及调试和发布等,希望可以让大家详实地掌握这个过程。 一、准备工作 下载安装 DevEco Studio 下载地址&#xff1a;…...

R语言对医学中的自然语言(NLP)进行机器学习处理(1)

什么是自然语言(NLP)&#xff0c;就是网络中的一些书面文本。对于医疗方面&#xff0c;例如医疗记录、病人反馈、医生业绩评估和社交媒体评论,可以成为帮助临床决策和提高质量的丰富数据来源。如互联网上有基于文本的数据(例如,对医疗保健提供者的社交媒体评论),这些数据我们可…...

什么是CI/CD?如何在PHP项目中实施CI/CD?

CI/CD&#xff08;持续集成/持续交付或持续部署&#xff09;是一种软件开发和交付方法&#xff0c;它旨在通过自动化和持续集成来提高开发速度和交付质量。以下是CI/CD的基本概念和如何在PHP项目中实施它的一般步骤&#xff1a; 持续集成&#xff08;Continuous Integration -…...

玩转Docker(四):容器指令、生命周期、资源限制、容器化支持、常用命令

文章目录 一、容器指令1.运行2.启动/停止/重启3.暂停/恢复4.删除 二、生命周期三、资源限制1.内存限额2.CPU限额3.磁盘读写带宽限额 四、cgroup和namespace五、常用命令 一、容器指令 1.运行 按用途容器大致可分为两类&#xff1a;服务类容器和工具类的容器。 服务类容器&am…...

回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 (多指标,多图)

回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 &#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 &#xff08;多指标&#xff0c;多图&#xff09;效果…...

Qt/C++视频监控安卓版/多通道显示视频画面/录像存储/视频播放安卓版/ffmpeg安卓

一、前言 随着监控行业的发展&#xff0c;越来越多的用户场景是需要在手机上查看监控&#xff0c;而之前主要的监控系统都是在PC端&#xff0c;毕竟PC端屏幕大&#xff0c;能够看到的画面多&#xff0c;解码性能也强劲。早期的手机估计性能弱鸡&#xff0c;而现在的手机性能不…...

【docker】容器使用(Nginx 示例)

查看 Docker 客户端命令选项 docker上面这三张图都是 常用命令&#xff1a; run 从映像创建并运行新容器exec 在运行的容器中执行命令ps 列出容器build 从Dockerfile构建映像pull 从注册表下载图像push 将图像上载到注册表…...

【QT】时间日期与定时器

目录 1.时间日期相关的类 2.日期时间数据与字符串之间的转换 2.1 时间、日期编辑器属性设置 2.2 日期时间数据的获取与转换为字符串 2.3 字符串转换为日期时间 3.QCaIendarWidget日历组件 3.1基本属性 3.2 公共函数 3.3 信号 4.实例程序演示时间日期与定时器的使用 …...

蓝桥杯专题-真题版含答案-【古代赌局】【古堡算式】【微生物增殖】【密码发生器】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…...

和鲸科技携手深圳数据交易所,“数据+数据开发者生态”赋能人工智能产业发展

信息化时代&#xff0c;数据驱动决策的重要性日益凸显。通过利用数据可以深入了解市场需求、客户行为、竞争态势等关键信息&#xff0c;从而制定更为有效的战略和决策。围绕推动数据要素产业发展&#xff0c;近日&#xff0c;深圳数据交易所&#xff08;以下简称“深数所”&…...

在MFC(Microsoft Foundation Classes)中 CreateThread函数

CreateThread是Windows API中用于创建新线程的函数。以下是对函数参数的详细解释&#xff1a; lpThreadAttributes&#xff08;可选&#xff09;&#xff1a;指向SECURITY_ATTRIBUTES结构的指针&#xff0c;用于指定线程的安全性。可以设置为NULL&#xff0c;表示使用默认安全…...

Ubuntu 常用命令之 ls 命令用法介绍

Ubuntu ls 命令用法介绍 ls是Linux系统下的一个基本命令&#xff0c;用于列出目录中的文件和子目录。它有许多选项可以用来改变列出的内容和格式。 以下是一些基本的ls命令选项 -l&#xff1a;以长格式列出文件&#xff0c;包括文件类型、权限、链接数、所有者、组、大小、最…...

【解决】Windows 11检测提示电脑不支持 TPM 2.0(注意从DTPM改为PTT)

win11升级&#xff0c;tpm不兼容 写在最前面1. 打开电脑健康状况检查2. 开启tpm3. 微星主板AMD平台开启TPM2.0解决电脑健康状况检查显示可以安装win11&#xff0c;但是系统更新里显示无法更新 写在最前面 我想在台式电脑上用win11的专注模式&#xff0c;但win10不支持 1. 打…...

ChatGPT 也宕机了?如何预防 DDOS 攻击的发生

最近&#xff0c;开发人工智能聊天机器人的公司 OpenAI 遭受了一次规模较大的分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;导致其旗下的 ChatGPT 服务在短短 12 小时内遭遇了 4 次断网&#xff0c;众多用户遭受了连接失败的问题。 这次攻击事件引起了广泛的关…...

wireshark下载安装

下载 Wireshark Download 等待下载完成 安装 双击 下面的一定垚勾选上 下图的也一定要勾选上 修改为不重启&#xff0c;不需要重启也是正常的...

渗透测试之信息收集:这些技巧决定了渗透成败

渗透测试之信息收集&#xff1a;这些技巧决定了渗透成败作者&#xff1a;浅木先生前言 做渗透测试久了&#xff0c;你会越来越认同一个观点&#xff1a;信息收集的质量直接决定渗透测试的成败。 同样的目标URL&#xff0c;不同人扫出来的结果完全不同——有人只能扫出后台登录页…...

R3nzSkin英雄联盟皮肤修改器:终极免费皮肤体验完整指南

R3nzSkin英雄联盟皮肤修改器&#xff1a;终极免费皮肤体验完整指南 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款专为《英雄联盟》玩家设计的开源内存修改工具&#xff0…...

Midjourney提示词工程终极护城河:基于CLIP文本嵌入空间的向量对齐技术(附Python可视化调试工具)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney提示词工程终极护城河&#xff1a;基于CLIP文本嵌入空间的向量对齐技术&#xff08;附Python可视化调试工具&#xff09; 在生成式AI实践中&#xff0c;提示词质量差异常导致图像语义漂移——…...

用手机遥控电脑演讲:开源项目Presentation-Control部署与实战指南

1. 项目概述与核心价值最近在准备一个重要的线上技术分享&#xff0c;过程中遇到了一个几乎所有演讲者都会头疼的问题&#xff1a;如何优雅地控制幻灯片播放&#xff0c;同时又能自如地操作电脑上的其他演示工具&#xff0c;比如代码编辑器、终端或者在线Demo&#xff1f;传统的…...

Linux内核安全钩子(Hook)深度探秘:以一次文件打开操作为例

Linux内核安全钩子&#xff08;Hook&#xff09;深度探秘&#xff1a;以一次文件打开操作为例 当我们在终端输入cat /etc/shadow时&#xff0c;系统背后究竟发生了什么&#xff1f;这个看似简单的操作&#xff0c;实际上触发了一系列精妙的安全检查机制。本文将带您深入Linux内…...

WordPress全栈性能优化实战:从服务器到前端的加速指南

1. 项目概述与核心价值最近在折腾一个WordPress站点&#xff0c;发现随着内容增多、插件堆叠&#xff0c;前台加载速度越来越慢&#xff0c;尤其是TTFB&#xff08;首字节时间&#xff09;和LCP&#xff08;最大内容绘制&#xff09;指标&#xff0c;简直让人抓狂。相信很多站长…...

Android 14+ Gemini深度整合设置手册(2024官方未公开的12项关键开关)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Android 14 Gemini深度整合的底层架构概览 Android 14 引入了面向 AI 原生体验的系统级重构&#xff0c;其中 Gemini 模型不再以独立 APK 或云端 API 形式存在&#xff0c;而是通过 Project Starline 框…...

从SolarWinds事件看供应链攻击与网络防御责任重构

1. 从SolarWinds事件看现代网络防御的“责任困境”2020年底曝光的SolarWinds供应链攻击&#xff0c;无疑给全球网络安全界投下了一颗震撼弹。攻击者通过入侵IT监控软件巨头SolarWinds的软件构建系统&#xff0c;在其Orion平台软件更新包中植入后门&#xff0c;导致全球超过1800…...

BLAST实战指南:从算法原理到精准搜索

1. BLAST算法基础&#xff1a;从序列比对的本质说起 第一次接触BLAST时&#xff0c;我被它惊人的搜索速度震撼到了。要知道在1990年之前&#xff0c;研究人员比对两条蛋白质序列需要数小时&#xff0c;而BLAST能在几秒钟内完成数据库搜索。这背后的魔法&#xff0c;其实源自几个…...

3分钟让你的Windows桌面焕然一新:NoFences开源分区神器

3分钟让你的Windows桌面焕然一新&#xff1a;NoFences开源分区神器 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否每天都要在杂乱无章的桌面图标中寻找需要的文件&…...