cmake/linker_script: Fix cmake linker scripts to define _end
The generated scripts don't include a definition for any symbol indicating the end of statically allocated memory (such as "_end"). Add a shared cmake fragment, ram-end.cmake, which contains the necessary instructions to define _end and z_mapped_end consistently to align with the other sample linker scripts. Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
710422ec5e
commit
bbec614b78
2 changed files with 9 additions and 0 deletions
|
@ -135,6 +135,8 @@ if(NOT CONFIG_USERSPACE)
|
|||
zephyr_linker_section_configure(SECTION .noinit INPUT ".kernel_noinit.*")
|
||||
endif()
|
||||
|
||||
include(${COMMON_ZEPHYR_LINKER_DIR}/ram-end.cmake)
|
||||
|
||||
zephyr_linker_symbol(OBJECT REGION_RAM SYMBOL __kernel_ram_start EXPR "(@__bss_start@)")
|
||||
zephyr_linker_symbol(OBJECT REGION_RAM SYMBOL __kernel_ram_end EXPR "(${RAM_ADDR} + ${RAM_SIZE})")
|
||||
zephyr_linker_symbol(OBJECT REGION_RAM SYMBOL __kernel_ram_size EXPR "(@__kernel_ram_end@ - @__bss_start@)")
|
||||
|
|
7
cmake/linker_script/common/ram-end.cmake
Normal file
7
cmake/linker_script/common/ram-end.cmake
Normal file
|
@ -0,0 +1,7 @@
|
|||
zephyr_linker_section(NAME .last_ram_section VMA RAM LMA RAM_REGION TYPE BSS)
|
||||
zephyr_linker_section_configure(
|
||||
SECTION .last_ram_section
|
||||
INPUT ""
|
||||
SYMBOLS _end z_mapped_end
|
||||
KEEP
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue