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.

OTP Programming Errors in CCS v6.1

Other Parts Discussed in Thread: TMS320F28069

Hi there,

I'm trying to program a TMS320F28069 from CCS v6.1 and keep encountering this error: 

One or more sections of your program falls into a memory region that is not writable

This same binary has loaded fine for about the last year and a half from CCS v5.x. It looks like the flash programmer is not interpreting the OTP addresses as flashable and the debugger knows it's not RAM so it's just failing without even trying to write to OTP. I can also verify that OTP is still all 1's.

Has anyone else run into this issue?

  • Hi Jeff,

    Check this thread: e2e.ti.com/.../390606

    Regards,
    Gautam
  • Hi Gautam,

    Thank you for the prompt reply! I had come across that thread, but it did not help me. One thing that I should've mentioned in my original post is that I can successfully program our application code to both FLASH and RAM with no issues. This problem only occurs when attempting to write to OTP.

    Thanks,
    Jeff

  • Jeff,

    We recently updated our CCS to 6.1v. So, there might be some issues. I shall report this error to CCS team.

    If you have older CCS, please program the device / OTP with older CCS.

    Regards,
    Manoj
  • Jeff,

    Do you know exactly which addresses in OTP your program is writing to?

    You can also find out by doing a Full Verification on your device with the program you are loading; this should give you the address where the data is not matching.

    Thanks,
    Ricky
  • Hi Ricky,

    Here are the contents of my .cmd file:

    MEMORY
    {
    PAGE 0 :
        CODERAM   : origin = 0x000050, length = 0x0003B0
        BOOTINIT  : origin = 0x3D7800, length = 0x000030
        BOOT      : origin = 0x3D7830, length = 0x0003CB
    	OTP_KEY   : origin = 0x3D7BFB, length = 0x000001
    	OTP_MODE  : origin = 0x3D7BFE, length = 0x000001
    
    PAGE 1 :
        EBSS       : origin = 0x000400, length = 0x000200
        STACK      : origin = 0x000600, length = 0x000200
    }
    
    SECTIONS
    {
        .InitBoot  : load = BOOTINIT, PAGE = 0
        .text      : load = BOOT,     PAGE = 0
        .stack     : load = STACK,    PAGE = 1
        .ebss      : load = EBSS,     PAGE = 1
        .OtpKey    : load = OTP_KEY,  PAGE = 0
        .OtpMode   : load = OTP_MODE, PAGE = 0
    
        ramfuncs   : load = BOOT, run = CODERAM, page = 0,
                     LOAD_START(_RamfuncsLoadStart),
                     RUN_START(_RamfuncsRunStart),
                     LOAD_SIZE(_RamfuncsLoadSize)
    }
    

    I just loaded the same code onto the same board from a different machine running v5.5 and had no problems.

  • Jeff,

    Can you help me generate the Debug Server Logs for your scenario?

    For more information about DS logs, please read the following link:
    processors.wiki.ti.com/.../Troubleshooting_CCSv6

    Thanks,
    Ricky