aboutsummaryrefslogtreecommitdiff
path: root/linker/linker_script.ld
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2021-10-26 01:50:09 -0600
committerJosh Rahm <joshuarahm@gmail.com>2021-10-26 01:53:55 -0600
commit969c054e5b1aee7fb034667f09240216ea0c6abf (patch)
tree3b0062d62ac4dac4f65d1b3395d015331ff5f18a /linker/linker_script.ld
parent23acf071a670719336eafd18d33cdd0e0f02775c (diff)
downloadstm32l4-969c054e5b1aee7fb034667f09240216ea0c6abf.tar.gz
stm32l4-969c054e5b1aee7fb034667f09240216ea0c6abf.tar.bz2
stm32l4-969c054e5b1aee7fb034667f09240216ea0c6abf.zip
Fix Init Level Logging.
The linker script was broken because the init_boundaries were showing the incorrect value. It's fixed now. Unfortunately there's a bizarre bug where if I add another klogf() statement in the run_init_routines() function, I lose _all_ logging. I have no idea what is causing this! The only thing I can think of in an honsest-to-god complier bug. It probably has to do with some bizarre-o optimizations GCC is doing. In the time being I had to shuffle the finishing routines logging to the init() function directly ... unfortunate.
Diffstat (limited to 'linker/linker_script.ld')
-rw-r--r--linker/linker_script.ld16
1 files changed, 8 insertions, 8 deletions
diff --git a/linker/linker_script.ld b/linker/linker_script.ld
index 0338591..d6ce40b 100644
--- a/linker/linker_script.ld
+++ b/linker/linker_script.ld
@@ -29,21 +29,21 @@ SECTIONS
INITS_START = .;
*(.init0);
- INIT_0_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_0_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init1);
- INIT_1_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_1_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init2);
- INIT_2_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_2_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init3);
- INIT_3_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_3_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init4);
- INIT_4_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_4_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init5);
- INIT_5_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_5_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init6);
- INIT_6_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_6_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
*(.init7);
- INIT_7_END = LOADADDR(.data) + (. - INITS_START);
+ INIT_7_END = ABSOLUTE(INIT_ROUTINES_FLASH_START) + (. - INITS_START);
INITS_END = .;
INIT_ROUTINES_FLASH_STOP =