This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Experiencing strange behaviour of Fapi_doBlankCheck

Other Parts Discussed in Thread: TMDX570LC43HDK, HALCOGEN

Hi @all,

while developing a firmware that reads/writes calibration values from/to eeprom I got some strange error. I used the same functions for a RM48 implementation but now, while porting the SW to a TMS570LC43xx, this error popped up:

After perfoming a Fapi_doBlankCheck the flashbank 7 appears to be empty (0xFFFFFFFF) even though it is still containing old calibration data. Watching the memory content with the memory browser in CCS shows the calibration data before calling Fapi_doBlankCheck and afterwards the memory seems to be blank...

I am using:

TMDX570LC43HDK

Code Composer Studio  Version: 6.0.1.00040

HALCoGen Version: 04.04.00

FLASH API Version: 02.01.01

System configuration:

HCLK 150 MHz

FAPI is running in RAM, copied by copytable

MPU/Cache disabled in HALCoGen

Defined macro _L2FMC in CCS project properties

Short implementation in HL_sys_main.c:

    Fapi_StatusType             f021_Res;
    Fapi_FlashStatusWordType     f021_State;
    uint32                        *f021_Address;

    copy_in(&_flash_ctbl);

    f021_Res = Fapi_initializeFlashBanks( 150 );
        if ( f021_Res != Fapi_Status_Success ){
            DOUT("Unable to initialize EEPROM support!");

        }else{
            DOUT("EEPROM support initialized...");

        }
        //
        f021_Res    =    Fapi_setActiveFlashBank( Fapi_FlashBank7  );
        if ( f021_Res != Fapi_Status_Success ){
            DOUT("Unable to activate flash bank!");

        }

        while( FAPI_CHECK_FSM_READY_BUSY != Fapi_Status_FsmReady  );

        f021_Res    =    Fapi_enableEepromBankSectors( 0xFFFFFFFF, 0xFFFFFFFF );

        if ( f021_Res != Fapi_Status_Success ){
            DOUT("Unable to enable sectors!");

        }

        while( FAPI_CHECK_FSM_READY_BUSY != Fapi_Status_FsmReady  );


        f021_Address     = (uint32 *) 0xF0200000;

        f021_State.au32StatusWord[3]    =    0;    //    prepare function answer
        Fapi_disableAutoEccCalculation();
        f021_Res                         =    Fapi_doBlankCheck( f021_Address, 2, &f021_State );

        while( 1 );

Can anybody give me a hint, where to look for the reason?


Thanks in advance...