CODECOMPOSER: CCS v20.3 Erase "Necessary Sectors Only" Erases All Flash

Part Number: CODECOMPOSER
Other Parts Discussed in Thread: UNIFLASH

Hiya, I seem to have encountered an issue with the JTAG code load process in Code Composer Studio

  • Code Composer Studio: v20.3.0.14__1.9.0 
  • UniFlash: v9.4.1.5566 
  • uC: TMS320F28P550SJ9

When I configure the project debug settings in CCS to only erase necessary sectors, I find that it erases the entire flash of the TMS320F28P550SJ9. I can confirm the following:

  • Hit "Save and Close" to apply the settings
  • The correct debug launch settings are being used when i run debug.
  • The .out file used from the definitely does not contain data in the regions that I do not with to erase. The range 0x80000 to 0x8A000 should not be erased when this code is flashed, but it is. I can confirm that both in the linker this is unused, and in the resulting .map file that there are no used sections in here. There are MEMORY directives here, but they are empty. 
  • For good measure, I also turned on the range avoidance to see if that would help. It does not.
  • Before flashing, the contents contain the bootloader. Post flashing, the contents are empty as 0xFFFF

image.png

 

To sanity check, I repeated the process and loaded the .out file using UniFlash. I find that this does work, using the same "necessary sectors only" settings. Using the same .out, this does not erase the 0x80000 to 0x8A000 range that I expect to be left alone.

image.png