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
Hi,
subsection definition, which I cleared for posting contained a little but bad fault. Rewriting it, solved the problem.
Thanks