zephyr/cmake/toolchain/iar/Kconfig
Robin Kastberg 5a92e46c92 iar: toolchain: Implement IAR static init routine
This will implement a way of doing static initialization
the "IAR" way. This is done by calling __iar_data_init3
which handles all static initialization that is mentioned
in the linker file "initialize by copy".

Signed-off-by: Robin Kastberg <robin.kastberg@iar.com>
2025-05-12 19:18:56 +02:00

64 lines
1.4 KiB
Plaintext

# Copyright (c) 2025 IAR Systems AB
#
# SPDX-License-Identifier: Apache-2.0
config LD_LINKER_SCRIPT_SUPPORTED
default n
choice LINKER_SCRIPT
default CMAKE_LINKER_GENERATOR
endchoice
menu "IAR options"
choice IAR_INIT
bool "Static initialization method"
depends on XIP
default IAR_ZEPHYR_INIT
config IAR_DATA_INIT
bool "IAR"
select SKIP_BSS_CLEAR # IAR handles zeroing.
help
IAR handles initialization of static variables.
Instead of `z_prep_c` calling Zephyrs `z_data_copy`
we call IARs own proprietary initialization method
which can save time and space.
config IAR_ZEPHYR_INIT
bool "Zephyr"
help
Zephyr handles initialization of static variables.
This is the regular `z_data_copy`.
endchoice
config IAR_SEMIHOSTING
bool "Use the IAR semihosting implementation."
depends on IAR_LIBC
help
Use the semihosting implementation in the IAR library
instead of the Zephyr implementation.
config IAR_BUFFERED_WRITE
bool "Use buffered write"
depends on IAR_SEMIHOSTING
help
Instead of printing one character at a time
this option uses a buffer to print a line
at a time instead, increasing speed of printout.
endmenu
config TOOLCHAIN_IAR_SUPPORTS_THREAD_LOCAL_STORAGE
def_bool y
select TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
# Should we set this? It doesn't seem to be used
# We support most but don't set __GNUC__
#
config TOOLCHAIN_IAR_SUPPORTS_GNU_EXTENSIONS
def_bool y
select TOOLCHAIN_SUPPORTS_GNU_EXTENSIONS