Tool/software: Code Composer Studio
Suddenly, the following dflash area was rewritten to 0xffffffff all over.
00018880 _pmbus_dcdc_cal_constants
0001888c _pmbus_dcdc_cal_nonpaged_constants
00018890 _pmbus_dcdc_config_constants
000188d0 _pmbus_dcdc_config_nonpaged_constants
00018900 _pmbus_checksum
I am sure parameters are not rewritten in Fusion digital power studio.
I doubt start_erase_task() in flash.c erase dflash area, because it is the only code, I can find, to erase the entire dflash area.
start_erase_task() is called the following if clause.
if ((checksum! = pmbus_checksum) && (pmbus_checksum! = 0x87654321))
I think (checksum! = pmbus_checksum) is always true and (pmbus_checksum! = 0x87654321) is usually false. So I think (pmbus_checksum! = 0x87654321) becomes ture.
Is it possible pmbus_checksum is broken by noise or misread pmbus_checksum?