#! armcc -E ; command above MUST be in first line (no comment above!) /* ;-------- <<< Use Configuration Wizard in Context Menu >>> ------------------- */ /*--------------------- Flash Configuration ---------------------------------- ; Flash Configuration ; Flash Base Address <0x0-0xFFFFFFFF:8> ; Flash Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __ROM_BASE 0x08000000 #define __ROM_SIZE 0x00012C00 /*--------------------- RAMCODE Section Configuration ------------------------ ; RAMCODE Configuration ; RAMCODE in which MCU ; <3=> TAE32F5300 ; <2=> TAE32F5600 ; RAMCODE Base Address is different in different MCUs ; Unsupported if your MCU is not in the list ; RAMCODE Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __RAMCODE_BASE 0x18000000 #define __RAMCODE_SIZE 0x00000000 /*--------------------- Embedded RAMA Configuration -------------------------- ; RAMA Configuration ; RAMA Base Address <0x0-0xFFFFFFFF:8> ; RAMA Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __RAMA_BASE 0x20000000 #define __RAMA_SIZE 0x00004000 /*--------------------- Embedded RAMB Configuration -------------------------- ; RAMB Configuration ; RAMB Base Address <0x0-0xFFFFFFFF:8> ; RAMB Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __RAMB_BASE 0x20004000 #define __RAMB_SIZE 0x00001000 /*--------------------- Embedded RAMC Configuration -------------------------- ; RAMC Configuration ; RAMC Base Address <0x0-0xFFFFFFFF:8> ; RAMC Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __RAMC_BASE 0x20005000 #define __RAMC_SIZE 0x00001000 /*--------------------- Stack / Heap Configuration --------------------------- ; Stack / Heap Configuration ; Stack and Heap will be placed in RAMA ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __STACK_SIZE 0x00000400 #define __HEAP_SIZE 0x00000000 /* ;------------- <<< end of configuration section >>> --------------------------- */ /*---------------------------------------------------------------------------- User Stack & Heap boundary definition *----------------------------------------------------------------------------*/ #define __STACK_TOP (__RAMA_BASE + __RAMA_SIZE) /* starts at end of RAMA */ #define __HEAP_BASE (AlignExpr(+0, 8)) /* starts after RW_RAMA section, 8 byte aligned */ /*---------------------------------------------------------------------------- Scatter File Definitions definition *----------------------------------------------------------------------------*/ #define __RO_BASE __ROM_BASE #define __RO_SIZE __ROM_SIZE #define __RW_CODE_BASE __RAMCODE_BASE #define __RW_CODE_SIZE __RAMCODE_SIZE #define __RW_BASE (__RAMA_BASE + __RAMCODE_SIZE) #define __RW_SIZE (__RAMA_SIZE - __RAMCODE_SIZE - __STACK_SIZE - __HEAP_SIZE) LR_ROM __RO_BASE __RO_SIZE { ; load region size_region ER_ROM __RO_BASE __RO_SIZE { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } #if __RW_CODE_SIZE > 0 RW_CODE __RW_CODE_BASE __RW_CODE_SIZE { *.o (RAMCODE) } #endif RW_RAMA __RW_BASE __RW_SIZE { ; RWA data *.o (SECTION_RAMA) .ANY (+RW +ZI) } #if __HEAP_SIZE > 0 ARM_LIB_HEAP __HEAP_BASE EMPTY __HEAP_SIZE { ; Reserve empty region for heap } #endif ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack } RW_RAMB __RAMB_BASE __RAMB_SIZE { ; RWB region *.o (SECTION_RAMB) } RW_RAMC __RAMC_BASE __RAMC_SIZE { ; RWC region *.o (SECTION_RAMC) } }