工具/软件:
您好:
我们正在检查我们的产品中不能正常工作的样品。
我们通过转储闪存来进行检查、看看闪存是否损坏、代码区域是正常的。
然而、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 是否正常?
谢谢、
卡尔文