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.

[参考译文] CODECOMPOSER:多核系统的一个内核在 CCS 调试器中无法正常运行

Guru**** 2553260 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1136456/codecomposer-one-core-of-a-multi-core-system-does-not-run-correctly-in-the-ccs-debugger

器件型号:CODECOMPOSER

我正在使用 Code Composer Studio 12来测试 AM263-LP Launchpad 上的一些代码。 我在每个内核上运行了几个简单的项目。 系统将 NULL 引导加载程序加载为 SBL。 我的项目在 Cortex_R5_2和 Cortex_R5_3上运行、让我们将它们称为项目 A 和 B。如果我只将项目 A 下载到 R5_2、代码将运行、我可以在调试器中单步执行。 循环通电、将项目作为系统项目一起下载、并且两个项目似乎都已加载。 项目 A 显示它位于 main()的开头。 如果我尝试单步执行,甚至是汇编步进,程序会立即跳到 main()的退出。  

暂停时、程序位于_vectors + 4。

此时项目 B 可以正常运行。 如果我重启电源并重试、仅加载项目 A、则项目可以加载并正常运行。

我该怎么做才能使这两个项目在我的系统项目中运行?

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

    您好 Todd、

    我将对此进行研究、并很快与您联系。

    此致、
    弗兰克

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

    您好 Todd、

    很抱歉耽误你的回答。

    MCU+ Academy 中的系统项目介绍如下: https://dev.ti.com/tirex/explore/content/mcu_plus_academy_am263x_01_00_00_00/modules/multicore_application.html#introduction

    我目前无法访问 AM263x LP、因此我尝试了 AM263x CC 上的一些实验。

    我根据以下指令在 AM263x CC 上刷新了 SBL NULL: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/08_03_01_06/exports/docs/api_guide_am263x/ADDITIONAL_DETAILS_PAGE.html#autotoc_md39

    我根据 MCU+系统项目简介创建了一个系统项目。

    我根据以下内容创建了目标配置(.ccxml): https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/08_03_01_06/exports/docs/api_guide_am263x/CCS_SETUP_PAGE.html#autotoc_md20。 接下来、我删除了对目标配置中 GEL 文件的引用、因为 SBL NULL 处理 SOC 配置。 最后、我将此目标配置设置为默认目标配置。

    在系统工程中、我能够按如下方式映射"empty" R5F 工程:

    empty_am263x-cc_r5fss0-0_nortos_ti-arm-clang 内核 empty_am263x-cc_r5fss0-1_nortos_ti-arm-clang 内核
    R5_1 R5_2
    R5_1 R5_3
    R5_3 R5_4

    在所有情况下、我都可以通过点击 CCS 中的"Debug"按钮来启动系统项目。 代码已正确加载到两个内核、并且我能够单步执行代码。

    我已附加了几个目标配置文件:

    您能否尝试类似的实验、看看是否会有所不同?

    此致、
    弗兰克

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

    您好 Frank、您描述的步骤与我之前采取的步骤相匹配、减去一个细节。 我没有按照您的描述删除 GEL 文件。 我不记得在文档中看到过这种情况。  

    我创建了新的目标配置并删除了 GEL 文件。 我将该配置设置为默认配置。 使用此新配置、我在加载文件时出错:

    Cortex_R5_1:写入长度0x40第0页上的0x0处的存储器块时遇到问题:该驱动程序不支持该操作
    Cortex_R5_1:文件加载器:验证失败:目标写入0x00000000失败
    Cortex_R5_1:GEL:文件:C:\Users\Todd.bubar\workspace\am263_evaluation\Mets_project\empty_am263x-lp_r5fs0-0_nortos_ti-arm-clang\Debug\empty_am263x-lp_r5fs0-0_nortos_ti-arm-load.clang:失败。

    如果您有任何建议、请告诉我。

    谢谢、

    Todd

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

    您好 Todd、

    我将在 AM263x LP 上运行实验、并与您一起返回。 这是我计划测试的配置:

    • SDK 08.03.01.06
    • CCS 12.

    您能否共享一个不适合您的示例系统项目?

    此致、
    弗兰克

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

    您好、Frank、我对示例项目没有任何问题。 不起作用的项目是我自己的项目。 与您分享的最佳方式是什么? 我不愿意在公共论坛上发布该代码。

    谢谢、

    Todd

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

    您好 Todd、

    如果您向我发送了一个朋友请求、您可以在私人对话中向我发送示例代码。

    您使用什么引导模式?

    此致、
    弗兰克

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

    SDK、QSPI 模式中包含预构建的 NULL 引导加载程序。

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

    Todd、

    感谢您分享您的代码、我将介绍一下。

    此致、
    弗兰克

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

    您好 Todd、

    我能够使用加载 R5_2和 R5_3的系统项目重现问题。 独立加载时、R5_2映像正常工作。  但是、当使用系统工程时、R5_2映像跳转到程序退出。 在以下屏幕捕获中,main()中的第一条指令分支到0x70054c94,这是从 main 返回的值。

    在本测试中、我使用了:

    • 相同的 SDK 和工具版本
    • SBL NULL 引导

    无论是否使用 GEL 文件、都会出现问题。

    我将继续处理此问题、并随时向您发送相关信息。

    此致、
    弗兰克

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

    您好 Todd、

    我发现 R5_2和 R5_3映像在链接器命令文件中具有相同的 OCRAM 定义。 我更新了 R5_3链接器命令文件(见下面的附件)、现在可以正常工作。 您能否检查它是否适合您?

    此致、
    弗兰克

    e2e.ti.com/.../linker.cmd