/* * STACK SIZE MACRO DEFINITIONS */ #define M_USER_STACK_SIZE 0x1800 /* Multiple of 8 bytes - 6KB */ #define M_PREV_STACK_SIZE 0x10 /* Multiple of 8 bytes - 16B */ /* * LINKER OPTIONS */ --entry_point=_c_int00 /* ENTRY POINT */ -stack 0x2800 /* SOFTWARE STACK SIZE */ -heap 0x0800 /* HEAP AREA SIZE */ --retain="*(.intvecs)" /* SPECIFY THE SYSTEM MEMORY MAP */ MEMORY { PROG_VEC_TCMA_RAM : org = 0x00000000 len = 0x00000100 /* PROGRAM MEMORY (ROM) (72 Bytes)- 8 BYTE ALIGNED */ MSS_TCMA_RAM : org = 0x00000100 len = 0x0003ff00 /* PROGRAM MEMORY (RAM : TCMA) (128 kB - 48 Bytes) */ MSS_TCMB : org = 0x08000000 len = 0x00010000 /* DATA MEMORY (RAM : TCMB) (64 kBytes) */ } --define=MCAL_CODE1=MSS_TCMA_RAM --define=MCAL_CODE2=MSS_TCMA_RAM --define=MCAL_DATA=MSS_TCMA_RAM --define=MCAL_BSS=MSS_TCMA_RAM --define=MCAL_NOINIT=MSS_TCMA_RAM --define=MCAL_CONST=MSS_TCMA_RAM --define FILL_PATTERN=0xAAAAAAAA --define FILL_LENGTH=0x100 /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */ SECTIONS { .intvecs : { *(.intvecs) } > PROG_VEC_TCMA_RAM ALIGN(8) /* INTERRUPT VECTORS */ .startup : { *(.startup) } > MSS_TCMA_RAM ALIGN(8) /* STARTUP CODE - 8 BYTE ALIGNED */ /* TEXT SECTION - Executable Code */ .text : > MCAL_CODE1, fill=FILL_PATTERN { .=align(4); __linker_text_start = .; . += FILL_LENGTH; *(.text) .=align(4); . += FILL_LENGTH; __linker_text_end = .; } /* CONST SECTION - Initialized Global Variables */ .const : load > MCAL_CONST, fill=FILL_PATTERN { .=align(4); __linker_const_start = .; . += FILL_LENGTH; *(.const) .=align(4); . += FILL_LENGTH; __linker_const_end = .; } /* DATA SECTION - Initialized Data */ .data : load > MCAL_DATA { .=align(4); __linker_data_start = .; . += FILL_LENGTH; *(.data) .=align(4); . += FILL_LENGTH; __linker_data_end = .; } /* BSS SECTION - Contains Uninitialized Global variables */ .bss : load > MCAL_BSS RUN_START(bss_start) RUN_END(bss_end) { .=align(4); __linker_bss_start = .; . += FILL_LENGTH; *(.bss) .=align(4); . += FILL_LENGTH; __linker_bss_end = .; } /* CINIT SECTION - Tables which initializes global variables */ .cinit : load > MCAL_DATA /* STACK - System Stack */ .stack : load > MCAL_DATA, fill=FILL_PATTERN /* SYSMEM - Heap Memory */ .sysmem : load > MCAL_DATA }