75 lines
2.4 KiB
CMake
75 lines
2.4 KiB
CMake
# 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()
|