| # Copyright (c) 2023 Nordic Semiconductor ASA |
| # Copyright (c) 2018 Oticon A/S |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| find_package(BabbleSim) |
| |
| zephyr_library() |
| |
| # Due to the BLE controller assumption about enum size |
| zephyr_compile_options( |
| -fshort-enums |
| ) |
| # Structures layouts needs to match in the interface between the runner and the embedded SW |
| # The nrfx HAL uses enums in its definitions,so they need to have the same size in both, |
| # as both the HW models and embedded SW use them. |
| target_compile_options(native_simulator INTERFACE -fshort-enums) |
| |
| zephyr_library_sources( |
| irq_handler.c |
| cpu_wait.c |
| argparse.c |
| nsi_if.c |
| soc/nrfx_coredep.c |
| common/bstests_entry.c |
| common/cmsis/cmsis.c |
| common/trace_hook.c |
| ) |
| |
| # Include sync_rtc from real SOC code if enabled |
| zephyr_library_sources_ifdef(CONFIG_NRF53_SYNC_RTC |
| ${ZEPHYR_BASE}/soc/arm/nordic_nrf/nrf53/sync_rtc.c |
| ) |
| |
| target_sources(native_simulator INTERFACE |
| common/bsim_args_runner.c |
| common/bsim_extra_cpu_if_stubs.c |
| common/phy_sync_ctrl.c |
| common/runner_hooks.c |
| common/posix_arch_if.c |
| common/trace_hook.c |
| ) |
| |
| if (CONFIG_IPC_SERVICE AND CONFIG_BOARD_NRF5340BSIM_NRF5340_CPUAPP) |
| zephyr_library_sources( |
| ipc_backend.c |
| ) |
| endif() |
| |
| zephyr_include_directories( |
| soc |
| common |
| common/cmsis |
| ${NSI_DIR}/common/src/include |
| ) |
| |
| zephyr_library_include_directories( |
| ${BSIM_COMPONENTS_PATH}/libUtilv1/src/ |
| ${BSIM_COMPONENTS_PATH}/libPhyComv1/src/ |
| ${BSIM_COMPONENTS_PATH}/libRandv2/src/ |
| ${ZEPHYR_BASE}/kernel/include |
| ${ZEPHYR_BASE}/arch/posix/include |
| common/ |
| ) |
| |
| set(libpath ${BSIM_OUT_PATH}/lib) |
| set_property(TARGET native_simulator APPEND PROPERTY RUNNER_LINK_LIBRARIES |
| ${libpath}/libUtilv1.32.a |
| ${libpath}/libPhyComv1.32.a |
| ${libpath}/lib2G4PhyComv1.32.a |
| ${libpath}/libRandv2.32.a |
| ) |
| |
| target_compile_options(native_simulator INTERFACE |
| "-DNSI_PRIMARY_MCU_N=${CONFIG_NATIVE_SIMULATOR_PRIMARY_MCU_INDEX}") |
| |
| add_subdirectory(${ZEPHYR_BASE}/boards/${ARCH}/common/extra_args/ |
| ${CMAKE_CURRENT_BINARY_DIR}/extra_args |
| ) |
| |
| include(../common/natsim_config.cmake) |