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.

Compiler/AWR1843: Memory Reset

Part Number: AWR1843

Tool/software: TI C/C++ Compiler

Hi Team,

    I notice that the memory data will be initialized to 0 after I make a SOFTSYSRST. The memory type is NOINIT in linker.cmd. Does the chip have an initialization mechanics by default? Is that possible to keep the data in the RAM after a warm reset?

   I also try to reset DSS, haultBSS ans SOFTRST. But the program will be crashed.

Thanks,

Frank

  • Hi Frank,

    Device reset is described in section 4.3 of the device TRM.  It doesn't describe memory initialization however.  A warm reset is identical to a power on reset as far as the MSS, BSS and DSS subsystems are concerned. This means that in both cases, the bootloader will run in the MSS' R4F core, and it will reset memory and reload the programs from flash.  It is possible that there is a small memory that is not reset. You would need to write a known value to each and see if it survives.  Look at table 3.2 in the TRM for the auxiliary memories such as MSS_SW_BUFFER, DSS_HSRAM1, or peripheral memories such as MSS_DMA_RAM, GEM_MBOX4BSS.

    If you're trying to save a large amount of data in L2 or L3 then this probably wouldn't help because the memories aren't large enough.  If you only need to save a few bytes, you can use registers in the TOPRCM block such as MSS_SIGNATURE. TOPRCM does survive a warm reset.

    Finally, if none of this helps, you can always write your data to flash, reset and read it back.  There is an app note that describes this process, and how to add flash reads/writes to your program: 

    https://www.ti.com/lit/an/swra583/swra583.pdf

     -dave