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.

[参考译文] AM2434:两个内核故障之间的双核调试单步失效。

Guru**** 2396245 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1428264/am2434-dual-core-debug-single-step-fail-between-two-core-fail

器件型号:AM2434
主题中讨论的其他器件:UNIFLASH

工具与软件:

各位专家、您好!

我使用 AM243x-LP 演示板尝试调试 MCU+SDK10.00示例、方法是将 hello_world 的 xxx.out 加载到 R5F_0_0 中、并将 GPIO_LED_BLINK 的 yyy.out 加载到 R5F_0_1中。

第一步我下载了 yyy.out 文件到 R5F_0_1中、第二步我下载了 xxx.out 文件到 R5F_0_0中、然后我尝试在 R5F_0_0 hello_world main.c 上执行单步操作、运行正常。 之后、我在 R5F_0_1 GPIO_LED_BLINK 内核上的"Debug"窗口中点击、然后点击单步、但这次单步无法在 R5F_0_1 GPIO_LED_BLINK main.c 上正常运行

似乎我只能在要用 xxx.out 加载的第二个内核上成功使用单步执行、而用 yyy.out 加载的第一个内核 无法正确执行单步执行。

我是不是从一个内核切换到另一个内核的方式出错了?

请提供帮助。  

非常感谢。

此致、 JasonChiu。

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

    尊敬的 Jason 先生:

    感谢您的提问。

    [报价 userid="353425" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1428264/am2434-dual-core-debug-single-step-fail-between-two-core-fail "]此后、我单击 R5F_0_1 gpio_led_BLINK 内核的"Debug"窗口内、然后单击单步、但这次单步无法在 R5F_0_1 gpio_led_BLINK main.c.

    您能否说明您面临的问题是什么? 是否有任何错误日志?

    您能给我们分享一下屏幕截图吗?

    此致、

    Tushar

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

    您好、Tushar 先生、

    非常感谢您快速回答我的问题。

    在我为您捕获错误消息之前、请为您提供帮助?

    几天前、我有一个关于 TI 网站上某项指令的问题(当您解决我的脚本问题时):

    (我想知道这是否是昨天的调试模式单步问题的原因?)。

    您能帮我澄清一下我对 TI 网站指令的疑问吗?  

    我无法在尝试/测试 SDK 示例代码时遵守该要求。

    非常感谢。

    此致、  JasonChiu。

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

    Jason 先生、您好!

    这两种引导模式(QSPI、DEV)彼此完全不同、并遵循不同的 SoC 初始化方式。

    开发引导模式为用户提供了使用 CCS 初始化 SoC 的选项。 而 QSPI 引导模式使用闪存作为初始化 SoC 的引导介质。

    要使用 QSPI 引导模式、您需要使用 UART Uniflash 工具刷写二进制文件、然后切换到 QSPI 引导模式。

    请按照中建议的步骤操作  EVM_FLASH_SOC_init 

    此致、

    Tushar

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

    您好、Tushar 先生、

    非常感谢。 您的意思是、当我使用 CCS 和 SDK 示例代码测试/调试 AM243x-LP 时、我需要使用开发引导模式。  我的最后一个问题是、2个内核之间在调试模式单步操作中失败是使用 QSPI 模式并且未运行 SOC 脚本。 我在 SW4引导模式上的设置错误可能是单步错误的原因。 我将在稍后测试/尝试使用开发引导模式、并在将两个示例代码下载到两个内核之前执行 SoC 初始化脚本。

    非常感谢。

    此致、 邱俊杰。

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

    尊敬的 Jason 先生:

    您的意思是当我使用 CCS 通过 SDK 示例代码测试/调试 AM243x-LP 时、需要使用开发引导模式

    即使使用 QSPI 引导模式、也可以通过 CCS 调试代码。 唯一的区别是在开发引导模式下、您使用 CCS 初始化 SoC、如果使用其他引导模式、则无法实现这一点。

    稍后我将测试/尝试使用开发引导模式、并在将两个示例代码下载到两个内核之前执行 SoC 初始化脚本。

    期待收到您的反馈。

    此致、

    Tushar

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

    您好、Tushar 先生、

    非常感谢您阐明 CCS 调试操作与引导模式。

    我对你先前的答复有一个问题:你说:

    "唯一的区别是在开发引导模式下、您使用 CCS 初始化 SoC、如果使用其他引导模式、则无法实现这一点。"

    我的问题是"我在 SoC 上进行初始化、然后调试2个内核"和"我无法在 SoC 上进行初始化以调试2个内核"之间有什么区别?

    这里还有一个问题:它在 SDK_08_05 HS-EVM FS 迁移指南中:

    由于我的 MCU 是 HS-MCU FS 类型、根据上表、您几天前为我提供了面向 DEV-boot 模式(必需)的指南:  

    我不理解的是、如果我想在两个内核上执行单步调试、下面两(1)和(2)之间的区别是什么?

    您能帮助解释一下吗?

    非常感谢。

    此致、 邱俊杰。

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

    Jason 先生、您好!

    我的问题是"我在 SoC 上进行初始化后再调试2个内核"与"我无法在 SoC 上进行初始化以调试2个内核"之间有何区别?

    抱歉、我没有完全理解该问题。

    您是否正在尝试弄清楚在 SoC 初始化 v/s SoC 时调试内核与未初始化时调试内核之间有何区别?

    如果我想在两个内核上执行单步调试、我不明白的是下面两个(1)和(2)之间的区别?

    上图显示了 GP 和 HSFS 器件之间的差异。

    如(1)所述 引导模式 使用 CCS+GEL 流程时的设置。

    在(2)中、我们讨论的是 JS 脚本 需要  在使用 CCS+GEL 流程时运行。  

    此致、

    Tushar

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

    您好、Tushar 先生、  

    非常感谢您的回答。

    我已收到上一个问题的答案:初始化的 SoC 可以让我更轻松地使用 SoC 多个内核。  

    谢谢你回答我的第二个问题,但我仍然不明白(1)和(2)之间的区别。 您能帮助说明更多吗?  

    现在我只知道(1)与引导模式和 CCS+GEL 有关。 我知道我的芯片是 HSFS 类型、现在只能使用 DEV-boot 模式。 我不知道在此模式下使用什么 GEL (此"dev-boot mode"中的 GEL 与"ccs+gel flow js script"中的 GEL 是否不同?)  

    由于您责成我使用 gmake -s -C examples/drivers/sciclient..... sciclient_ccs_init.release.out 为了进行 SoC 初始化、我假设我不需要运行 LoadJSFFile"C:/ti/mcu_plus_sdk/tools/ccs_load/am243x/load_dmsc_hsfs.js。  我的另一个问题是:为什么使用该示例文件进行 SoC 初始化? 您是否可以使用其他示例进行 SoC 初始化? 如果没有、您能帮助解释原因吗? 如果我要在该内核(R5F_0)上运行其他示例、我可以将其他示例上传到该 R5F_0内核中(只要我没有关闭 AM243x-LP)吗? 或者我必须始终在 R5F_0中保留该 sciclient 代码?

    由于文档说每次给演示板上电时用户都需要进行 SoC 初始化、因此我假设我需要使用开发引导模式并运行"gmake..." "每次我为演示板加电时。 该假设是否正确?   

    非常感谢。  

    此致、  邱俊杰。

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

    Jason 先生、您好!

    我觉得在理解上述概念时、会有一些混淆。

    。 我知道我的芯片是 HSFS 型芯片、现在只能使用 DEV-boot 模式[/QUOT]

    HSFS 器件还可以使用其他引导模式、例如 UART、OSPI。 强制坚持使用 DEV 引导模式仅用于使用 CCS 完成 SOC 初始化。

    但是、要使用 SBL 二进制文件初始化 SoC、您可以使用 UART 引导模式、然后切换到 OSPI 引导模式以运行应用程序。

    [报价 userid="353425" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1428264/am2434-dual-core-debug-single-step-fail-between-two-core-fail/5481276 #5481276"]由于文档说用户每次在演示板上电时都需要进行 SoC 初始化、因此我认为我需要使用 dev-boot 模式并运行"gmake..." "每次我为演示板加电时。 该假设是否正确?  [报价]

    如果使用 SBL 二进制文件刷写 SoC、则无需在每次复位 EVM 或对 EVM 进行下电上电时初始化 SOC。 二进制文件会刷写到 OSPI 闪存中、并在选择 OSPI 引导模式时使用。

    请参阅  EVM_FLASH_SOC_init 使用 SBL 二进制文件初始化 SoC 的示例。  

    此致、

    Tushar

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

    尊敬的 Jason 先生:

    为什么使用该示例文件进行 SoC 初始化? 您是否可以使用其他示例进行 SoC 初始化? 如果没有、您能帮助解释原因吗?

    不可以、您无法加载其他示例来进行 SoC 初始化。 这是一个特殊的 soc 初始化示例、在 Cortex M3上加载系统固件、将 sciclient boardcfg 发送到在 M3上运行的 SYSFW 并初始化其他内核用户以进行连接和调试。  

    请参阅  DRIVERS_SCICLIENT_CCS_INIT.html 以了解详细信息。

    此致、

    Tushar

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

    尊敬的 Jason 先生:

    [报价 userid="353425" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1428264/am2434-dual-core-debug-single-step-fail-between-two-core-fail/5481276 #5481276"]如果我想在该内核(R5F_0)上运行其他示例、我能否将其他示例上载到该 R5F_0内核中(只要我没有关闭 AM243x-LP)? 或者我必须始终将该 sciclient 代码保留在 R5F_0中?

    一旦该示例成功完成其执行、初始化日志将出现在控制台上、并且 R5F 内核 将处于复位矢量状态。

    您现在可以将其他应用程序加载到 R5F0-0内核并运行它。

    此致、

    Tushar

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

    您好、Tushar 先生、  

    我不知道用于执行 SoC 初始化的 SBL 二进制文件、只需要执行一次(上电时不会丢失。 感谢您告诉我这些。  

    我对每次断电时执行 SoC 初始化的印象可能仅适用于使用 CCS 的 DEV-boot 模式:

    奇怪的是、上面的文档提到在断电时会执行 SoC 初始化。  

    您能帮助说明一下吗?  

    非常感谢。

    此致、  JasonChiu。

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

    Jason 先生、您好!

    当使用 CCS+GEL 流程时、这意味着 时、程序员使用 CCS IDE 通过 JTAG 接口直接写入 SoC 的内部存储器。

    在这种方法中、对于 HSFS 器件、需要 DEVBOOT 模式和对于 GP 器件 NOBOOT 模式、因为它会告知 SoC 没有为 SoC 选择用于读取映像的引导介质。 编程器可以直接将初始化指令写入 SoC 存储器。 当完成下电上电或复位时、内容将丢失、并且寄存器值将设置为默认值。 因此、需要重复相同的初始化过程。

    请参阅下图。

    完成的 时、您首先使 EVM 保持在 UART 引导模式、并使用 UART 协议将 SBL 二进制文件发送到 EVM 的闪存。

    刷写完成后、引导模式会切换到 OSPI、该模式会 在 SoC 复位或下电上电完成时指示 SoC 从 OSPI 闪存读取映像。 EVM 上的 OSPI 闪存为非易失性、在下电上电后不会丢失其内容。

    一旦由 SBL 或 CCS+GEL 流程初始化 SoC、您可以按照中提到的步骤进行操作  CCS_LAUNCH 调试应用的示例。

    请参阅下图。

    希望上述信息澄清了混淆。  

    此致、

    Tushar

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

    您好、Tushar 先生、  

    在您之前的回复之后、这是正确的吗?

    如果我使用 dev-boot 模式、则"gmake -s -C examples/..... "每次我打开/关闭 AM243x-LP 演示板以进行 SoC 初始化时都需要执行该操作。  

    请发表评论。  

    非常感谢。  

    此致、  JasonChiu。  

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

    Jason 先生、您好!

    gmake -s -C examples/..... [报价]

    您无需反复运行 gmake 命令。 因为您已经使用上述命令在系统中创建了一次二进制文件。

    您只需要在进行复位或下电上电后、在 R5F0-0内核上重新加载并重新运行相同的二进制文件。 可以按照之前视频中的建议直接加载二进制文件并重新运行、也可以通过运行 load_dmsc_hsfs.js 脚本来重新加载和重新运行二进制文件。

    此致、

    Tushar

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

    您好、Tushar 先生、  

    非常感谢您的详细解释。  

    我现在就使用两个示例的单步调试成功调试了两个内核、解决了两个问题。  

    您可以非常好地帮助不熟悉 TI 芯片/CCS 的新手学员。  

    此致、  JasonChiu。