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

GNU/Linux - U-BOOT的GPIO command

在嵌入式Linux开发中,先运行的是u-boot,然后再加载Linux内核。

启动时如果设置了u-boot等待时间,在等待时间内,按任意键就会进入u-boot命令行环境。

在u-boot命令行环境下,可以使用gpio命令来操作GPIO。

Synopsis

gpio <input|set|clear|toggle> <pin>

gpio read <name> <pin>

gpio status [-a] [<bank>|<pin>]

gpio 命令用于访问通用输入/输出。

The gpio command is used to access General Purpose Inputs/Outputs.

gpio input

将 GPIO 引脚切换为输入模式。

Switch the GPIO pin to input mode.

gpio set

将 GPIO 引脚切换至输出模式,并将信号设置为 1。

Switch the GPIO pin to output mode and set the signal to 1.

gpio clear

将 GPIO 引脚切换至输出模式,并将信号设置为 0。

Switch the GPIO pin to output mode and set the signal to 0.

gpio toggle

将 GPIO 引脚切换至输出模式,并反转信号状态。

Switch the GPIO pin to output mode and reverse the signal state.

gpio read

读取 GPIO 引脚的信号状态,并将其保存在环境变量名称中。

Read the signal state of the GPIO pin and save it in environment variable name.

gpio status

显示一个或多个 GPIO 的状态。默认情况下,只显示声称的 GPIO。 gpio status 命令的输出字段有:

Display the status of one or multiple GPIOs. By default only claimed GPIOs are displayed. gpio status command output fields are:

<name>: <function>: <value> [x] <label>

函数可以取以下值:

function can take the following values:

  • output

pin configured in gpio output, value indicates the pin’s level

  • input

pin configured in gpio input, value indicates the pin’s level

  • func

pin configured in alternate function, followed by label which shows pinmuxing label.

  • unused

pin not configured

[x] or [ ] indicate respectively if the gpio is used or not.

label shows the gpio label.

Parameters

  • -a

Display GPIOs irrespective of being claimed. 显示 GPIO,无论其是否被申领。

  • bank

Name of a bank of GPIOs to be displayed. 显示 GPIO 组的名称。

  • pin

Name of a single GPIO to be displayed or manipulated.要显示或操作的单个 GPIO 的名称。

Examples

Switch the status of a GPIO:

=> gpio set a5

gpio: pin a5 (gpio 133) value is 1

=> gpio clear a5

gpio: pin a5 (gpio 133) value is 0

=> gpio toggle a5

gpio: pin a5 (gpio 133) value is 1

=> gpio read myvar a5

gpio: pin a5 (gpio 133) value is 1

=> echo $myvar

1

=> gpio toggle a5

gpio: pin a5 (gpio 133) value is 0

=> gpio read myvar a5

gpio: pin a5 (gpio 133) value is 0

=> echo $myvar

0

Show the GPIO status:

=> gpio status

Bank GPIOA:

GPIOA1: func rgmii-0

GPIOA2: func rgmii-0

GPIOA7: func rgmii-0

GPIOA10: output: 0 [x] hdmi-transmitter@39.reset-gpios

GPIOA13: output: 1 [x] red.gpios

Bank GPIOB:

GPIOB0: func rgmii-0

GPIOB1: func rgmii-0

GPIOB2: func uart4-0

GPIOB7: input: 0 [x] mmc@58005000.cd-gpios

GPIOB11: func rgmii-0

Configuration

gpio 命令只有在 CONFIG_CMD_GPIO=y 时可用。gpio 读取命令只有在 CONFIG_CMD_GPIO_READ=y 时可用。

The gpio command is only available if CONFIG_CMD_GPIO=y. The gpio read command is only available if CONFIG_CMD_GPIO_READ=y.

Return value

如果命令成功执行,返回值 $? 设置为 0;如果命令出错,返回值 $? 设置为 1。

If the command succeds the return value $? is set to 0. If an error occurs, the return value $? is set to 1.


我的u-boot版本和构建信息:

u-boot=> help

...

version   - print monitor, compiler and linker version

...

u-boot=> version

U-Boot 2023.04-lf_v2023.04+g49b102d988 (Nov 21 2023 - 07:28:53 +0000)

aarch64-poky-linux-gcc (GCC) 12.3.0

GNU ld (GNU Binutils) 2.40.0.20230703

u-boot=> gpio status -a

Bank GPIO2_:

GPIO2_0: input: 1 [ ]

GPIO2_1: output: 0 [ ]

GPIO2_2: input: 0 [ ]

GPIO2_3: input: 0 [ ]

GPIO2_4: input: 0 [ ]

GPIO2_5: input: 0 [ ]

GPIO2_6: input: 0 [ ]

GPIO2_7: input: 0 [ ]

GPIO2_8: input: 0 [ ]

GPIO2_9: input: 0 [ ]

GPIO2_10: input: 0 [ ]

GPIO2_11: output: 0 [ ]

GPIO2_12: input: 0 [ ]

GPIO2_13: input: 1 [ ]

GPIO2_14: input: 0 [ ]

GPIO2_15: input: 0 [ ]

GPIO2_16: input: 0 [ ]

GPIO2_17: input: 0 [ ]

GPIO2_18: input: 0 [ ]

GPIO2_19: input: 0 [ ]

GPIO2_20: input: 0 [ ]

GPIO2_21: input: 0 [ ]

GPIO2_22: input: 1 [ ]

GPIO2_23: input: 0 [ ]

GPIO2_24: input: 0 [ ]

GPIO2_25: input: 0 [ ]

GPIO2_26: input: 0 [ ]

GPIO2_27: input: 0 [ ]

GPIO2_28: input: 1 [ ]

GPIO2_29: input: 0 [ ]

GPIO2_30: input: 0 [ ]

GPIO2_31: input: 0 [ ]

Bank GPIO3_:

GPIO3_0: input: 1 [x] mmc@42860000.cd-gpios

GPIO3_1: input: 0 [ ]

GPIO3_2: input: 0 [ ]

GPIO3_3: input: 0 [ ]

GPIO3_4: input: 0 [ ]

GPIO3_5: input: 0 [ ]

GPIO3_6: input: 0 [ ]

GPIO3_7: input: 0 [ ]

GPIO3_8: input: 0 [ ]

GPIO3_9: input: 0 [ ]

GPIO3_10: input: 0 [ ]

GPIO3_11: input: 0 [ ]

GPIO3_12: input: 0 [ ]

GPIO3_13: input: 0 [ ]

GPIO3_14: input: 0 [ ]

GPIO3_15: input: 0 [ ]

GPIO3_16: input: 0 [ ]

GPIO3_17: input: 0 [ ]

GPIO3_18: input: 0 [ ]

GPIO3_19: input: 0 [ ]

GPIO3_20: input: 0 [ ]

GPIO3_21: input: 0 [ ]

GPIO3_22: input: 0 [ ]

GPIO3_23: input: 0 [ ]

GPIO3_24: input: 0 [ ]

GPIO3_25: input: 0 [ ]

GPIO3_26: input: 0 [ ]

GPIO3_27: input: 0 [ ]

GPIO3_28: input: 0 [ ]

GPIO3_29: input: 0 [ ]

GPIO3_30: input: 0 [ ]

GPIO3_31: input: 0 [ ]

Bank GPIO4_:

GPIO4_0: input: 0 [ ]

GPIO4_1: input: 0 [ ]

GPIO4_2: input: 0 [ ]

GPIO4_3: input: 0 [ ]

GPIO4_4: input: 0 [ ]

GPIO4_5: input: 0 [ ]

GPIO4_6: input: 0 [ ]

GPIO4_7: input: 0 [ ]

GPIO4_8: input: 0 [ ]

GPIO4_9: input: 0 [ ]

GPIO4_10: input: 0 [ ]

GPIO4_11: input: 0 [ ]

GPIO4_12: input: 0 [ ]

GPIO4_13: input: 0 [ ]

GPIO4_14: input: 0 [ ]

GPIO4_15: input: 0 [ ]

GPIO4_16: input: 0 [ ]

GPIO4_17: input: 1 [ ]

GPIO4_18: input: 0 [ ]

GPIO4_19: input: 0 [ ]

GPIO4_20: input: 0 [ ]

GPIO4_21: input: 0 [ ]

GPIO4_22: input: 0 [ ]

GPIO4_23: input: 0 [ ]

GPIO4_24: input: 1 [ ]

GPIO4_25: input: 0 [ ]

GPIO4_26: input: 0 [ ]

GPIO4_27: input: 0 [ ]

GPIO4_28: input: 0 [ ]

GPIO4_29: input: 0 [ ]

GPIO4_30: input: 0 [ ]

GPIO4_31: input: 0 [ ]

Bank GPIO1_:

GPIO1_0: input: 1 [ ]

GPIO1_1: input: 1 [ ]

GPIO1_2: input: 0 [ ]

GPIO1_3: input: 0 [ ]

GPIO1_4: input: 0 [ ]

GPIO1_5: input: 0 [ ]

GPIO1_6: input: 0 [ ]

GPIO1_7: input: 1 [ ]

GPIO1_8: input: 0 [ ]

GPIO1_9: input: 0 [ ]

GPIO1_10: input: 0 [ ]

GPIO1_11: input: 0 [ ]

GPIO1_12: input: 0 [ ]

GPIO1_13: input: 0 [ ]

GPIO1_14: input: 0 [ ]

GPIO1_15: input: 0 [ ]

GPIO1_16: input: 0 [ ]

GPIO1_17: input: 0 [ ]

GPIO1_18: input: 0 [ ]

GPIO1_19: input: 0 [ ]

GPIO1_20: input: 0 [ ]

GPIO1_21: input: 0 [ ]

GPIO1_22: input: 0 [ ]

GPIO1_23: input: 0 [ ]

GPIO1_24: input: 0 [ ]

GPIO1_25: input: 0 [ ]

GPIO1_26: input: 0 [ ]

GPIO1_27: input: 0 [ ]

GPIO1_28: input: 0 [ ]

GPIO1_29: input: 0 [ ]

GPIO1_30: input: 0 [ ]

GPIO1_31: input: 0 [ ]

GPIO bank和pin name可以参照status的结果,然后运行gpio命令:

u-boot=> gpio status GPIO3_

Bank GPIO3_:

GPIO3_0: input: 1 [x] mmc@42860000.cd-gpios

u-boot=> gpio status GPIO3_0

Bank GPIO3_:

GPIO3_0: input: 1 [x] mmc@42860000.cd-gpios

u-boot=> gpio status GPIO3_1

Bank GPIO3_:

GPIO3_1: input: 0 [ ]

u-boot=> gpio set GPIO2_11

gpio: pin GPIO2_11 (gpio 11) value is 1

u-boot=> gpio clear GPIO2_11

gpio: pin GPIO2_11 (gpio 11) value is 0

参考:

gpio command — Das U-Boot unknown version documentation

相关文章:

GNU/Linux - U-BOOT的GPIO command

在嵌入式Linux开发中&#xff0c;先运行的是u-boot&#xff0c;然后再加载Linux内核。 启动时如果设置了u-boot等待时间&#xff0c;在等待时间内&#xff0c;按任意键就会进入u-boot命令行环境。 在u-boot命令行环境下&#xff0c;可以使用gpio命令来操作GPIO。 Synopsis gpi…...

35.UART(通用异步收发传输器)-RS232(2)

&#xff08;1&#xff09;RS232接收模块visio框图&#xff1a; &#xff08;2&#xff09;接收模块Verilog代码编写: /* 常见波特率&#xff1a; 4800、9600、14400、115200 在系统时钟为50MHz时&#xff0c;对应计数为&#xff1a; (1/4800) * 10^9 /20 -1 10416 …...

OpenLayers学习笔记-点位聚合

需求 用户点击行政区划等操作后,从后台获取区域内的点位数据,在地图上聚合显示。用户手动取消聚合,点位直接渲染在地图上。 实现过程 使用后台返回的点位数据,通过new ol.source.Vector({features})创建矢量数据源。使用new ol.source.Cluster({source})创建聚合标注数据…...

flutter实现语言的国际化

目录 前言 一、GetX实现国际化(推荐) 1.安装Getx 2.创建国际化的文件 3.使用国际化字符串 4.配置GetMaterialApp 5.更改语言 6.系统语言 ​编辑 7.原生工程配置 1.iOS工程配 1.打开iOS工程&#xff0c;在Project的info里面添加语言 2.创建String File文件 2.andr…...

服务端正常启动了,但是客户端请求不到

服务端正常启动了&#xff0c;但是客户端请求不到有哪些原因?如何排查? 如果客户端请求的接口没有响应&#xff0c;排查的方式&#xff1a; 检查接口IP地址是否正确&#xff0c;ping一下接口地址。 检查被测接口端口号是否正确&#xff0c;可以在本机Telnet接口的IP和端口号…...

鸿蒙开发 -本地数据库操作

// 1导入模块 import relationalStore from @ohos.data.relationalStore;export class AthUserDbManager{//2.获取RdbStore实例,要注意的是,此处的getContext(this)用于获取应用上下文:getcreatDbtable(dbname:string){//配置数据库信息:const STORE_CONFIG :relationalStor…...

主机安全-进程、命令攻击与检测

目录 概述反弹shell原理nc/dev/xxx反弹shell下载不落地反弹Shell各种语言反弹shell linux提权sudosuid提权mysql提权 Dnslog参考 概述 本文更新通过在主机&#xff08;不含容器&#xff09;上直接执行命令或启动进程来攻击的场景。检测方面以字节跳动的开源HIDS elkeid举例。每…...

FPGA FIR fdatool filter designer MATLAB

位数问题 fdatool 先确定输入信号的位宽&#xff0c;比如17位在fdatool中&#xff0c;选set quantization parameters 选input/output 设置input word length 为17bit(not confirmed) fir compiler implementation 注意&#xff1a; 当设置输入位宽为16位时&#xff0c;ip核…...

水表数字识别2:Pytorch DBNet实现水表数字检测(含训练代码和数据集)

水表数字识别2&#xff1a;Pytorch DBNet实现水表数字检测(含训练代码和数据集) 目录 水表数字识别2&#xff1a;Pytorch DBNet实现水表数字检测(含训练代码和数据集) 1.前言 2. 水表数字识别的方法 3. 水表数字识别数据集 4. 水表数字分割模型训练 &#xff08;1&#x…...

Windows 点云生成二维栅格图 [附C++完整代码实现]

点云压缩-2D栅格图 一、点云压缩(二维栅格图)二、算法流程三、代码实现四、结果可视化一、点云压缩(二维栅格图) 点云压缩:点云是海量点的集合,其数据量通常非常庞大。直接存储这些未经压缩的点云数据会消耗大量的存储空间,特别是在处理大规模的点云数据时,这个问题变得…...

SpringBoot结合ip2region实现博客评论显示IP属地

你好呀&#xff0c;我是小邹。 在现代的Web应用中&#xff0c;特别是博客和论坛类网站&#xff0c;为用户提供地理定位服务&#xff08;如显示用户所在地理位置&#xff09;可以极大地增强用户体验。本文将详细探讨如何使用Java和相关技术栈来实现在博客评论中显示用户的地址信…...

设计模式使用场景实现示例及优缺点(行为型模式——策略模式)

在遥远的王国里&#xff0c;有三个重要的角色&#xff1a;国王策略模式、他的皇家顾问算法家族&#xff0c;以及年轻的骑士接口。国王策略模式统治着整个王国&#xff0c;他的职责是确保每一个编程问题都能找到最合适的解决方案。 有一天&#xff0c;王国遇到了一场危机。编程王…...

ReactRouter v6升级的步骤

React Router v6 引入了一个 Routes 组件&#xff0c;它有点像 Switch &#xff0c;但功能要强大得多。与 Switch 相比&#xff0c; Routes 的主要优势在于&#xff1a; <Routes> 中的所有 <Route> 和 <Link> 都是相对的。这导致在 <Route path> 和 &…...

【JVM实战篇】内存调优:内存问题诊断+案例实战

文章目录 诊断内存快照在内存溢出时生成内存快照MAT分析内存快照MAT内存泄漏检测的原理支配树介绍如何在不内存溢出情况下生成堆内存快照&#xff1f;MAT查看支配树MAT如何根据支配树发现内存泄漏 运行程序的内存快照导出和分析快照**大文件的处理** 案例实战案例1&#xff1a;…...

专业条码二维码扫描设备和手机二维码扫描软件的区别?

条码二维码技术已广泛应用于我们的日常生活中&#xff0c;从超市结账到公交出行&#xff0c;再到各类活动的入场验证&#xff0c;条码二维码的便捷性不言而喻&#xff0c;而在条码二维码的扫描识别读取过程中&#xff0c;专业扫描读取设备和手机二维码扫描软件成为了两大主要工…...

基于嵌入式Linux的高性能车载娱乐系统设计与实现 —— 融合Qt、FFmpeg和CAN总线技术

随着汽车智能化的发展&#xff0c;车载娱乐系统已成为现代汽车的标配。本文介绍了一个基于Linux的车载娱乐系统的设计与实现过程。该系统集成了音视频娱乐、导航、车辆信息显示等功能&#xff0c;旨在提供安全、便捷、丰富的驾驶体验。 1. 项目概述 随着汽车智能化的发展&…...

探索IP形象设计:快速掌握设计要点

随着市场竞争的加剧&#xff0c;越来越多的企业开始关注品牌形象的塑造和推广。在品牌形象中&#xff0c;知识产权形象设计是非常重要的方面。在智能和互联网的趋势下&#xff0c;未来的知识产权形象设计可能会更加关注数字和社交网络。通过数字技术和社交媒体平台&#xff0c;…...

泛微Ecology8明细表对主表赋值

文章目录 [toc]1.需求及效果1.1 需求1.2 效果2.思路与实现3.结语 1.需求及效果 1.1 需求 在明细表中的项目经理&#xff0c;可以将值赋值给主表中的项目经理来作为审批人员 1.2 效果 在申请人保存或者提交后将明细表中的人名赋值给主表中对应的值2.思路与实现 在通过js测…...

opencv—常用函数学习_“干货“_5

目录 十五、图像分割 简单阈值分割 (threshold) 自适应阈值分割 (adaptiveThreshold) 颜色范围分割 (inRange) 分水岭算法 (watershed) 泛洪填充 (floodFill) GrabCut算法 (grabCut) 距离变换 (distanceTransform) 最大稳定极值区域检测 (MSER) 均值漂移滤波 (pyrMean…...

JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA)

JAVA零基础学习1&#xff08;CMD、JDK、环境变量、变量和键盘键入、IDEA&#xff09; CMD常见命令配置环境变量JDK的下载和安装变量变量的声明和初始化声明变量初始化变量 变量的类型变量的作用域变量命名规则示例代码 键盘键入使用 Scanner 类读取输入步骤示例代码 常用方法处…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...