尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
BSP 调试#01:点亮 LED
调试前调试前需要大概了解下面几点知识1Linux系统在 Linux 系统中绝大多数硬件设备都拥有成熟的驱动框架驱动工程师基于这些框架开发适配特定硬件板卡的驱动程序从而建立硬件与 Linux 内核之间的通信桥梁内核则通过统一的文件系统接口将硬件功能抽象为设备文件最终用户只需通过操作对应的设备文件即可实现对底层硬件的控制。2驱动匹配规则将一个 LED 驱动跑起来首先要将 driver 与 device 成功配对而目前主流都的匹配规则是“dts 兼容属性匹配”匹配优先级最高。**匹配逻辑**比较 “设备的 compatible 属性” 与 “驱动的 of_match_table 表”若字符串完全一致则匹配。至于什么是 driver什么是 device这一块可以去了解 Linux 驱动的发展过程从一.c 文件一驱动到总线设备驱动模式再到设备树的引入那些大牛是真大牛我们只是站在这些巨人肩膀上的 Linux 使用者是的只是 Linux 用户。3点亮 LED 的两种方式第1种sysfs 方式控制 gpio第2种leds-gpio 驱动控制 LED。硬件设计LED 采用 PB7 引脚作为 GPIO 控制端低电平有效即输入低电平时点亮。软件配置驱动路径linux-5.15/drivers/leds/leds-gpio.cdts 配置leds: leds { compatible gpio-leds; status okay; work_led: led0 { gpios pio PB7 GPIO_ACTIVE_HIGH; linux,default-trigger heartbeat; }; };内核配置#打开GPIOS驱动 CONFIG_LEDS_GPIOy CONFIG_LEDS_TRIGGERSy CONFIG_NEW_LEDSy #打开触发器相关驱动 CONFIG_LEDS_TRIGGERSy CONFIG_LEDS_TRIGGER_TIMERy CONFIG_LEDS_TRIGGER_HEARTBEATy调试过程sysfs方式调试查看根文件系统是否有/sys/class/gpio目录没有的话需要在内核配置开启。开启内核配置CONFIG_GPIO_SYSFSy**【问题描述】**遇到 GPIO 引脚无法正常导出问题报错 log 看下面。**【问题分析】**该错误表明在尝试为GPIO pin PB7 分配到两个不同的设备导致冲突。具体来说错误信息中提到了 pin PB7 已经被设备7112000.i2s0_plat请求并且无法为 2000000.pinctrl 的第 39 个引脚再次请求。【问题解决】解决这个问题需要确认设备树或者其他配置文件确保每个 GPIO pin 只被一个设备所请求并且没有复用以避免引脚冲突。功能验证1驱动方式控制评估底板提供1个用户可编程指示灯(User)通过PB7引脚连接执行如下命令可控制LED亮灭。echo0/sys/class/leds/user-led0/brightness //控制LED亮echo1/sys/class/leds/user-led0/brightness //控制LED灭2sysfs方式控制计算公式PB7 1*32 7 39 控制LED步骤如下echo39/sys/class/gpio/export //导出echoout/sys/class/gpio/gpio39/direction //设置方向cat/sys/class/gpio/gpio39/direction //查看方向echo1/sys/class/gpio/gpio39/value //设置值cat/sys/class/gpio/gpio39/value //查看值echo39/sys/class/gpio/unexport //取消导出调试总结1查看 GPIO 使用情况cat/sys/kernel/debug/gpio2LED 触发器类型Linux 内核有触发器相关驱动用来控制 LED 的状态通常被用作系统信号灯用于判断系统是否处于正常工作状态。通过 cat trigger 可以查看所有可用触发器类型而当前使用的触发器类型会以[ ]符号括起。当前使用的触发器类型为 timer 类型。如没有以上的触发类型则可以通过 makeconfig 配置内核开启目标触发类型比如 Timer、Heartbeat 等触发类型。**进阶建议**可以自行深入阅读 gpio-led 驱动代码。完
RELATED

相关推荐

高级表单能力

高级表单能力

6.6 高级表单能力高级表单能力是面向复杂业务场景的表单扩展技术体系,覆盖富文本内容创作、动态字段配置、无障碍可访问性三个核心维度,解决基础表单无法满足的内容编辑、动态业务、普惠可访问等高阶需求,是工业级复杂表单的标准能力集合。6.…

📅 2026/10/10 2:49:19
AutoCAD多重插入块破解指南:组码分析与LISP转换实战

AutoCAD多重插入块破解指南:组码分析与LISP转换实战

简介:面向机械、建筑等行业的CAD设计师,这是一份关于多重插入引用图纸加密与解密的实用文档。资源为单个doc文件,体积仅18KB,轻巧易携带,已有453人学习下载。文档从多重插入引用的加密原理讲起,说明这种块结…

📅 2026/10/10 2:49:19
PMIC低功耗设计实战:PCA9422与STM32F205RB的电池供电电源管理

PMIC低功耗设计实战:PCA9422与STM32F205RB的电池供电电源管理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/10 2:49:19
MORE NEWS

更多资讯

📰

SpringBoot2+Vue3养老院管理系统源码解析与实战

如果你正在找一套能直接拿来改、能跑通、能写进简历或毕业设计的全栈管理系统源码,SpringBoot2 Vue3 MyBatis-Plus MySQL8.0 这套养老院管理系统,恰好就是典型的“前后端分离 权限管理 CRUD 业务闭环”的项目形态。这套组合这两年几乎是 Java Web 领…

📰

蚁剑初始化报错 [object Object] 排查与工作目录配置指南

1. 这个报错,十有八九是第一次初始化时撞上的先还原一下场景。你从网上下了蚁剑(AntSword)的源码包,解压之后双击启动,界面顺利出来了。这时它提示让选一个“工作目录”,你随手建了个文件夹指了过去&#x…

📰

FTTH装维服务规范:现场防翻车 checklist 与预测性维护

简介:本资源是中国电信官方发布的《FTTH装维服务规范》PPT课件,面向通信行业宽带装维工程师、新入职技术人员及服务管理岗位人员,系统解决FTTH入户安装与日常维护中的标准化执行问题。课件完整覆盖“出门前三准备”(电话预约、仪容…

📰

SpringBoot+Vue3+MyBatis+MySQL实战:从零搭建BS美食网站系统

“踩过的坑比别人写的代码还多”——这是我和这套BS美食网站系统源码打交道最真实的感受。前后端分离这件事,网上教程一抓一大把,但真正能把SpringBoot、Vue3、MyBatis、MySQL这四样东西揉成一个“能跑、能看、能改、能上线”的完整项目,尤其…

📰

TypeSafe AI 被死亡传闻真相:API 延迟与代码提交下降的排查指南

1. 一场“被死亡”引发的技术圈信任危机做AI应用开发的人,最近大概率在技术社区里刷到过类似“TypeSafe AI 是不是凉了”“官网打不开”“API 没响应”的帖子。我最早看到这些讨论是在一个开发者群组里,有人甩了张截图,说某个依赖 TypeSafe A…

📰

MLE 高级 Large-scale matrix operations GPU

结合公开 Systems ML / MLE / GPU-performance 面试经验和真实 AI Infra workload,我建议至少能回答下面这些:Why can sparse matrix multiplication be slower than dense GEMM?Explain COO vs CSR vs CSC and when you would use each.Why are GNN wo…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬