; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* #! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m33 -xc ; 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 0x008000000 #define __ROM_SIZE 0x000040000 /*---------------------------- ITCM Configuration ----------------------------- ; ITCM Configuration ; ITCM Base Address <0x0-0xFFFFFFFF:8> ; ITCM Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __ITCM_BASE 0x00000000 #define __ITCM_SIZE 0x00008000 /*---------------------------- DTCM Configuration ----------------------------- ; DTCM Configuration ; DTCM Base Address <0x0-0xFFFFFFFF:8> ; DTCM Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __DTCM_BASE 0x20000000 #define __DTCM_SIZE 0x00008000 /*--------------------- Embedded RAM1 Configuration --------------------------- ; RAM Configuration ; RAM1 Base Address <0x0-0xFFFFFFFF:8> ; RAM1 Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __RAM1_BASE 0x30000000 #define __RAM1_SIZE 0x0001C000 /*--------------------- Embedded RAM2 Configuration --------------------------- ; RAM Configuration ; RAM2 Base Address <0x0-0xFFFFFFFF:8> ; RAM2 Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __RAM2_BASE 0x3001C000 #define __RAM2_SIZE 0x00004000 /*--------------------- Stack / Heap Configuration --------------------------- ; Stack / Heap Configuration ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; *----------------------------------------------------------------------------*/ #define __STACK_SIZE 0x00000800 #define __HEAP_SIZE 0x00000C00 /*---------------------------------------------------------------------------- User Stack & Heap boundary definition *----------------------------------------------------------------------------*/ #define __STACK_TOP (__RAM1_BASE + __RAM1_SIZE) /* starts at end of RAM */ #define __HEAP_BASE (AlignExpr(+0, 8)) /* starts after RW_RAM section, 8 byte aligned */ /*---------------------------------------------------------------------------- Scatter File Definitions definition *----------------------------------------------------------------------------*/ #define __RO_BASE __ROM_BASE #define __RO_SIZE __ROM_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) ; *(Veneer$$CMSE) ; uncomment for secure applications .ANY (+RO) .ANY (+XO) } RW_ITCM __ITCM_BASE __ITCM_SIZE { ; RW data .ANY (+RW +ZI) } RW_DTCM __DTCM_BASE __DTCM_SIZE { ; RW data .ANY (+RW +ZI) } RW_RAM1 __RAM1_BASE (__RAM1_SIZE - __STACK_SIZE - __HEAP_SIZE) { ; RW data .ANY (+RW +ZI) } RW_RAM2 __RAM2_BASE __RAM2_SIZE { ; RW data .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 } }