您好!
我正在 Windows 上的非 RTOS 裸机系统上使用 AM64x (TMDS64EVM)板。
我使用这块板已经有一段时间了、它是实用的。 但是、在尝试调整 GPMC 的时钟时、 我更改了寄存器 PLL0_HSDIV_CTRL3。 执行 此操作后、似乎有某种因素阻止 我对板进行编程。
我已经尝试过不同的方式。
- 在 DEV_BOOT_MODE 上、执行 load_dmsc_hsfs.js。 当尝试加载 sciclient_ccs_init.release.out (该文件包括 HS-FS 器件的电路板配置和 SYSFw)时、此操作会失败。
MAIN_Cortex_R5_0_0: Trouble Writing Memory Block at 0x0 on Page 0 of Length 0x40: (Error -1065 @ 0x40) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.10.0.00080) MAIN_Cortex_R5_0_0: File Loader: Verification failed: Target failed to write 0x00000000 MAIN_Cortex_R5_0_0: GEL: File: C:/ti/mcu_plus_sdk_am64x_08_05_00_24/tools/ccs_load/am64x/sciclient_ccs_init.release.out: Load failed.
- 我将其置于 uart_boot_mode、并尝试对引导加载程序和应用程序进行编程(我以前是这样做的、现在可以正常工作)。 它可以对引导加载程序进行编程、但无法对应用程序进行编程。
因此在我看来、在两种情况下、当我们加载 DMSC SYSFW 并且 M3的 ROM 代码执行完整性检查时、似乎都出现了问题。 基于 Am64x TRM 版本2的以下照片。
我不知道是否正确、但我的假设是:
可能是通过更改 PLL 寄存器、 在闪存上根据该条件计算出了一个 ECC、然后当它尝试加载 M3固件(集成到 bootloader/boardcfg 中)时、它与写入闪存的完整性值不匹配。
由于我能够加载引导加载程序、而不能加载应用程序、而且该程序说完整性检查失败、 由于复位电路板应该将寄存器复位为其默认值、但问题仍然存在、我猜存在与写入闪存的 DMSC 固件完整性检查相关的 ECC 问题。
我想知道的是发生该问题的确切原因、以及如何使我的板再次正常运行。 比如后门或重置?
另外、加载引导加载程序后、我能够在控制台上看到显示不同内核频率的消息。 因此、我的板仍能正常运行。 但某种因素导致我无法对应用进行编程。
谢谢。
博什拉