TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL2-RM57L: 芯片写内部flash时数据出现乱码?

Part Number:LAUNCHXL2-RM57LOther Parts Discussed in Thread:RM57L843

使用RM57L843开发板读写内部flash时,发现写入的数据会出现错误

比如我全写35,但有些地址上的数据会出现错误

写内部flash的代码如下:

void Internal_FLASH_write(uint32 addr, uint8* buff, uint8 len)
{
Fapi_StatusType oReturnCheck = Fapi_Status_Success;
oReturnCheck = Fapi_initializeFlashBanks(180);
if((oReturnCheck == Fapi_Status_Success) && (FLASH_CONTROL_REGISTER->FmStat.FMSTAT_BITS.BUSY != Fapi_Status_FsmBusy))
{

if( (addr >= 0x00000000) &&(addr <= 0x003FFFFF) )
{
if(addr <= 0x003FFFFF)
oReturnCheck = Fapi_setActiveFlashBank(Fapi_FlashBank0);
else
oReturnCheck = Fapi_setActiveFlashBank(Fapi_FlashBank1);
oReturnCheck = Fapi_enableMainBankSectors(0xffff);
}
else if( (addr >= 0xF0200000 ) && (addr<= 0xF021FFFF))
{
oReturnCheck = Fapi_setActiveFlashBank(Fapi_FlashBank7);
oReturnCheck = Fapi_enableEepromBankSectors(0xffffffff ,0xffffffff);
}
while(FLASH_CONTROL_REGISTER->FmStat.FMSTAT_BITS.BUSY == Fapi_Status_FsmBusy);
oReturnCheck = Fapi_issueProgrammingCommand((uint32_t*)(addr), buff, len, 0, 0, Fapi_AutoEccGeneration);
/* Place specific example code here */
/* Wait for FSM to finish */
while(FLASH_CONTROL_REGISTER->FmStat.FMSTAT_BITS.BUSY == Fapi_Status_FsmBusy);
}
}

我的工程如下Internal flash.zip

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

Cherry Zhou:

您好,如果您在将数据写入闪存的时候计算和编程 ECC,存储器窗口是会正确显示数据的。 如果您没有对 ECC 进行编程,内存浏览器窗口中会显示错误数据。

同时我们发现您对闪存进行编程时会生成 ECC。 RM57 支持高达 330MHz 的 CPU 频率,系统时钟为 165MHz。 您为什么在代码中使用 180MHz :oReturnCheck = Fapi_initializeFlashBanks(180);

,

fengaov:

官方的bootloader例程中有操作内部flash的功能,我在该例程中已经验证了该功能

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL2-RM57L: 芯片写内部flash时数据出现乱码?
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1