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.
正常情况、导出gpio后reboot后情况、导出gpio后电源关闭再打开情况 root@ok6254:~# echo 330 > /sys/class/gpio/export [ 66.668165] wangguan export_store [ 66.668183] wangguan gpio_to_desc [ 66.671502] wangguan gpio 330 [ 66.674877] wangguan gdev->base:314 gdev->base + gdev->ngpio:402 [ 66.677864] wangguan return normal [ 66.684210] wangguan desc->gdev->chip [ 66.687624] wangguan status1 :0 [ 66.691276] wangguan status1 :0 [ 66.694622] wangguan status1 :0 root@ok6254:~# cat /sys/kernel/debug/gpio gpiochip2: GPIOs 314-401, parent: platform/601000.gpio, 601000.gpio: gpio-330 ( |sysfs ) in lo gpio-336 ( |fixed-regulator-rgb ) out lo gpiochip1: GPIOs 402-488, parent: platform/600000.gpio, 600000.gpio: gpio-433 ( |net-5g-rst ) out lo ACTIVE LOW gpio-437 ( |phy_rstn ) out lo gpio-438 ( |id ) in lo gpio-440 ( |RT9186 ) out lo gpio-441 ( |fixed-regulator-lvds) out lo gpio-442 ( |phy_rstn ) out lo gpio-473 ( |regulator-6 ) out lo gpiochip0: GPIOs 489-511, parent: platform/4201000.gpio, 4201000.gpio: 导出gpio后按下复位按键情况 root@ok6254:~# echo 330 > /sys/class/gpio/export [ 40.124132] wangguan export_store [ 40.124150] wangguan gpio_to_desc [ 40.127480] wangguan gpio 330 [ 40.130830] wangguan gdev->base:337 gdev->base + gdev->ngpio:425 [ 40.133787] wangguan gdev->base:425 gdev->base + gdev->ngpio:512 [ 40.140159] wangguan return null [ 40.146506] wangguan !desc [ 40.149738] export_store: invalid wangguan GPIO 330 -sh: echo: write error: Invalid argument root@ok6254:~# cat /sys/kernel/debug/gpio gpiochip1: GPIOs 337-424, parent: platform/601000.gpio, 601000.gpio: gpio-359 ( |fixed-regulator-rgb ) out lo gpiochip0: GPIOs 425-511, parent: platform/600000.gpio, 600000.gpio: gpio-456 ( |net-5g-rst ) out lo ACTIVE LOW gpio-460 ( |phy_rstn ) out lo gpio-461 ( |id ) in lo gpio-463 ( |RT9186 ) out lo gpio-464 ( |fixed-regulator-lvds) out lo gpio-465 ( |phy_rstn ) out lo gpio-496 ( |regulator-6 ) out lo root@ok6254:~#
按键复位后gpio的base值变了,您那再帮忙看看
您提供的console log显示“reset”后 MCU_GPIO0 不存在,这使得 MAIN_GPIO1(LED 引脚 330 所属)的基本引脚编号从 314 更改为 337。这就是为什么引脚 330 在“reset”后不再有效的原因。
基本上你不应该使用固定的 GPIO 编号(在这种情况下为 330),相反,你需要查询芯片组的基本引脚编号,并加上偏移量以获得你要使用的 GPIO 编号。
非常感谢,也就是说A核的复位虽然不影响M核,但是由于MCU_GPIO没能正常复位,导致了A核的gpiochip号改变了,影响了A核自己的使用,这个是可以避免的吗
这个问题,我会继续为您在英文论坛更新,一旦有回复会即刻转告您。
你所描述的是意料之中的。如果复位按钮连接到主域热复位或主域 POR,则只会复位主域,MCU GPIO 模块不会复位。
在这种情况下,MCU GPIO由A内核使用,因此在主域复位时应复位MCU域,复位按钮应连接到MCU RESETz或MCU PORz引脚,因此它可以触发主域和MCU域复位。
可是你们宣传这个cpu是可以支持M核独立运行的啊
我相信所宣传的是,AM62x可以支持MCU域独立于主域运行,因此主域复位不会影响MCU域。
M 核是 M4F CPU,而 MCU 域包括 M4F 和一些外设。
您的主域使用 MCU 域 的GPIO 模块。当主域复位时,MCU 域 GPIO 模块也应复位。否则,MCU_GPIO将不会处于要再次初始化的干净状态。在这种情况下,应使用MCU RESETz或PORZMCU PORz来复位主域和MCU域。
您的情况不是“M 核独立运行”,因为MCU_GPIO由 MAIN 域使用。
我看不出这里有什么矛盾。如果我的解释仍然不清楚,请告诉我。