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.
工具/软件:Code Composer Studio
您好!
我有一个双核 f28388项目、其中一个项目用于 CM、另一个项目用于 CPU2。 每个内核从闪存执行。 我最近添加了一个 CPU2项目(也从闪存执行)、并且遇到了问题。 在 CCS 中加载 CPU2的行为似乎会导致 RAMGS 中的初始化数据损坏。 初始化的数据来自 CPU1 .out 文件。 CPU2 .out 文件没有对正在损坏的 RAMGS 区域的引用。
此问题似乎与"CCS/TMS320F28377D:CPU2 *。OUT 负载破坏 CPU1使用的 RAM "问题相同。 我按照类似的步骤来证明(或至少强烈建议)、是加载/启动 CPU2的过程导致了问题、而不是运行问题。 此外、如果我分离 CCS 并对电路板(即28388D 控制卡)进行下电上电、则它可以正常启动和运行、并且 RAM GS 的问题区域也可以。
我尝试按照"CCS/TMS320F28377D:CPU2 *。out 加载会破坏 CPU1使用的 RAM "中提供的解决方案进行操作、但它没有帮助。 CCS 加载项目后、所有项目都在"codestart"部分停止、内存仍然损坏。
位置0xD2AE-0xD2C7以及0xD10A 左右。 还有更多、这些只是我注意到的那些。
感谢您的任何帮助!
此致、
镍氢电池
您好!
我想更正前一个帖子:第一句话应该说:
我有一个双核 f28388项目、其中一个项目用于 CM、另一个项目用于 CPU1。
(换句话说、CM 和 CPU1在 CPU2出现之前一直保持快乐。)
此外、我还在 Windows 10上使用 CCS 10.1.0.00010。
此致、
镍氢电池
您好、Nik、
[引用] 我最近添加了一个 CPU2项目(也从闪存执行)、我遇到了问题。 在 CCS 中加载 CPU2的行为似乎会导致 RAMGS 中的初始化数据损坏。 初始化的数据来自 CPU1 .out 文件。 CPU2 .out 文件没有对正在损坏的 RAMGS 区域的引用。 [/报价]
如果要在闪存中加载代码、则闪存插件使用 GSx RAM 加载 API、因此将覆盖 GSx RAM 中的值。 在 CPU2中加载代码之前、不应在 GSX RAM 中包含任何应用程序数据/代码。
此致、
Vivek Singh
您好、Vivek、
感谢您的快速、清晰的回答。
加载 CPU1也会执行相同的操作、因此、如果我的 CPU2程序在 GSx RAM 中具有初始化数据、我将面临类似的问题吗?
我提出的原因是、我正在尝试可视化一个工作流、以便使用所有三个内核启动调试器。 目前、我有一个调试配置(TMS320F28388D.CCXML)、可加载全部三个内核、这在理论上是很好的、因为单击小错误图标即可设置调试环境。
现在、我想我必须执行几个步骤-启动调试配置、加载我重建.out 文件的任何内核、在其他内核上加载符号、然后重新启动所有这三个内核。 这听起来是否是最简单的可行序列?
再次感谢您的帮助。
镍氢电池
您好、Nik、
[引用] 加载 CPU1也会执行相同的操作、因此、如果我的 CPU2程序在 GSx RAM 中具有初始化数据、我将面临类似的问题吗? [/报价]
没错。 您是否也在闪存和 GSx RAM 中加载代码? 如果是、则应避免这种情况、因为当您独立运行(没有 CCS)时、这将不起作用。 否则、只需确保不在应用程序中初始化 GSx RAM、即可加载所有内核。 您可以进行 VIS IPC 握手。
此致、
Vivek Singh
您好、Vivek、
GSx RAM 中没有代码、只是初始化数据。 我理解您的说法。 我不知道如何继续、但问题在于__TI_cinit_copy_table 是由 run_cinit()在程序中处理的、我只需确保在闪存插件上次运行后运行。 正如您所说的、IPC 握手也是协调两个内核的好方法。
在任何情况下、根据您的建议、我现在都能够可靠地将调试器与所有三个内核配合使用。
感谢你的帮助。
此致、
镍氢电池