| # SPDX-License-Identifier: Apache-2.0 |
| |
| zephyr_library() |
| |
| zephyr_library_sources( |
| exc_exit.S |
| fault.c |
| fault_s.S |
| fpu.c |
| irq_init.c |
| reset.S |
| scb.c |
| thread_abort.c |
| vector_table.S |
| ) |
| |
| zephyr_library_sources_ifdef(CONFIG_USERSPACE thread.c) |
| zephyr_library_sources_ifdef(CONFIG_DEBUG_COREDUMP coredump.c) |
| zephyr_library_sources_ifdef(CONFIG_THREAD_LOCAL_STORAGE __aeabi_read_tp.S) |
| zephyr_library_sources_ifdef(CONFIG_SEMIHOST semihost.c) |
| zephyr_library_sources_ifdef(CONFIG_PM_S2RAM pm_s2ram.c pm_s2ram.S) |
| zephyr_library_sources_ifdef(CONFIG_ARCH_CACHE cache.c) |
| |
| if(CONFIG_NULL_POINTER_EXCEPTION_DETECTION_DWT) |
| zephyr_library_sources(debug.c) |
| endif() |
| |
| if(CONFIG_CORTEX_M_DWT) |
| if (CONFIG_TIMING_FUNCTIONS) |
| zephyr_library_sources(timing.c) |
| endif() |
| endif() |
| |
| if (CONFIG_SW_VECTOR_RELAY) |
| if (CONFIG_CPU_CORTEX_M_HAS_VTOR) |
| set(relay_vector_table_sort_key relay_vectors) |
| else() |
| # Using 0x0 prefix will result in placing the relay vector table section |
| # at the beginning of ROM_START (i.e before other sections in ROM_START); |
| # required for CPUs without VTOR, which need to have the exception vector |
| # table starting at a fixed address at the beginning of ROM. |
| set(relay_vector_table_sort_key 0x0relay_vectors) |
| endif() |
| |
| zephyr_linker_sources( |
| ROM_START |
| SORT_KEY ${relay_vector_table_sort_key} |
| relay_vector_table.ld |
| ) |
| endif() |
| |
| if (CONFIG_SW_VECTOR_RELAY OR CONFIG_SW_VECTOR_RELAY_CLIENT) |
| zephyr_linker_sources( |
| RAM_SECTIONS |
| vt_pointer_section.ld |
| ) |
| endif() |