From 969c054e5b1aee7fb034667f09240216ea0c6abf Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Tue, 26 Oct 2021 01:50:09 -0600 Subject: 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. --- linker/linker_script.ld | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'linker/linker_script.ld') 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 = -- cgit