How to check if the SPC5603B reads the Data Flash Array exception?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to check if the SPC5603B reads the Data Flash Array exception?

Jump to solution
1,209 Views
chenyu1
Contributor I

    Customer feedback 15 sets of products using SPC5603B can not be started by CAN wake-up, re-burning but the fault still exists.
    Use PE to debug the faulty board chip, the program can be downloaded successfully, the debug initialization code is normal, but run to FSL_FlashRead64(); this function, to read Data Flash Array 3, finds that the data cannot be read, and the address is indexed by the pointer. Skip to the next step and then program fleet.
    The customer reads dataflash to confirm the contents of the dataflash when initializing the configuration of the analog EEPROM. The customer said that there has been a similar situation before, but after programming the SPC5603B software of other products, the program function of the current project is restored to normal.

    How can I investigate this situation, thank you!微信图片_20190807203045.png

0 Kudos
1 Solution
1,080 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

it seems there's double bit ECC error in the data flash which leads to bus error. IVOR1 or IVOR2 exception is triggered in this case depending on state of MSR[EE] and MSR[ME] bits.

So, the question is: do you handle these exceptions appropriately? If you use data flash as EEPROM, it's a must because unexpected reset or power down can terminate program/erase operation, so the flash is left in undetermined state. 

More details can be found in this application note:

https://www.nxp.com/docs/en/application-note/AN5200.pdf 

https://www.nxp.com/docs/en/application-note-software/AN5200SW.zip 

Regards,

Lukas

View solution in original post

0 Kudos
6 Replies
1,081 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

it seems there's double bit ECC error in the data flash which leads to bus error. IVOR1 or IVOR2 exception is triggered in this case depending on state of MSR[EE] and MSR[ME] bits.

So, the question is: do you handle these exceptions appropriately? If you use data flash as EEPROM, it's a must because unexpected reset or power down can terminate program/erase operation, so the flash is left in undetermined state. 

More details can be found in this application note:

https://www.nxp.com/docs/en/application-note/AN5200.pdf 

https://www.nxp.com/docs/en/application-note-software/AN5200SW.zip 

Regards,

Lukas

0 Kudos
1,080 Views
chenyu1
Contributor I

When ECC is detected, will it generate an interrupt and then call the exception handler?

0 Kudos
1,080 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

in case of double bit ECC error, Machine check is triggered first because it has higher priority. If you have enabled reporting of ECC errors in ECSM module then interrupt will be triggered after Machine check.

Regards,

Lukas

0 Kudos
1,080 Views
chenyu1
Contributor I

Hi Lukas,

I found that if I can run the Data_Storage_Exception_handler function, the program can be successfully initialized. The current problem is that I can't run this function when the MCU is initialized incorrectly.

1.jpg

2.jpg

2.According to the routine provided by AN5200SW Example_5_MPC5675K-2b_RAM+2b_FLASH_ECC_error_injection-CW210 is applicable to SPC5603B Err Report?

pastedImage_4.png

3.Customer feedback After burning the program with other models, and then burning into the target program, there will be no dataflash read failure. At present, they want to burn the program of other cars before burning the target file. Is there a risk of potential failure in this mass production?

0 Kudos
1,080 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

1. and 2.: Closest option to MPC5603B is this example:

Example_1_MPC5634M_2b_RAM_ECC_error_injection-CW210\MPC5634M_2b_RAM_ECC_error_injection-CW210

The reason is described in this note from AN5200:

pastedImage_1.png

3. I don't understand this question. What you need to ensure is that you can't program flash which is not erased. Or in other words - if a double word (64bits) which you need to program is not erased, you have to erase corresponding block.

Regards,

Lukas

0 Kudos
1,080 Views
chenyu1
Contributor I

Hi Lukas,

      At present, the client's software has been modified. When an ECC interrupt is generated, the Data_Storage_Exception_handler program can be processed normally.
      In addition, please ask, when are the three functions marked by the red line in the figure, especially when the RAM is abnormal, which function is called?

pastedImage_1.png

0 Kudos