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.

[参考译文] TDA4VH-Q1:多核应用上的 GPIO 冲突

Guru**** 2427060 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1537587/tda4vh-q1-gpio-conflicts-on-multi-core-apps

器件型号:TDA4VH-Q1


工具/软件:

你(们)好  

我们使用 Board_init () 为 2 个 MCU 内核配置每个 MCU 内核的 GPIO(例如 MCU_1_0 和 MCU_2_0)、并观察到中断 处理不当。

我们需要禁用另一个内核才能 正确使用中断。 是否有任何正确处理多核 GPIO 的示例?

此致、

Piotr

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Piotr、

    请查看以下常见问题解答。 主要要考虑的是为 2 个不同 MCU 内核的 GPIO 配置中断时 GPIO 的组、因为这可能会导致错误的中断。

    注意中断 处理不正确。

    您能详细说明一下吗? 您看到错误的中断吗?

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 Neehar、

    我们方面有一些误解。 所有 R5 内核都有一个 GPIO 配置、在每个内核上调用 GPIO_init 也会每次都重新配置中断。 我们需要添加选项、以便仅允许特定内核配置特定 GPIO。

    我想问另一件事。 在考虑安全运行的情况下、如何在多核环境中使用 Board_Init 功能。 我的理解是、pinumx 和 clock 等操作只能在启动时配置、配置应在锁定之后。 因此、Board_init 由 mcu1_0 调用、不应该调用其他内核(尽管 PSDK 中提供了其他示例,但在这种情况下可免费使用,并在需要时调用电路板)。 请告诉我我我的想法是否正确。

    此致、

    Michal Mrowczynski

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michal、

    让我为您确认这些问题、明天返回给您。  

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michal、

    Board_Init 函数旨在如何在考虑安全操作的多核环境中使用。 我的理解是、pinumx 和 clock 等内容只应在启动时配置、配置应在锁定之后

    正确、Board_init () 只能从一个内核调用、只需调用一次。 无需多次调用 Board_init ()、因为所有 pinmux、时钟、I/O 都已启用。

    但是、我们建议为每个内核创建单独的 gpioPinConfigs[]、并针对每个内核单独初始化这些配置。 这可确保每个内核的 GPIO 引脚和中断保持独立。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Neehar、

    还有一个问题是、 在 MCU 域与 MAIN 域方面、应该如何调用 Board_init? 它 在 MCU 上调用 Board_init 是否足以从 MAIN 域初始化资源? 是否需要 在 MCU1_0 内核上为 MCU 域运行 Board_init、然后 在 MCU2_0 等主域上运行 Board_init?

    此致、

    Michal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michal、

    只要您在某个点配置了所有模块(如 PLL、时钟、Pinmux)、就无需单独运行 Board_init ()。 例如、只要同时配置 Board_INIT_MODULE_CLOCK_MCU 和 BOARD_INIT_MODULE_CLOCK_MAIN、就可以只在 MCU1_0 内核上运行 Board_init () 。 同样、 Board_init_PLL_MCU 和  Board_init_PLL_MAIN 或其他 Main 域模块均可能未配置。

    谢谢、
    Neehar