# 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)