Part Number: TMS320F280039C
Other Parts Discussed in Thread: TEST2
Hi Expert
Customer want to change one bit of MCU flash from 1 to 0, but meet some interesting test result, below are the background and issues:
Background: they want to change the GPIO0 set high configuration to GPIO0 set low in their customer boot code, so they change the code then build the firmware. The result is they find there is only one bit changes from 0x0201 to 0x0200, so they want to try whether they can use flash API in their APP code to change the flash directly to realize this modification.
So I do the below test with customer:
Test1: Change 0x0201 to 0x0200:
the flash API I call is:
Fapi_issueProgrammingCommand((uint32 *)0x825e3,&BufferIO,1, 0, 0, Fapi_DataOnly);
Step1: test the GPIO toggle without the Flash API modify the flash -- GPIO toggle normally
Step2: add the flash API Fapi_issueProgrammingCommand before GPIO toggle, rebuild the project.
Step3: the Flash data change can be observed, but when the assembly runs to the GPIO code, the GPIO still toggle as Step1 without any change.
Step4: Power cycle the board, connect the board to PC with XDS, load symbol through CCS, the GPIO code is confirmed to be changed to 0x0200, but the GPIO still toggle as Step1 without any change.
Test 2: Change 0x0201 to 0x0000:
Go through Step1-4, the device will report ECC issue and jump into illegal handler.
Test 3: Change 0x0201 to 0x0200 with ECC disable (tested by customer):
The test result is the same as test1. From my side, even I change ECC_Enable byteto 0xB it will return to 0xA when program run.
Test 4: Change 0x0201 to 0x0000 with ECC disable (tested by customer):
The test result is the same as test2. From my side, even I change ECC_Enable byte to 0xB it will return to 0xA when program run.
So base on the tests above, the questions are:
- is the ECC auto correction function makes the GPIO still toggle even the flash data is changed?
- why the ECC function and ECC error still be genrated by MCU while ECC is disabled manually?
Thanks
Joe

