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