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.

TMS320F28388S: Integrating OTP memory configuration code into existing application

Part Number: TMS320F28388S
Other Parts Discussed in Thread: SYSCONFIG

Hi

I followed the mentioned steps suggested in TMS320F28388S: Integrate OTP memory configuration into existing application - C2000 microcontrollers forum - C2000Tm︎ microcontrollers - TI E2E support forums:


Using DSCM security tool.syscfg, DCSM module with required settings is added and also generated dcsm.cmd and dcsm.asm file with this settings.

Also, attached the generated files in the project

But getting the below errors:

 

Can u help me out on this.

Regards,

Deepankan

  • Hi Deepankan,

    It seems you have two linker .cmd files (or two entries in the same linker cmd file) that are attempting to allocate the same memory location. DCSMZ1OTP and DCSM2OTP are probably coming from a manually created .cmd file, while the other code sections are reserved by SysConfig. If you are configuring the DCSM using SysConfig alone, can you remove the DCSMZ1OTP and DCSMZ2OTP entries from your .cmd file?

    Thank you,

    Luke

  • Hi Luke,

    As, per the suggested changes able to build successfully but getting below error while flashing.


    Thanks,

    Deepankan

  • Hi Deepankan,

    This error usually occurs when attempting to program LINKPOINTER3 without programming the JLM_ENABLE field. The flash is programmed in 64 bit blocks, so the 32 bit LINKPOINTER3 is programmed along with JLM_ENABLE. If JLM_ENABLE is not specified, your .out file will attempt to program it to all Fs which will cause an error, since you'd be attempting to program bits from a 0 to 1. Are you using a manually created .asm and .cmd file at this moment? If so, can you update your files to program the JLM_ENABLE field (address 0x78006) to it's current value (0xFFFF000F)?

  • Hi Luke,
    Actually I am using both dscm.asm and dscm.cmd file (generated from dcsm_security_tool) in my existing application (with the existing cmd file) to program the otp memory without using dscm_security_tool.

    JLM_ENABLE_ field (address 0x78006) is already present in dscm.cmd file and also it is assigned to 0xFFFF000F in dscm.asm file.



    dscm.cmd file

    dscm.asm file

    Do I need to update my existing .cmd file also? Need your help here. 

  • Hi Deepankan,

    I noticed the LINKPOINTER values are not being programmed in the dscm.asm file(these lines are commented out). This will cause a similar issue I described in my previous post by attempting to program LINKPOINTER3 to all Fs. You must program the linkpointers and JLM_ENABLE together. If you click the checkbox in the PER LINKPOINTER menu this will program the linkpointers, but it will also program the zone-select block. If you don't wish to program the zone-select block, you will need to create your own custom dcsm.asm and dcsm.cmd files to program the zone header and linkpointers only.

    Thank you,

    Luke

  • Hi Luke,


    I programmed only zone header and LINKPOINTER's values in my custom dscm.cmd file which resolved the mentioned error.

    I am sending my existing application binary (now having OTP memory configuration code also) through Serial flash programmer but getting below error:

    Is this because I already programmed my OTP through DSCM Security tool or is there any other reason?


    Thank you,
    Deepankan

  • Hi Deepankan,

    Do you mean to say that you already programmed the Zone1 OTP link-pointer 1, 2, 3 and JLM_ENABLE fields using the CCS flash plugin?

    If yes, then if you are now trying to program the same fields with a different value that causes a bit to change from 0 to 1, you will get the error that you mentioned.

    Regards,

    Rajeshwary