diff --git a/bsp/stm32/stm32l475-atk-pandora/board/board.h b/bsp/stm32/stm32l475-atk-pandora/board/board.h index 83886f429dd633ec5c3e9e2646d3629fcdc3dbdd..ee516b50db2d121ea77e4d585b1d2c98282eaf1a 100644 --- a/bsp/stm32/stm32l475-atk-pandora/board/board.h +++ b/bsp/stm32/stm32l475-atk-pandora/board/board.h @@ -28,7 +28,17 @@ extern "C" { #define STM32_SRAM1_START (0x20000000) #define STM32_SRAM1_END (STM32_SRAM1_START + STM32_SRAM1_SIZE * 1024) -#define HEAP_BEGIN STM32_SRAM1_START +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN ((void *)&__bss_end) +#endif + #define HEAP_END STM32_SRAM1_END void SystemClock_Config(void); diff --git a/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.icf b/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.icf index b89cc8fa4d101842abbb5ae31744fb53af38d1ba..438f5773111d72d12143148b1ce23e52604fd96d 100644 --- a/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.icf +++ b/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.icf @@ -29,5 +29,4 @@ do not initialize { section .noinit }; place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; place in ROM_region { readonly }; -place in RAM1_region { section .sram }; -place in RAM2_region { readwrite, last block CSTACK}; +place in RAM1_region { section .sram , readwrite, last block CSTACK}; diff --git a/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.lds b/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.lds index 9017e4b0f8c240e6461078553074f40db9a9d2c2..ad266699c5c3730d8974f6658aaf2bdb83a8c9de 100644 --- a/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.lds +++ b/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.lds @@ -89,7 +89,7 @@ SECTIONS . = ALIGN(4); /* This is used by the startup in order to initialize the .data secion */ _edata = . ; - } >RAM2 + } >RAM1 .stack : { @@ -98,7 +98,7 @@ SECTIONS . = . + _system_stack_size; . = ALIGN(4); _estack = .; - } >RAM2 + } >RAM1 __bss_start = .; .bss : @@ -116,7 +116,7 @@ SECTIONS _ebss = . ; *(.bss.init) - } > RAM2 + } > RAM1 __bss_end = .; _end = .; diff --git a/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.sct b/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.sct index ea1ec95c6783fc3ca57194710e63a583129be2b4..6afcafa346e0cfb07b08400e18465c8f7f9a9030 100644 --- a/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.sct +++ b/bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.sct @@ -8,7 +8,7 @@ LR_IROM1 0x08000000 0x00080000 { ; load region size_region *(InRoot$$Sections) .ANY (+RO) } - RW_IRAM2 0x10000000 0x00008000 { ; RW data + RW_IRAM1 0x20000000 0x00018000 { ; RW data .ANY (+RW +ZI) } }