AnsweredAssumed Answered

MPC5634M Flash erase Problem

Question asked by Dennis Yuan on Mar 2, 2017
Latest reply on Mar 7, 2017 by Dennis Yuan

Hi ,

There's  a problem about the MPC5634M Flash erase blocks in my MPC5634M project. I have integrated the SSD flash driver which is :Standard Software Driver v1.0.3 (xPC56xx_C90LC) in my code ,and the program running process is:  

(1)Firstly ,erase the block 2 (address ;0x00008000),then write 96 bytes from address 0x00008000 ,write success.

(2)secondly,erase the block 3 (address ;0x00010000),then write  from address 0x00010000 ,write success.

(3)I want to erase the block 2 (address ;0x00008000),and write 96 bytes from address 0x00008000 again   ,the erase result  seems is ok ,but I feel this erase operation is fail.

 

This fail case is : the return value of the Erase  function is C90FL_OK ,but actually the block 2 which I want to erase  is not erased . that means the last value still in the block 2. the all value didn't change to 0xFF .

 

I use the API is C-array FlashErase_C, which in the path : Freescale\Standard Software Driver v1.0.3\xPC56xx_C90LC\Driver\cw\vle\c-array_driver  ,and the call function like this :

and the debug register I can see the block is unlock correct :

 

 

after executed the erase operation ,the returnCode is C90FL_OK ,but in the flash block 2 ,the value didn't be erased.

so I have 4 question about this case :

1.whether the SSD C-array FlashErase_C which I used is right ? what's the difference in BookE and vle.

 

2.The parameter like shadowFlag, lowEnabledBlocks, midEnabledBlocks, highEnabledBlocks of the function ,is  it correct ?

pFlashErase( &ssdConfig, shadowFlag, lowEnabledBlocks, midEnabledBlocks, highEnabledBlocks, (tpfNullCallback)NULL_CALLBACK );

 

3.What circumstances will appear this kind of failure?

 

4.what do you have some suggestion to me ?

Outcomes