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.

Concerto Flash API F021 v1.53

Other Parts Discussed in Thread: CONTROLSUITE

I have a boot loader that uses the F021 flash API. This works fine on my old hardware with early silicon but when I loaded it on a rev B silicon device I found that the flash erase function does not erase the flash (in both the m3 or c28)

I was using F021 v1.50 - so I downloaded F021 v1.53 and rebuilt.

With this I can successfully erase the flash on the revB part in both the m3 & c28.

The code download to the c28 work fine.

But when writing to the m3 flash it hangs in Fapi_issueProgrammingCommand() at random places in the download. I tried the new code on the older silicon and get the same result. When it hangs the function never

I am running the m3 at 75MHz & the c28 at 150MHz off a 30MHz xtal.

 

 

 

 

 

 

 

 

 

  • Andy,

    Which device is this? please try to run the flash examples for your device from controlSuite. Let us know if you still have any problems with that.

    Best Regards

    Santosh

  • F28M35H52C1

    The flash_prog example worked fine on both silicon revisions.

    I have finally found the source of the problem in the flash initialisation function - I had this function running out of RAM (a hang over from the early API use).

    #pragma CODE_SECTION(f_InitialiseFlashProgramming, "ramfuncs")

    void f_InitialiseFlashProgramming_m3(void)

    {

        Fapi_FlashBankSectorsType oMyBank;

        /* Give M3 Control of the flash pump */

        FlashGainPump();

        Fapi_initializeAPI(F021_CPU0_BASE_ADDRESS, 75);

        Fapi_setActiveFlashBank(Fapi_FlashBank0);

         Fapi_getBankSectors(Fapi_FlashBank0, &oMyBank);

        FlashLeavePump();

    }

    Removing the "#pragma CODE_SECTION(f_InitialiseFlashProgramming, "ramfuncs")" fixed the problem.

    However I do not know why.