工具/软件:
您好:
我们正在检查我们的产品中不能正常工作的样品。
我们通过转储闪存来进行检查、看看闪存是否损坏、代码区域是正常的。
然而、0x1E000 的前 4 个字节(标头) 为 00 00 00 00、0x1D000 的前 4 个字节为 FF FF FF FF FF FF。
我们能否假定 SNV 面积在此基础上被破坏? (在正常样本中,其中一个是 00 00 01 00)


谢谢、
卡尔文
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.
工具/软件:
您好:
我们正在检查我们的产品中不能正常工作的样品。
我们通过转储闪存来进行检查、看看闪存是否损坏、代码区域是正常的。
然而、0x1E000 的前 4 个字节(标头) 为 00 00 00 00、0x1D000 的前 4 个字节为 FF FF FF FF FF FF。
我们能否假定 SNV 面积在此基础上被破坏? (在正常样本中,其中一个是 00 00 01 00)


谢谢、
卡尔文
您好、 Maxence、
以下是 r/w 到 SNV 的代码。
uint8_t Flash_ReadSNV(osalSnvId_t id, osalSnvLen_t len, void *pBuf)
{
uint8_t errCount = 0;
uint8_t status = FAILURE;
while(errCount < FLASH_MAX_RETRY_COUNT)
{
status = osal_snv_read(id, len, pBuf);
if(status != SUCCESS)
{
errCount++;
Task_sleep(1000); // 10ms
}
else
{
break;
}
}
return status;
}
uint8_t Flash_WriteSNV(osalSnvId_t id, osalSnvLen_t len, void *pBuf)
{
uint8_t errCount = 0;
uint8_t status = FAILURE;
while(errCount < FLASH_MAX_RETRY_COUNT)
{
status = osal_snv_write(id, len, pBuf);
if(status != SUCCESS)
{
errCount++;
Task_sleep(1000); // 10ms
}
else
{
break;
}
}
return status;
}
我想这个问题是因为在写入 tor SNV 时由于 ESD 或其他原因而复位的。
无论如何、前 4 个字节是 00 00 00 00 是否正常?
谢谢、
卡尔文