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.

TMS320F280036-Q1: Can the code perform flash programming to another area of the same bank

Part Number: TMS320F280036-Q1

Tool/software:

We are in the process of developing DFU related functionality, and we need to use the flash program functionality in this process. There are a few questions about the flash program function:
1. some mcu's will suspend the cpu when executing the flash program (I guess it is because the bus to read the code instruction is occupied by the write flash operation), is the same logic for F280036?
2. if the bootloader code is located in sector 1~10 of bank0, and run by fetching instructions from flash. Is it possible to give a write flag to bank0's sector 12 flash program?
3. I noticed that some of the C2000 series chips have only one bank, is it possible to run the bootloader code by fetching instructions from the flash sector and the target address of the flash program not in the same sector?

Best regards

  • 1. some mcu's will suspend the cpu when executing the flash program (I guess it is because the bus to read the code instruction is occupied by the write flash operation), is the same logic for F280036?

    The C2000 CPU core(C28x) controls the flashing operation/call the Flash APIs, so the CPU is not suspended, but it will have some overhead executing the flash API code.  The flash API is interruptible, the only restriction is that the code itself cannot be running form the same bank that is being erased/programmed. The CLA can continue to run in parallel since it is independent of the C28x.

    2. if the bootloader code is located in sector 1~10 of bank0, and run by fetching instructions from flash. Is it possible to give a write flag to bank0's sector 12 flash program?

    Related to the above, we can't run code from the same bank that is being programmed.  The flash API would need to be relocated to either another bank of flash or RAM in order to program any sector in bank0.

    3. I noticed that some of the C2000 series chips have only one bank, is it possible to run the bootloader code by fetching instructions from the flash sector and the target address of the flash program not in the same sector?

    Yes, for this device since there are multiple banks as long as the flash API is not in the bank under program the API can run out of flash.

    Here is a link to flash API FAQ that may also be helpful https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/951668/faq-faq-on-flash-api-usage-for-c2000-devices 

    Best,

    Matthew

  • I see. Thank you for explaining.