工具与软件:
我想从 U-Boot 提示符处切换 GPIO 或切换 LED。 我该怎么做?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我想从 U-Boot 提示符处切换 GPIO 或切换 LED。 我该怎么做?
所需步骤:
默认情况下、在 SDK 中定义 LED 并将其连接到 GPIO1_49。 有关原理图连接和器件树节点、请参阅下面的。 这应该与 U-Boot 和 Linux 设备树保持一致。

/{
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&usr_led_pins_default>;
led-0 {
label = "am62-sk:green:heartbeat";
gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
function = LED_FUNCTION_HEARTBEAT;
default-state = "off";
};
};
};
&main_pmx0 {
usr_led_pins_default: usr-led-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x244, PIN_OUTPUT, 7) /* (C17/B15) MMC1_SDWP.GPIO1_49 */
>;
};
};
该 LED 是"心跳 LED"、模拟跳动心脏的模式。 在 U-Boot 提示符下、LED 默认处于关闭状态、因此我们可以启用 LED 命令以在提示符下使用它们。
请注意器件树节点如何包含"compatible ="GPIO-LEDs";这意味着此处不适用正常的 GPIO 驱动程序、而是需要基于 GPIO 的 LED 的特定驱动程序。 我们必须更新配置文件以包含此内容。
新配置应包含 CONFIG_LED_GPIO=y 及其所有依赖项(CONFIG_LED=y 和 CONFIG_DM_GPIO=y)。

使用 SDK 文档更新配置文件并重建映像: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_02_01_10/exports/docs/linux/Foundational_Components U-Boot/UG-General-Info.html#build-u-boot
U-Boot SPL 2023.04-dirty (Aug 09 2024 - 16:10:17 -0500) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') SPL initial stack usage: 13408 bytes Trying to boot from MMC2 Authentication passed Authentication passed Authentication passed Authentication passed Authentication passed Starting ATF on ARM64 core... NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty NOTICE: BL31: Built : 16:09:05, Feb 9 2024 U-Boot SPL 2023.04-dirty (Aug 09 2024 - 16:10:26 -0500) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') SPL initial stack usage: 1856 bytes Trying to boot from MMC2 Authentication passed Authentication passed U-Boot 2023.04-dirty (Aug 09 2024 - 16:10:26 -0500) SoC: AM62X SR1.0 HS-FS Model: Texas Instruments AM625 SK EEPROM not available at 80, trying to read at 81 Board: AM62B-SKEVM-P1 rev A DRAM: 2 GiB Core: 74 devices, 34 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial Out: serial Err: serial Net: eth0: ethernet@8000000port@1 Hit any key to stop autoboot: 0 =>
=> led led - manage LEDs Usage: led <led_label> on|off|toggle Change LED state led <led_label> Get LED state led list show a list of LEDs => led list am62-sk:green:heartbeat
使用 ON、OFF 和 TOGGLE 更改状态。
=> led am62-sk:green:heartbeat on => led am62-sk:green:heartbeat off => led am62-sk:green:heartbeat toggle