diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2021-10-26 01:50:09 -0600 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2021-10-26 01:53:55 -0600 |
commit | 969c054e5b1aee7fb034667f09240216ea0c6abf (patch) | |
tree | 3b0062d62ac4dac4f65d1b3395d015331ff5f18a /linker/linker_script.ld | |
parent | 23acf071a670719336eafd18d33cdd0e0f02775c (diff) | |
download | stm32l4-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.ld | 16 |
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 = |