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.

TMS320F280039: RAM variable is cleared by wdg reset

Part Number: TMS320F280039
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hello experts,

I would like to utilize the feature of WDG (Watchdog) reset not clearing RAM variables to share variables between the user APP program and the user Boot program. This function works correctly in the 0025 model, but I encountered an issue when applying it to the 0039 model. The detailed problem description is as follows:

  1. In the 0025 project, a uint16-type variable was placed at RAMM0 location 0x128. Before reset, the variable was set to 1, and after the watchdog reset, this RAM variable remained as 1.

  2. When performing the same operation in the 0039/0039C model, the variable at this location was unexpectedly cleared to 0 after the watchdog reset.

  3. We then relocated this variable to the end of RAMM0, at the beginning of RAMM1, RAMLS0, RAMGS0, etc. After the watchdog reset, the value remained as 1 and was not cleared.

  4. Could this phenomenon be related to the size of the Reserved RAM for Boot? In the 0039 model, does the ROM Boot use a RAM region that exceeds the range of 0x2-0x127? What is the specific RAM range used by the ROM Boot in the 0039 model?

  • Hi,

    Could this phenomenon be related to the size of the Reserved RAM for Boot? In the 0039 model, does the ROM Boot use a RAM region that exceeds the range of 0x2-0x127? What is the specific RAM range used by the ROM Boot in the 0039 model?

    Yes, it could be related to RAM used by BOOTROM. Let me check with our ROM team and get back to you.

    Regards,

    Vivek Singh

  • Is there any news?

  • Sorry for late reply. Still waiting response from our SW team. I have notified them again. 

    Vivek Singh

  • Hello Bo,

    We are looking into this. In the meantime, can you please answer some questions:

    - Do you have any customization in User OTP regions (starting from 0x78000) ? If yes, please share that data.
    - Can you test it with a simple program which writes to that location and causes a WD reset to rule out any application side writes to the location?
    - Can you let us know if this is consistent with more than one F280039 device?
    - Can you try to place a breakpoint at that address for write operation and share the PC value?
    - When you mentioned that this worked for F280025, did you use the same binary with F280039C or did you recompile the source?

    -Kedar

  • 1-No customization in User OTP;

    2-Yes, it would be cleared by WD reset, no application code would write this location;

    3-Yes, my colleague and I tested it on different 280039 device;

    4-I test it at the beginning of _c_int00, it would be cleared.  I will try the test you mentioned if necessary when I have time.

    5-Totally different project, all library file is from 280025.

    Note: some information got from C2000Ware_5_04_00_00 for you, I don't know if it has some matter with this phenomenon.

    1 - 0025, file - C2000Ware_5_04_00_00\libraries\boot_rom\f28002x\rev0\rom_sources\F28002x_ROM\lnk\F28002x_cpu01_boot_rom_lnk.cmd

         RAM used does not  exceed 0x128 

        //
        // RAM Memories
        //
        CPU1_BROM_STATUS        : origin = 0x002,    length = 0x000002
        CPU1_BROM_BOOTMODE      : origin = 0x004,    length = 0x000002
        CPU1_PBIST_STATUS       : origin = 0x006,    length = 0x000002
        BSS       			    : origin = 0x008,    length = 0x000020
        STACK      			    : origin = 0x028,    length = 0x0000E0
        FLASHAPI_EBSS		    : origin = 0x108,    length = 0x000020

    2 - 0039, file - C:\ti\C2000Ware_5_04_00_00\libraries\boot_rom\f28003x\rev0\rom_sources\F28003x_ROM\lnk\F28003x_cpu01_boot_rom_lnk.cmd

          RAM used is different from 0025, and exceed 0x128 range

        //
        // RAM Memories
        //
        CPU1_BROM_STATUS        : origin = 0x002,    length = 0x000002
        CPU1_BROM_BOOTMODE      : origin = 0x004,    length = 0x000002
        CPU1_PBIST_STATUS       : origin = 0x006,    length = 0x000002
        BSS       			    : origin = 0x008,    length = 0x000098
        STACK      			    : origin = 0x0A0,    length = 0x0000E0

  • May I ask if there is any news?