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.

[参考译文] PRU-AM243X:MCU-PLUS-SDK 中的 PRU-调试 问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1293927/mcu-plus-sdk-am243x-pru-debug-issues-in-ccs

器件型号:MCU-PLUS-SDK

您好!

我正在尝试调试 ICSSG0_PRU0、但成功有限。  如果我在 SPI 引导模式下调试、我可以输出 GPO0、但只有在我调试 R5内核、然后调试 PRU 的情况下才能进行输出、无论我的 syscfg 设置如何、我似乎都只能通过 R30切换 GPO0。  然后、我尝试将系统置于无引导模式、并通过控制台加载 dmsc.js 文件。  这样我就可以开始调试、但似乎没有运行我已经在 system.xml 文件中与内核相关联的 main.c 文件。  我在调试或其他操作中缺少一个用于加载内核的 GEL 文件。  此外、是否可以同时调试 ARM 内核和其他内核?  此处的最终目标是使用 PRU 在内核之间来回发送数据、从而在某些外设之间发送数据。  

谢谢!

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

    您好

    如果我在 SPI 引导模式下调试,我可以使 GPO0输出,但只有当我调试 R5内核,然后调试 PRU 时,我似乎只能通过 R30切换 GPO0,而不管我的 syscfg 设置如何。

    您是否正在使用 SDK 本身的引导加载程序?
    在这种情况下、您是否为所有20个引脚配置了 GPO 的引脚多路复用?

    、这允许我进行调试、但似乎没有运行我在 system.xml 文件中与内核相关联的 main.c 文件。  我在调试或其他操作中缺少一个用于加载内核的 GEL 文件。  另外、是否可以同时调试 ARM 内核和其他内核?

    我无法完全理解这一点。 您能提供更多详细信息吗? 这是哪个 system.xml 文件、您在运行哪个 SDK 示例?

    此致
    达瓦尔

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

    您好、Dhaval:

    我使用的是通过 Launchpad 上的 dip 开关设置的引导加载程序设置。  我已尝试"无引导"和 QSPI。  

    对于引脚多路复用、我在 syscfg 中设置为 GPO。  示例:

    当我使用 ARM 内核运行标准调试时、会得到:

    我能够在 GPO1上但仅在该引脚上获得输出。  

    要调试我正在运行的 PRU、请执行以下操作 :loadJSFile "C:/ti/mcu_plus_sdk_am243x_08_06_00_45/tools/ccs_load/am243x/load_dmsc.js "

    我得到:

    当我连接到 PRU0时、显示"Connecting:In Reset"

    system.xml 如下所示:

    我用来进行测试的基本 PRU 代码是:

    希望这有助于澄清一点。  如果不是,请告诉我,我将提供更多的信息。

    谢谢!

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

    您好

    很抱歉响应延迟。

    这里的问题是、当您运行 load_dmsc.js 或 SBL NULL 时、PRU-ICSSG 的时钟未初始化。 这就是您无法直接连接内核的原因。

    您能否查看以下 E2E 中的步骤是否对您有所帮助?

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1045297/faq-am64x-am24x-how-to-use-code-composer-studio-ccs-to-connect-to-pru_icssg

    此致
    Dhaval Khandla

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

    您好、Dhaval:

    我以前读过这一程序,但将再次给它一个枪。   但是、在我这么做之前、您能为我澄清一下吗?  "刷写 SOC 初始化二进制文件"步骤中发生了什么情况?  这与通过 CCS 刷写 hello world 程序是否不同?  说明似乎暗示这是被其他应用程序覆盖的,因此我试图理解为什么执行这个步骤。  这是否仅仅是为了验证事物是否按预期运行?  或者、这是为了确保正确设置以下代码: "对于 SDK 8.1及更早版本、 OPSI SBL NULL 初始化二进制文件不启用 PRU 时钟。"?

    谢谢!

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

    您好

    在我这么做之前,您能为我澄清一下吗?  "刷写 SOC 初始化二进制文件"步骤中发生了什么情况?

    在此步骤中、SBL NULL 被刷写到器件上。 有关引导加载程序的更多详细信息,请参见以下文档: https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/09_00_00_35/exports/docs/api_guide_am243x/BOOTFLOW_GUIDE.html

    如果为 SBL 为 NULL、则仍需要通过 CCS 加载用户应用程序。 SBL NULL 需要 SoC 初始化、并将应用内核保持在复位状态、可从 CCS 加载运行代码。 遗憾的是、当前的 SBL NULL 不初始化 PRU-ICSSG 时钟、因为这种时钟与 PRU 的连接失败。

    此致
    Dhaval Khandla