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.
我有一块板上有tms320f2.8377万d。 它是自己的主板,而不是TI提供的主板。
我编写了一个简单的程序:CPU1从闪存运行,进行初始化,使用IPCBootCPU2 (C1C2_Brom_bootmode_boot_fove_flash)使CPU2退出重置,并在一段时间内切换GPIO。
CPU2从闪存运行,并在一段时间内切换第二个GPIO。
我使用这些GPIO在示波器上查看我的代码是否正常工作。
打开主板电源时,CPU1和CPU2按预期工作。 但我有一些问题:
1.如果我使用调试器(xds220 iso)连接到CPU1,并运行其代码CPU2不起作用(但我不连接到CPU2)。 “IPCBootCPU2(C1C2_Brom_bootmode_boot_fby_flash)”功能不能帮助使CPU2退出重置。 如果CPU2从闪存运行而没有连接,我是否可以从RAM调试CPU1?
2.函数“IPCBootCPU2(C1C2_Brom_bootmode_boot_fRO_RAM)”有什么作用,如何使用它? 如果我连接到CPU2并将程序加载到其RAM,我可以手动运行它,这样我就不会找到参数为“C1C2_Brom_bootmode_boot_fRO_RAM”的函数“IPCBootCPU2”的方案。
您好,
[引述] 1. 如果我使用调试器(xds220 ISO)连接到CPU1,并运行其代码CPU2不起作用(但我不连接到CPU2)。 “IPCBootCPU2(C1C2_Brom_bootmode_boot_fby_flash)”功能不能帮助使CPU2退出重置。 如果CPU2从闪存运行而没有连接,我是否可以从RAM调试CPU1? [/引述]
是的,您应该能够从RAM运行CPU1,从闪存运行CPU2。 在此情况下,CPU1代码是否正常运行?
[引述] 2. “IPCBootCPU2(C1C2_Brom_bootmode_boot_fRO_RAM)”函数有什么作用,如何使用它? 如果我连接到CPU2并将程序加载到其RAM,我可以手动运行它,这样我就不会找到参数为“C1C2_Brom_bootmode_boot_fRO_RAM”的函数“IPCBootCPU2”的方案。 [/引述]
它允许CPU2从已加载代码的RAM引导。 如果用户已在RAM中加载代码,并且在CPU2重置后不想再次加载代码,则可以使用此代码。
此致,
Vivek Singh
[报价用户="Vivek Singh"]
是的,您应该能够从RAM运行CPU1,从闪存运行CPU2。 在此情况下,CPU1代码是否正常运行?
[/引述]
CPU1代码从RAM中正确运行,但它不会使CPU2退出重置功能"IPCBootCPU2 (C1C2_Brom_bootmode_boot_fove_flash)",我在从闪存工作时使用该功能(并且它工作正常)。
我编程了CPU2闪存并断开连接。 然后我连接到CPU1,将程序加载到其RAM并运行,但CPU2代码不起作用。 我做错了什么?
您好,
[报价]我编程了CPU2闪存并断开连接。 然后我连接到CPU1,将程序加载到其RAM并运行,但CPU2代码不起作用。 我做错了什么? [/引述]
在断开CPU2之前,是否可以重置CPU2,然后断开? 基本上,将代码加载到CPU2上,重置代码,然后将其断开。
Vivek Singh
[报价用户="Vivek Singh"]
基本上,将代码加载到CPU2上,重置代码,然后将其断开。
[/引述]
如果我执行此 序列,我将获得(IpcRegs.IPCBOOTSTS ==0)和无限循环
while (bootStatus != C2_BootROM_BOOTSTS_SYSTEM_READY_));
在函数"IPCBootCPU2"中。
如果我只连接到CPU1并从RAM功能运行程序,"IPCBootCPU2"将结束,没有错误或我可以检测到的问题,但CPU2将不工作(CPU2代码在打开主板电源之前编程到闪存中)。
[报价用户="Vivek Singh"]
好的,CPU1被卡住了,但在这种情况下CPU2是否工作正常? 对于CPU1,您如何运行代码? 您是否正在初始化RAM引导的位置0xD00,然后在加载代码后执行"reset",然后执行"run"?
通常,应在独立模式或调试模式下运行两个CPU,因为CPU2不应在CPU1之前运行。 在这种情况下,当CPU1处于RESET (重置)状态时,CPU2开始运行,因此有点棘手。
[/引述]
我尝试了很多东西,但在调试会话中CPU2不管怎样都不起作用,如果CPU1尝试从闪存启动它。
示例我做什么(步骤):
CPU2不工作。
如果我连接到它,我会看到:
我尝试更改EMU_KEY和EMU_BMODE,重置和运行CPU,以不同的组合连接/断开它们,但CPU2不想从闪存工作。 也许我漏掉了一些重要 的东西或在思考错误...
[引述]我理解如下:在CPU2 WD重置后,我不需要再次使用"IPCBootCPU2"程序,但如果没有此 操作,CPU2将不起作用。 我需要启用NMI中断,并且需要通过 "IPCBootCPU2"过程启动CPU2,对吗? 那么,在CPU2.WDRS之后,CPU2未保持在"重置"中意味着什么? [/引述]
CPU1具有重置位,用于重置CPU2。 开机时,CPU1需要释放CPU2,使其脱离重置。 在CPU2 WD复位的情况下,此位不会进行复位,因此CPU2将退出复位,CPU2将执行引导ROM代码,使CPU2处于空闲状态(如正常启动)。 CPU1需要向 CPU2发送引导命令以跳至闪存中的应用程序,为此,您需要在CPU1上具有NMI处理程序。 如果您不想这样做,则可以对"ZX.BOOTCTRL.OT_BMODE"进行编程
== flash boot",这样每次重置后,CPU2将引导至闪存,而无需等待CPU1发出引导命令。
此致,
Vivek Singh