CC1310芯片在压力冲击测试后正常,flash读写都正常,但是过了一段时间,0x18000扇区不能擦除和写入,查看ccfg,该扇区并未被保护。由于0x18000扇区设计时是作为数据区域的,故将数据区域移到其他空白flash地方(0x1C000),程序能正常运行。不知为何会突然出现该扇区无法擦除和写入,烦请大神解答一下。
Viki Shi:
可否多测试几片看看?CC1310的flash不应该这么容易损坏
jinghua chen1:
回复 Viki Shi:
由于该问题出现在成品产品中,其密封的,还未拆除,故不知道其真正损坏的原因,而且该现象在目前使用的100多个产品中只出现1列,故想问问有什么可能性会导致该问题的发生?
Viki Shi:
回复 jinghua chen1:
目前只能猜测是压力测试或者其他操作导致的flash损坏
jinghua chen1:
回复 Viki Shi:
拆开后单步调试,调用擦除程序,返回的错误代码为0x04,表示操作失败。
调用的擦除程序如下:
INT32U FlashSectorErase(INT32U ui32SectorAddress){INT32U ui32ErrorReturn; FlashSectorErasePointer_t FuncPointer;
// // Check the arguments. // ASSERT(ui32SectorAddress <= (FLASHMEM_BASE + FlashSizeGet() – FlashSectorSizeGet())); ASSERT((ui32SectorAddress & (FlashSectorSizeGet() – 1)) == 00);
// // Call ROM function // FuncPointer = (INT32U (*)(INT32U)) (ROM_API_FLASH_TABLE[5]); ui32ErrorReturn = FuncPointer(ui32SectorAddress);
// // Enable standby in flash bank since ROM function migth have disabled it // HWREGBITW(FLASH_BASE + FLASH_O_CFG, FLASH_CFG_DIS_STANDBY_BITN ) = 0;
// // Return status of operation. // return (ui32ErrorReturn);}
这是否意味着flash的这块扇区已经损坏?
da qin zheng sheng:
使用整片擦除,看看这个页面数据是啥?正常应该是0xff
Butterfly:
回复 jinghua chen1:
用SmartRF Flash Programmer2 的Forced Mass Erase能恢复吗?
jinghua chen1:
回复 Butterfly:
使用forced mass erase后,该芯片只能在仿真器连接,不能够再进行下载动作了,显示
>Initiate access to target: XDS-12345678A.
>Failed to read target memory.
>Error while reading memory range. Address 0x40091090.
>Debug interface is locked. Aborting action. Only forced mass erase is possible.
不过再此foced mass erase以后也没有用