主题中讨论的其他器件: HALCOGEN
您好!
我正在尝试将正在工作的 RM48引导加载程序代码移植到 TMS570LC4357。 引导加载程序使用 QJ Wang 的 BL_FLASH.c、BL_YMODE.c 等文件通过 UART 下载文件并将其写入闪存。 对于 TMS570LC4357、我将使用 F021库 F021_API_CortexR4_BE_L2FMC_V3D16.lib。 我已验证 Registers.h 是否包含 Registers_FMC_Be.h (大端模式)。 库和 BL_FLASH、BL_Ymodem 等对象在引导时进行重定位并在 RAM 之外执行。 从 RAM 执行操作正常。
引导加载程序尝试下载一个文件并将其编程为闪存、从组0扇区4 =闪存地址0x20000开始。 此代码在 RM48 HDK 上运行正常、但在 TMS570LC43x HDK 电路板上不运行。
当我运行代码并下载一个文件时,Fapi_initiataleFlashBankks()、Fapi_setActiveFlashBank()、Fapi_enableMainBankSectors ()和 Fapi_issueWithCommandAddress()执行并返回成功代码。 以下 while 循环检查 FSM readyBusy 和状态会按预期执行并完成。
while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
while (fapi_get_FSM_status!= fapi_Status_Success);
但是对 Flash_Erase_Check()的调用失败。 CCS 调试器存储器窗口显示了许多从0x20000位置开始的字、这些字并不是全部为0xFFFFFFFF。 我读取了一个包含 ECC 的帖子,所以我在调用 Fapi_initiatizeFlashBanks()后尝试调用了 Fapi_disableAutoEccCalculation ()。 但这对问题没有帮助。
在执行擦除操作后、我附加了一个调试器存储器窗口的屏幕截图、其中显示了未擦除的存储器。 我还附上了稍作修改的文件 BL_FLASH.C. 我的更改通过标签//KRB 指示
擦除570LC4357上的闪存需要什么?
谢谢、
Keith