Joachim Hemberger

Skip SRAM (not the flash) from initializing during debugging CW 7.1 for CF5235

Discussion created by Joachim Hemberger on Mar 30, 2012
Latest reply on Apr 2, 2012 by Joachim Hemberger

Hi all,

 

I'm newby. We have three types of memory, ROM for the software and constants, RAM where all is copied to at startup and a MRAM (=SRAM) where we keep some, but not all, parameters. This MRAM should never be touched, neihter during initalizing a debug session nor when writing the flash only the program should acces this memory. As flashing targets only the flash memory there is no problem, but when downloading for debuging those values are cleared. How can I skip them from zero filling? 

 

I tried to define it as uninitalized data and "debugger settings" "download options" "unitialized data" unchecked.

current conten of the LCF:

# Linker Command File for M523xEVB Board for CodeWarrior ColdFire# for Debug and Release targets.## Based on file from CodeWarrior project stationery.# Modified by Micro Digital for SMX.## Modified by JH für OCTAGON P. T. GmbH#MEMORY{   TEXT (RX) : ORIGIN = 0x00000000, LENGTH = 0   DATA (RW) : ORIGIN = AFTER(TEXT), LENGTH = 0   usermem (RWX): ORIGIN = 0x30000000, LENGTH = 0x00100000   # JH}SECTIONS{   # These are referenced in the BSP code.   #    ___VECTOR_RAM = 0x00000000;   ___SDRAM      = 0x00000000;  ___SDRAM_SIZE     = 0x01000000;  # 16MB   ___SRAM       = 0x20000000;  ___SRAM_SIZE      = 0x00010000;  # intern, 64kB   ___EXT_SRAM   = 0x30000000;  ___EXT_SRAM_SIZE  = 0x00100000;  # --> usermem      (JH)   ___IPSBAR     = 0x40000000;           # internal registers   ___EXT_IO     = 0x80000000;  ___EXT_IO_SIZE    = 0x00010000;  # 64kB CS4         (JH)             ___EXT_FLASH  = 0xFF800000;  ___EXT_FLASH_SIZE = 0x00400000;  # Flash 4MB        (JH)         #___USERMEM    = 0x30000000;  ___USERMEM_SIZE  = 0x00100000;   # 1MB ^   (JH)   # neu erstellt für M-RAM (JH)            .usermem  :  # THIS AREA I WOULD LIKE to SKIP DURING DOWNLOAD AND AUTO ZERO FILLING {     } > usermem          .main_application :   {      vectors.s(.text)            # instead of *(.reset), so code is in .text and is counted in IDE Code column      *(.text)      . = ALIGN(0x8);      *(.rodata)      . = ALIGN(0x8);   } > TEXT   .main_application_data :   {      . = ALIGN(0x8);      *(.exception)      . = ALIGN(0x8);      __exception_table_start__ = .;      EXCEPTION      __exception_table_end__ = .;      ___sinit__ = .;      STATICINIT      __START_DATA = .;      *(.data)      __END_DATA = .;      __START_SDATA = .;      *(.sdata)      __END_SDATA = .;      . = ALIGN(0x8);      __SDA_BASE = .;             # A5 set to middle of data and bss ...   } > DATA           .uninitialized_data :   {      __START_SBSS = .;      *(.sbss)      *(SCOMMON)      __END_SBSS = .;      __START_BSS = .;      . = ALIGN(0x8);             # 8-byte alignment required by smx heap      *(.smx_bss)                 # smx stack pool, heap, and dar      *(.bss)      *(COMMON)      __END_BSS = .;              . = ALIGN(0x8);   } >> DATA   ___BSS_START = __START_SBSS;   ___BSS_END = __END_BSS;   ___DATA_END = .;   # This stack is only needed for init, since smx provides stacks   # for tasks. 1KB should be enough.   #   __SP_INIT = . + 0x00000400;    # set stack to 0x0400 bytes (1KB)   ___SP_INIT = __SP_INIT;        # used by startup code   # smx heap is used, not compiler heap, so make this as small as possible.   #   ___heap_addr = __SP_INIT;      # heap grows in opposite direction of stack   ___heap_size = 0x0;            # heap size set to 0x0 bytes (0KB)   #___SDRAM_INIT = 0x0;          # tells startup code NOT to init SDRAM, since already running from RAM; debug .cfg file inits   __S_romp = 0x0;                # no ROM copy table}

 thanks ahead

Outcomes