Visible to Intel only — GUID: mze1686097662228
Ixiasoft
Visible to Intel only — GUID: mze1686097662228
Ixiasoft
7.11.9. Eliminate Unused alt_load()
When booting Nios® V processor using execute-in-place, the crt0 code block calls the alt_load() macros. The alt_load() macros handles the copying of sections (except .text) on reset from a memory into the system RAM. There can be two possible elimination methods to reduce the code footprint.
- Partial Elimination
If you are booting from On-Chip Memory (OCRAM), you need to enable enable_alt_load_copy_rwdata to preserve a copy of the .rwdata section of the application code. This ensures that the .rwdata is restored from modification during run-time, thus the application is initialized with the same .rwdata sections after every system reset.
To enable the alt_load() function partially,
set_setting hal.linker.enable_alt_load {true}
set_setting hal.linker.enable_alt_load_copy_exceptions {false}
set_setting hal.linker.enable_alt_load_copy_rodata {false}
set_setting hal.linker.enable_alt_load_copy_rwdata {true}
set_setting hal.linker.enable_exception_stack {false}
- Complete Elimination
If you are re-programming a fresh hardware SOF file with initialized OCRAM, or redownloading software ELF file after each system startup, you may disable the entire alt_load() functions. Since there is always a fresh .rwdata section before each system startup, there is no obligation to preserve it using the enable_alt_load_copy_rwdata.
To disable the alt_load() function entirely.
set_setting hal.linker.enable_alt_load {false}
set_setting hal.linker.enable_alt_load_copy_exceptions {false}
set_setting hal.linker.enable_alt_load_copy_rodata {false}
set_setting hal.linker.enable_alt_load_copy_rwdata {false}
set_setting hal.linker.enable_exception_stack {false}