From 6b12934fecdf531f9199b835cff1c2dd501d149b Mon Sep 17 00:00:00 2001 From: Damien George Date: Mon, 30 Jan 2017 17:47:11 +1100 Subject: [PATCH] stmhal: Fix stack pointer initialisation for F411 and F429 boards. The stack pointer should start pointing 1 byte past the top of the end of RAM. --- stmhal/boards/stm32f411.ld | 8 ++++---- stmhal/boards/stm32f429.ld | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/stmhal/boards/stm32f411.ld b/stmhal/boards/stm32f411.ld index 823b5f56a..0b7bcb553 100644 --- a/stmhal/boards/stm32f411.ld +++ b/stmhal/boards/stm32f411.ld @@ -16,10 +16,10 @@ MEMORY _minimum_stack_size = 2K; _minimum_heap_size = 16K; -/* top end of the stack */ - -/*_stack_end = ORIGIN(RAM) + LENGTH(RAM);*/ -_estack = ORIGIN(RAM) + LENGTH(RAM) - 1; +/* Define tho top end of the stack. The stack is full descending so begins just + above last byte of RAM. Note that EABI requires the stack to be 8-byte + aligned for a call. */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* define common sections and symbols */ INCLUDE common.ld diff --git a/stmhal/boards/stm32f429.ld b/stmhal/boards/stm32f429.ld index d199f4550..0feb5bd62 100644 --- a/stmhal/boards/stm32f429.ld +++ b/stmhal/boards/stm32f429.ld @@ -16,10 +16,10 @@ MEMORY _minimum_stack_size = 2K; _minimum_heap_size = 16K; -/* top end of the stack */ - -/*_stack_end = ORIGIN(RAM) + LENGTH(RAM);*/ -_estack = ORIGIN(RAM) + LENGTH(RAM) - 1; +/* Define tho top end of the stack. The stack is full descending so begins just + above last byte of RAM. Note that EABI requires the stack to be 8-byte + aligned for a call. */ +_estack = ORIGIN(RAM) + LENGTH(RAM); /* define common sections and symbols */ INCLUDE common.ld