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.

PROCESSOR-SDK-AM62X: 用户态GPIO在export引脚和写入value时出现问题

Part Number: PROCESSOR-SDK-AM62X

问题如附件新建 DOC 文档.doc

  • 感谢您对TI产品的关注!为更加有效地解决您的问题,我需要多一些时间查看这款芯片,稍后会为您解答。

  • 好的,谢谢,期待您的回复,最晚什么时候能有回复呢

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    gpiorebootgpio
    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
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    按键复位后gpio的base值变了,您那再帮忙看看



  • 我们的复位电路如下

  • 您的问题已经发布在E2E英文技术论坛上,将由资深的英文论坛工程师为您提供帮助。您也可以查看下帖了解进展:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1131420/processor-sdk-am62x-the-gpio-appears-problem-when-exporting-pin-and-writing-value

  • 非常感谢,也就是说A核的复位虽然不影响M核,但是由于MCU_GPIO没能正常复位,导致了A核的gpiochip号改变了,影响了A核自己的使用,这个是可以避免的吗

  • 您提供的console log显示“reset”后 MCU_GPIO0 不存在,这使得 MAIN_GPIO1(LED 引脚 330 所属)的基本引脚编号从 314 更改为 337。这就是为什么引脚 330 在“reset”后不再有效的原因。

    基本上你不应该使用固定的 GPIO 编号(在这种情况下为 330),相反,你需要查询芯片组的基本引脚编号,并加上偏移量以获得你要使用的 GPIO 编号。

  • 非常感谢,也就是说A核的复位虽然不影响M核,但是由于MCU_GPIO没能正常复位,导致了A核的gpiochip号改变了,影响了A核自己的使用,这个是可以避免的吗

    这个问题,我会继续为您在英文论坛更新,一旦有回复会即刻转告您。

  • 请尝试重启板子。

  • 试过了,断电重启是没有问题的,gpiochip号还是正常,断电重启A核和M核一起复位就是没有问题的;

    我觉得现在的启动流程是先启动A核,然后设备树初始化分配A核和M核的引脚,然后M核启动调用,是正常的,此时如果按键复位,因为复位按键是复位A核的,导致M核的使用出现异常,甚至影响了A核的gpiochip号,导致看起来A核也是有问题的了

  • 你所描述的是意料之中的。如果复位按钮连接到主域热复位或主域 POR,则只会复位主域,MCU GPIO 模块不会复位。

    在这种情况下,MCU GPIO由A内核使用,因此在主域复位时应复位MCU域,复位按钮应连接到MCU RESETz或MCU PORz引脚,因此它可以触发主域和MCU域复位。

  • 可是你们宣传这个cpu是可以支持M核独立运行的啊,现在M核独立运行的前提是不能在A核的设备树中初始化M核的引脚,但是如果不初始化,M核的这些功能又不能正常使用,所以就矛盾了

  • 可是你们宣传这个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 域使用。

    我看不出这里有什么矛盾。如果我的解释仍然不清楚,请告诉我。

  • 非常感谢耐心的解答,现在明白了,谢谢