120 lines
5.1 KiB
CMake
120 lines
5.1 KiB
CMake
# originates from common-ram.ld
|
|
|
|
if(CONFIG_GEN_SW_ISR_TABLE AND CONFIG_DYNAMIC_INTERRUPTS)
|
|
# ld align has been changed to subalign to provide identical behavior scatter vs. ld.
|
|
zephyr_linker_section(NAME sw_isr_table
|
|
GROUP DATA_REGION
|
|
${XIP_ALIGN_WITH_INPUT} SUBALIGN ${CONFIG_ARCH_SW_ISR_TABLE_ALIGN}
|
|
)
|
|
zephyr_linker_section_configure(
|
|
SECTION sw_isr_table
|
|
INPUT ".gnu.linkonce.sw_isr_table*"
|
|
)
|
|
endif()
|
|
|
|
zephyr_linker_section(NAME device_states GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT})
|
|
zephyr_linker_section_configure(SECTION device_states
|
|
KEEP INPUT ".z_devstate" ".z_devstate.*"
|
|
)
|
|
|
|
if(CONFIG_PM_DEVICE)
|
|
zephyr_linker_section(NAME pm_device_slots GROUP DATA_REGION TYPE NOLOAD NOINPUT ${XIP_ALIGN_WITH_INPUT})
|
|
zephyr_linker_section_configure(SECTION pm_device_slots KEEP INPUT ".z_pm_device_slots")
|
|
endif()
|
|
|
|
zephyr_linker_section(NAME initshell GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT})
|
|
zephyr_linker_section_configure(SECTION initshell
|
|
KEEP INPUT ".shell_module_*"
|
|
SYMBOLS __shell_module_start __shell_module_end
|
|
)
|
|
zephyr_linker_section_configure(SECTION initshell
|
|
KEEP INPUT ".shell_cmd_*"
|
|
SYMBOLS __shell_cmd_start __shell_end_end
|
|
)
|
|
|
|
zephyr_linker_section(NAME log_dynamic GROUP DATA_REGION NOINPUT)
|
|
zephyr_linker_section_configure(SECTION log_dynamic KEEP INPUT ".log_dynamic_*")
|
|
|
|
zephyr_iterable_section(NAME _static_thread_data GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
|
|
if(CONFIG_USERSPACE)
|
|
# All kernel objects within are assumed to be either completely
|
|
# initialized at build time, or initialized automatically at runtime
|
|
# via iteration before the POST_KERNEL phase.
|
|
#
|
|
# These two symbols only used by gen_kobject_list.py
|
|
# _static_kernel_objects_begin = .;
|
|
endif()
|
|
|
|
zephyr_iterable_section(NAME k_timer GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_mem_slab GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_heap GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_mutex GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_stack GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_msgq GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_mbox GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_pipe GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_sem GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_queue GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME k_condvar GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
|
|
zephyr_linker_section(NAME _net_buf_pool_area GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_linker_section_configure(SECTION _net_buf_pool_area
|
|
KEEP SORT NAME INPUT "._net_buf_pool.static.*"
|
|
SYMBOLS _net_buf_pool_list
|
|
)
|
|
|
|
if(CONFIG_NETWORKING)
|
|
zephyr_iterable_section(NAME net_if GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME net_if_dev GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME net_l2 GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME eth_bridge GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
endif()
|
|
|
|
if(CONFIG_UART_MUX)
|
|
zephyr_linker_section(NAME uart_mux GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_linker_section_configure(SECTION uart_mux
|
|
KEEP SORT NAME INPUT ".uart_mux.*"
|
|
)
|
|
endif()
|
|
|
|
if(CONFIG_USB_DEVICE_STACK)
|
|
zephyr_linker_section(NAME usb_descriptor GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT} SUBALIGN 1)
|
|
zephyr_linker_section_configure(SECTION usb_descriptor
|
|
KEEP SORT NAME INPUT ".usb.descriptor*"
|
|
)
|
|
|
|
zephyr_linker_section(NAME usb_data GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT} SUBALIGN 1)
|
|
zephyr_linker_section_configure(SECTION usb_data
|
|
KEEP SORT NAME INPUT ".usb.data*"
|
|
)
|
|
endif()
|
|
|
|
if(CONFIG_USB_DEVICE_BOS)
|
|
zephyr_linker_section(NAME usb_bos_desc GROUP DATA_REGION NOINPUT ${XIP_ALIGN_WITH_INPUT} SUBALIGN 1)
|
|
zephyr_linker_section_configure(SECTION usb_data
|
|
KEEP SORT NAME INPUT ".usb.bos_desc"
|
|
)
|
|
endif()
|
|
|
|
if(CONFIG_RTIO)
|
|
zephyr_iterable_section(NAME rtio GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME rtio_iodev GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
endif()
|
|
|
|
#if(CONFIG_USERSPACE)
|
|
# _static_kernel_objects_end = .;
|
|
#endif()
|
|
#
|
|
|
|
if(CONFIG_ZTEST)
|
|
zephyr_iterable_section(NAME ztest_suite_node GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME ztest_suite_stats GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
endif()
|
|
|
|
if(CONFIG_ZTEST_NEW_API)
|
|
zephyr_iterable_section(NAME ztest_unit_test GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME ztest_test_rule GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
zephyr_iterable_section(NAME ztest_expected_result_entry GROUP DATA_REGION ${XIP_ALIGN_WITH_INPUT} SUBALIGN 4)
|
|
endif()
|