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.
您好!
IM 从 C2000Ware_3_02_00_00运行示例 F2837xD_USB_flash_kernels_cpu01、其中 controlCARD R1.3上的 RAM 具有双构建配置。 我没有做任何更改
我对奇怪的行为感到惊讶。
当我运行之前的示例 USB_ex4_dev_bulk 时、然后在不关闭电源的情况下并且不断开 USB 电缆的情况下、我启动 F2837xD_USB_flash_kernels_cpu01、然后看到"TMS320F2837xD USB Boot Loader "、它可以正常工作
(我确保应用程序正在使用命令字段
usb_flash_programr.exe app_cpu1.dat kern_cpu2.dat app_cpu2.dat)
但是、当我在清理 RAM 后引导 F2837xD_USB_FLASH_kernels_cpu01并且未检测到非活动 CPU 器件"未知器件"时
它甚至不依赖于主机。 当我使用外部电源(不是来自 USB)重复实验时、也是如此、并在启动应用程序后插入电源线。
预加载和运行通用批量器件的操作以及更改、之后开始检测器件"TMS320F2837xD USB 引导加载程序"。
需要更改哪些内容才能在不进行此预加载的情况下完成工作。
我的最终目标是将 F2837xD_USB_FLASH_kernels_cpu01移植到闪存并创建引导加载程序。
此致
我认为我找到了原因。 这些是注释行
ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 0x0; //使用 INTOSC2 (~10MHz)
和
ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 0x1;
我未对其进行注释、该示例开始运行。
但现在只有在第二次运行 main ()(CCS 调试会话中的"Restart")后才会检测到器件。 当您在关闭电源后首次启动时、根本未检测到任何设备。 主机 PC 根本无法检测到连接。 如果您告诉我原因、我将不胜感激。 我计划检查寄存器。
您好,
代码是从 RAM 运行还是从闪存运行? 看起来代码是从 RAM 运行的,因为在关闭/打开电源后,代码不起作用/不执行。
此致
Siddharth
我很抱歉。 我说得不正确。
1) 1)关闭电源并打开
2) 2)将代码下载到 RAM
3) 3)运行代码
不管用! (PC 根本无法检测到器件)
4) 4)在此调试会话中重新启动代码
它正在工作! (正确检测到设备)
为什么第一次可能不起作用(3)、第二次工作(4)。
我认为我找到了解决问题的方法。 如果在 USB_Boot.c 的时钟配置中添加延迟
ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 0x1;
对于(x = 0;x < 32767;x++)
{
asm (" NOP");
asm (" NOP");
}
ClkCfgRegs.AUXPLLULT.ALL = 6;
如果通过代码添加此延迟或通过代码添加此延迟、则示例不起作用。 但我想知道为什么需要延迟。
我没有对代码进行任何其他更改。 这是我的 USB_Boot.c
/cfs-file/__key/communityserver-discussions-components-files/171/5670.USB_5F00_Boot.c
您好!
很高兴您能够解决此问题。
此致
Siddharth