|  | # SPDX-License-Identifier: Apache-2.0 | 
|  | if("${BOARD_DEBUG_RUNNER}" STREQUAL "mdb-nsim" OR "${BOARD_FLASH_RUNNER}" STREQUAL "mdb-nsim") | 
|  | # mdb is required to run nsim multicore targets | 
|  | find_program( | 
|  | MDB | 
|  | mdb64 | 
|  | ) | 
|  | set(MDB_BASIC_OPTIONS -nooptions -nogoifmain -toggle=include_local_symbols=1) | 
|  |  | 
|  | # remove previous .sc.project folder which has temporary settings for MDB. | 
|  | set(MDB_OPTIONS ${CMAKE_COMMAND} -E rm -rf ${APPLICATION_BINARY_DIR}/.sc.project) | 
|  | if(CONFIG_MP_MAX_NUM_CPUS GREATER 1) | 
|  | set(MULTIFILES ${MDB} -multifiles=) | 
|  | foreach(val RANGE ${CONFIG_MP_MAX_NUM_CPUS}) | 
|  | if(val LESS CONFIG_MP_MAX_NUM_CPUS) | 
|  | MATH(EXPR PSET_NUM "${CONFIG_MP_MAX_NUM_CPUS}-${val}") | 
|  | MATH(EXPR CORE_NUM "${CONFIG_MP_MAX_NUM_CPUS}-${val}-1") | 
|  | if(PSET_NUM GREATER 0) | 
|  | list(APPEND MDB_OPTIONS &&) | 
|  | endif() | 
|  | list(APPEND MDB_OPTIONS ${MDB} -pset=${PSET_NUM} -psetname=core${CORE_NUM}) | 
|  | if(PSET_NUM GREATER 1) | 
|  | list(APPEND MDB_OPTIONS -prop=download=2) | 
|  | set(MULTIFILES ${MULTIFILES}core${CORE_NUM},) | 
|  | else() | 
|  | set(MULTIFILES ${MULTIFILES}core${CORE_NUM}) | 
|  | endif() | 
|  | list(APPEND MDB_OPTIONS ${MDB_BASIC_OPTIONS} -nsim @${BOARD_DIR}/support/${MDB_ARGS} ${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}) | 
|  | endif() | 
|  | endforeach() | 
|  | list(APPEND MDB_OPTIONS && NSIM_MULTICORE=1 ${MULTIFILES} -run -cl) | 
|  | else() | 
|  | list(APPEND MDB_OPTIONS && ${MDB} ${MDB_BASIC_OPTIONS} -nsim @${BOARD_DIR}/support/${MDB_ARGS} -run -cl) | 
|  | endif() | 
|  |  | 
|  | string(REPLACE ";" " " MDB_COMMAND "${MDB_OPTIONS}") | 
|  | add_custom_target(run_nsim | 
|  | COMMAND | 
|  | ${MDB_OPTIONS} | 
|  | ${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME} | 
|  | DEPENDS ${logical_target_for_zephyr_elf} | 
|  | WORKING_DIRECTORY ${APPLICATION_BINARY_DIR} | 
|  | COMMENT "MDB COMMAND: ${MDB_COMMAND} ${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}" | 
|  | USES_TERMINAL | 
|  | ) | 
|  | else() | 
|  | find_program( | 
|  | NSIM | 
|  | nsimdrv | 
|  | ) | 
|  |  | 
|  | add_custom_target(run_nsim | 
|  | COMMAND | 
|  | ${NSIM} | 
|  | -propsfile | 
|  | ${BOARD_DIR}/support/${NSIM_PROPS} | 
|  | ${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME} | 
|  | DEPENDS ${logical_target_for_zephyr_elf} | 
|  | WORKING_DIRECTORY ${APPLICATION_BINARY_DIR} | 
|  | COMMENT "nSIM COMMAND: ${NSIM} -propsfile ${BOARD_DIR}/support/${NSIM_PROPS} ${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}" | 
|  | USES_TERMINAL | 
|  | ) | 
|  |  | 
|  | add_custom_target(debugserver_nsim | 
|  | COMMAND | 
|  | ${NSIM} | 
|  | -propsfile | 
|  | ${BOARD_DIR}/support/${NSIM_PROPS} | 
|  | -gdb -port=3333 | 
|  | DEPENDS ${logical_target_for_zephyr_elf} | 
|  | WORKING_DIRECTORY ${APPLICATION_BINARY_DIR} | 
|  | USES_TERMINAL | 
|  | ) | 
|  | endif() |