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.

[参考译文] DM385:从 SD 或 UART 引导自定义 DM385板时遇到问题

Guru**** 2562940 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/595209/dm385-having-trouble-getting-custom-dm385-board-to-boot-from-sd-or-uart

器件型号:DM385

大家好、

我们将推出一款具有 DM385处理器的新定制板。  

我们无法通过 SD 卡引导电路板。  设备似乎挂起。  我们使用的 nSketch CBB 评估板将从相同的 SD 卡引导。  我们可以在 SD 卡线路上看到活动、但 uboot 从不向控制台输出任何内容。

我们也无法通过 UART 进行编程。   我们获得了“CCCCC”,并通过 xmodem 发送二进制文件。  之后、它似乎挂起。  同样的操作在 nSketch 评估板上启动 uboot。

我们可以通过 JTAG 访问处理器。  我使用的是 code composer v5.5。  我没有找到 DM385的任何示例代码、例如测试 RAM、输出到 UART 等  DM385是否有任何代码编写器项目?

 通过 JTAG、我发现当程序通过 UART 加载且处理器似乎挂起时、它处于循环中。

00020080:  EAFFFFE B              0x20080

我尝试了 nSketch CBB 软件附带的一些 GEL 文件初始化脚本。  尝试重置 HDVICP 时、似乎挂起。  我们已验证 HDVICP 为1.2V、HDVICP PLL 为1.8V。

GEL 文件初始化在下面突出显示的位置挂起。  我添加了一些调试打印。

 

CortexA8:输出:  DualatSS 的 PRCM 已成功完成*****

CortexA8:输出:  用户可以连接到 Ducati M3...

CortexA8:输出:  IVHD0的 PRCM 正在进行中,请稍候...  

CortexA8:输出:  PRCM 在检查电源后开启

CortexA8:输出:  PRCM 之前

CortexA8:输出:  gclk 后的 PRCM

无法评估 DM385_System_Initialization_test_device()。

 

      GEL_TextOut ("\tPRCM for IVHD0 is in progress,Please wait.....(IVHD0的 GEL_TextOut ("\tPRCM 正在进行中,请稍候...)。  \n"、"输出"、1、1、1);

      WR_MEM_32 (CM_IVAHD0_CLKSTCTRL,         2);/*启用电源域转换*/

       while (RD_MEM_32 (PM_IVAHD0_PWRSTST)!=0x37);     /*检查电源是否打开*/

      GEL_TextOut ("\tPRCM、检查电源是否打开、\n"、"输出"、1、1);

      WR_MEM_32 (CM_IVAHD0_IVAHD_CLKCTRL,     2);/*启用 IVHD0时钟*/

      WR_MEM_32 (CM_IVAHD0_SL2_CLKCTRL,2);/*启用 IVHD0 SL2时钟*/

 

      GEL_TextOut ("\tPRCM Before \n"、"输出"、1、1);

       while (((RD_MEM_32 (CM_IVAHD0_CLKSTCTRL)&0x100)!=0x100);/* IVAHD0_GCLK 为 ACTIVATE*/

      GEL_TextOut (gclk\n"、"输出"、1、1、1);

 

      WR_MEM_32 (RM_IVAHD0_RSTCTRL、    3);/*启用 IVHD0逻辑和 SL2 *

 

       while (RD_MEM_32 (RM_IVAHD0_RSTST)!= 4);

      GEL_TextOut (RSTST\n"、"输出"、1、1、1);

 

      WR_MEM_32 (0x58088000、0xEAFFFFFE);/*在 ICONT1 ITCM 0位置中编写自分支指令*/

 

      WR_MEM_32 (0x58098000、0xEAFFFFFE);/*在 ICONT2 ITCM 0位置中编写自分支指令*/

 

      WR_MEM_32 (RM_IVAHD0_RSTCTRL、    0);/*使 ICONT1和 ICONT2退出复位状态*/

 

       while (RD_MEM_32 (RM_IVAHD0_RSTST)!=7);/* ICONT1和 ICONT2超出复位范围*/

      GEL_TextOut (RSTST\n"、"输出"、1、1、1);

 

   GEL_TextOut ("\tPRCM for IVHD0 is duted successfully" 、"Output"、1、1);

   GEL_TextOut ("\t 用户可以连接到 IVHD0的 ICONT1和 ICONT2 \n"、"输出"、1、1);

  

RM_IVAHD0_RSTCTRL 为0x48180C10

 

RM_IVAHD0_RSTST  为0x48180C14

 

感谢您的任何帮助。

 谢谢!