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.
您好, 我使用28377d 设计了一个新的电路板,但在 RAM 模式下,两个 CPU 加载程序成功,而在闪存模式下,只有 CPU1加载程序正常,加载程序到 CPU2有一些错误。错误如下所示:, 我的原理图也附在下面:
e2e.ti.com/.../28377_3868C35F7F679F530674FE56_.pdfthanks。我确实使用 CCS 加载我的代码。
但是、一个项目只能生成一个.out、我有另一个开发板、也使用了28377d 芯片、可以将相同的.out 文件下载到两个 CPU、我上传了原理图、您能帮我比较一下我自己 的原理图吗??我的设计是否有错误
感谢您的回复、
我确定我的器件只连接到 XDS-200仿真 器、没有其他信号连接到我的 JTAG 引脚、我将上传我的 JTAG 原理图。
我已经在 RAM 模式下在 CPU2上运行程序了。请按照您的建议、首先从 RAM 运行项目 IPC_GPIO_toggle\cpu02、并且两个 CPU 正常工作。但是当我尝试在闪存上运行时、会出现相同的错误。此外、 我尝试仅在 CPU2上运行、也有错误、并且经验表明、在将程序加载到 CPU2之前必须在 CPU1上运行。 我将列出错误。
您好、Tianyi、
请尝试以下 E2E 前文中的建议:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/397002
您可以尝试以下步骤吗? 我刚才删除了将代码加载到 CPU1的步骤。 我想确保 CPU1未断开连接。 您之前发送的屏幕截图显示您正在断开 CPU1。
1) 1)从 Target configurations 窗口启动目标配置(View -> Target Configurations ->右键点击 F28377D CCXML -> Launch Selected configuration)
2)连接到 CPU1、然后连接到 CPU2 (在调试窗口中、选择 C28xx_CPU1、右键单击->连接目标。 对 C28xx_CPU2执行相同的操作)。
3) 3)复位 CPU1、然后复位 CPU2 (选择 C28xx_CPU1、然后在调试窗口菜单->运行->复位-> CPU 复位。 为 C28xx_CPU2执行此操作)
4)在 CPU2中加载代码(选择 C28xx_CPU2、然后在调试窗口菜单中单击"Run"-> Load -> Load program、然后选择要加载到 CPU2的.out 文件)
最棒的
Kevin
您好、Tianyi、
我不会注意到您的 JTAG 原理图有任何特别错误。 也许在 R65上放置一个0欧姆电阻器而不是100欧姆会有所帮助。 这是我在比较您的原理图和我们的参考设计时唯一能想到的东西。
最棒的
Kevin
e2e.ti.com/.../DSP.pdfe2e.ti.com/.../4722.dsp_5F00_config.pdfHiKevin、
我28377核心板原理图 了两块电路板、电路板与".pdf"匹配是我从其他人那里购买的、并且在加载 CPU1和 CPU2时工作正常(不仅按照您的步骤工作、而且使用 "调试"按钮工作)、电路板有我 想要的错误。
我确实确保在对 CPU2进行编程时、CPU1已连接并停止。
我将上传整个28377d 器件、即下面的两个.pdf、您能帮助我检查导致此问题的原因吗? 我发现28377d 芯片中的 WE 引脚未连接到闪存、您认为这可能会产生一些影响吗?(虽然我可以在闪存模式下将程序加载到 CPU1、但这是为什么?)
谢谢、祝您一切顺利、
天一
天一、
当您对闪存进行编程时、您将写入内部 F28377d 闪存、而不是外部闪存或 SDRAM。 原理图中的外部 SDRAM 和闪存使用 f28377d's EMIF (外部存储器接口)外设连接、该外设在编程前未初始化。 可以在应用程序中写入外部闪存和 SDRAM、但这不应是 f28377d 程序的存储位置。
如果检查链接器命令文件中的地址、您可以看到程序存储在存储器中的位置。 它们应该是器件存储器地址。
引导模式根据某些引脚的状态进行设置。 请参阅下表并尝试"获取模式"以外的引导模式:
最棒的
Kevin
尊敬的 Kevin:
我已经检查了 TRST 是否为低电平、因此模式是 EMU 引导模式。 因此、无论我的 gpio84和 gpio72是低电平还是高电平、都不会导致任何结果。但我发现当 gpio84和72是高电平时、我必须首先对 CPU1进行编程、然后运行它并暂停、 我可以对 CPU2进行编程、如果不运行、则对 CPU2进行编程会导致上面所述的错误。当 gpio84和72为低电平时、其操作与之相同、是高电平、CCS 会指向可能处于低功耗模式的位置。
我想知道为什么我必须在 CPU1中运行程序并在对 CPU2进行编程之前暂停它? 在 EMU 引导模式下、为什么 gpio84和72都是低功耗导致的低功耗模式?
最棒的
天一
天一、
在对 CPU2进行编程之前、应暂停/暂停 CPU1、这是正确的行为。
使用 GetMode 时、我很困惑您的编程方式。 在此模式下、您应该根本无法连接到器件、除非您更改了 GetMode 的 OTP 配置、但即使这样、我仍然认为您无法连接。
查看多日技术讲座的"双核处理器间通信"部分、可以帮助您更好地了解双核编程。
最棒的
Kevin