工具与软件:
您好、亲爱的专家。
我尝试读取 GPIO 输入值(GPIO0_39)、但即使没有电压输入、它也始终返回1。
执行
* SDK : 10.x
* EVB : AM62_LP (PROC124E2)
检查 GPIO0_39寄存器地址0x000f40a0

2.检查 padconfig 值。 我认为是正确的。 (GPIO 模式7、输出)
root@am62xx-lp-evm:~# devmem2 0x000f40a0 /dev/mem opened. Memory mapped at address 0xffff8357e000. Read at address 0x000F40A0 (0xffff8357e0a0): 0x00050007

3.检查 gpiochip ,我们已经知道 gpio0_x 属于 gpiochip2
root@am62xx-lp-evm:~# cat /sys/kernel/debug/gpio gpiochip0: GPIOs 512-514, parent: i2c/0-0030, tps65219-gpio, can sleep: gpiochip1: GPIOs 515-538, parent: i2c/1-0023, 1-0023, can sleep: gpio-523 (WL_LT_EN ) gpio-524 (CSI_RSTz ) gpio-531 (SPI0_FET_SEL ) gpio-532 (SPI0_FET_OE ) gpio-533 (GPIO_OLDI_RSTn ) gpio-534 (PRU_3V3_EN ) gpio-537 (CSI_VLDO_SEL ) gpio-538 (SOC_WLAN_SDIO_RST ) gpiochip2: GPIOs 539-630, parent: platform/600000.gpio, 600000.gpio: gpio-570 ( |vddshv_sdio ) out lo gpiochip3: GPIOs 631-682, parent: platform/601000.gpio, 601000.gpio: gpio-680 ( |igo_update_pin ) out lo gpiochip4: GPIOs 683-706, parent: i2c/1-0022, 1-0022, can sleep: gpio-683 (GPIO_CPSW2_RST ) gpio-684 (GPIO_CPSW1_RST ) gpio-685 (PRU_DETECT ) gpio-686 (MMC1_SD_EN |regulator-3 ) out lo gpio-687 (VPP_LDO_EN ) gpio-688 (EXP_PS_3V3_En ) gpio-689 (EXP_PS_5V0_En ) gpio-690 (EXP_HAT_DETECT ) gpio-691 (GPIO_AUD_RSTn ) gpio-692 (GPIO_eMMC_RSTn ) gpio-693 (UART1_FET_BUF_EN ) gpio-694 (BT_UART_WAKE_SOC ) gpio-695 (GPIO_HDMI_RSTn ) gpio-696 (CSI_GPIO0 ) gpio-697 (CSI_GPIO1 ) gpio-698 (GPIO_OLDI_INT ) gpio-699 (HDMI_INTn ) gpio-700 (TEST_GPIO2 |igo_reset_pin ) out hi gpio-701 (MCASP1_FET_EN ) gpio-702 (MCASP1_BUF_BT_EN ) gpio-703 (MCASP1_FET_SEL ) gpio-704 (UART1_FET_SEL ) gpio-706 (IO_EXP_TEST_LED )
4.使用 gpioinfo 检查
root@am62xx-lp-evm:~# gpioinfo -c gpiochip2
gpiochip2 - 92 lines:
line 0: unnamed input
line 1: unnamed input
line 2: unnamed input
line 3: unnamed input
line 4: unnamed input
line 5: unnamed input
line 6: unnamed input
line 7: unnamed input
line 8: unnamed input
line 9: unnamed input
line 10: unnamed input
line 11: unnamed input
line 12: unnamed input
line 13: unnamed input
line 14: unnamed input
line 15: unnamed input
line 16: unnamed input
line 17: unnamed input
line 18: unnamed input
line 19: unnamed input
line 20: unnamed input
line 21: unnamed input
line 22: unnamed input
line 23: unnamed input
line 24: unnamed input
line 25: unnamed input
line 26: unnamed input
line 27: unnamed input
line 28: unnamed input
line 29: unnamed input
line 30: unnamed input
line 31: unnamed output consumer=vddshv_sdio
line 32: unnamed input
line 33: unnamed input
line 34: unnamed input
line 35: unnamed input
line 36: unnamed input
line 37: unnamed input
line 38: unnamed input
line 39: unnamed input
line 40: unnamed input
line 41: unnamed input
line 42: unnamed input
line 43: unnamed input
line 44: unnamed input
line 45: unnamed input
line 46: unnamed input
line 47: unnamed input
line 48: unnamed input
line 49: unnamed input
line 50: unnamed input
line 51: unnamed input
line 52: unnamed input
line 53: unnamed input
line 54: unnamed input
line 55: unnamed input
line 56: unnamed input
line 57: unnamed input
line 58: unnamed input
line 59: unnamed input
line 60: unnamed input
line 61: unnamed input
line 62: unnamed input
line 63: unnamed input
line 64: unnamed input
line 65: unnamed input
line 66: unnamed input
line 67: unnamed input
line 68: unnamed input
line 69: unnamed input
line 70: unnamed input
line 71: unnamed input
line 72: unnamed input
line 73: unnamed input
line 74: unnamed input
line 75: unnamed input
line 76: unnamed input
line 77: unnamed input
line 78: unnamed input
line 79: unnamed input
line 80: unnamed input
line 81: unnamed input
line 82: unnamed input
line 83: unnamed input
line 84: unnamed input
line 85: unnamed input
line 86: unnamed input
line 87: unnamed input
line 88: unnamed input
line 89: unnamed input
line 90: unnamed input
line 91: unnamed input
4.使用 gpioget 检查值
root@am62xx-lp-evm:~# gpioget -c gpiochip2 39 "39"=active
5.导出读取
因为 GPIO0_0 = 539。 因此 GPIO0_39 = 578
root@am62xx-lp-evm:/# echo 578 > /sys/class/gpio/export root@am62xx-lp-evm:/# cd /sys/class/gpio/gpio578 root@am62xx-lp-evm:/sys/class/gpio/gpio578# ls active_low device direction edge power subsystem uevent value root@am62xx-lp-evm:/sys/class/gpio/gpio578# echo in > direction root@am62xx-lp-evm:/sys/class/gpio/gpio578# cat value 1 root@am62xx-lp-evm:/sys/class/gpio/gpio578# cat value 1
即使 GPIO0_0输入电压= 0、它也始终返回1。
我会错过什么吗?
需要更多的调试建议。
非常感谢。
Gibbs







