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.

TMS320F28377S: Flash API Read & Write

Part Number: TMS320F28377S

Hi,

1) F021_API_F2837xS_FPU32.lib is used to write and read from flash. While writing in flash sectors of Bank 0: Fapi_issueProgrammingCommand in Fapi_DataOnly mode is used.

Last 696 addresses (of 3 flash sectors each of length 0x2000) are incorrectly written, whereas others are found ok.

After some forum search I saw:

-l F021_API_F2837xD_FPU32.lib

is used to run API from RAM, by which last 696 address are correctly written. Please guide on this how it helps and why was it not working before without above addition in linker.

2) Flash0CtrlRegs.FRDCNTL.bit.RWAIT = 0; is also working during flash read/write operation for 50 MHz PLL SYSCLKOUT by using flash API from RAM. Whereas I get:

No source available for "_system_post_cinit() at C:/Users/filepath......out:{3} 0x3fe493{4}"

7625        ESTOP0  (Diassembly)

error during flash write for RWAIT=0; when -l F021_API_F2837xD_FPU32.lib is not used in linker

whereas RWAIT = 0x3 without -l F021_API_F2837xD_FPU32.lib ; was ok.till last 696 address.

We are always copying data to flash sectors which are other than .text, which are not used during run. 

Please guide.

  • RH,

    Thank you for reaching out to us.  We will review and get back to you in a day or two.

    Thanks and regards,

    Vamsi

  • RH,

    1)

    F2837xS Flash API should be mapped to RAM if you wish to program both banks.

    Flash API can not be executed from the same bank on which the program/erase operations are targeted.

    Flash API can be executed from one flash bank to program/erase the other flash bank.

    2) 

    It might be related to #1.  I remember seeing similar question on another post - are you tracking this in another post?

    Thanks and regards,
    Vamsi