|
|
@@ -1,5 +1,5 @@
|
|
|
#
|
|
|
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
|
|
|
+# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
|
|
|
#
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
#
|
|
|
@@ -27,6 +27,9 @@ set(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
|
|
set(UART0_BASE "0x49303000" CACHE STRING "UART base address.")
|
|
|
set(UART_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../drivers/uart" CACHE PATH "Path to UART.")
|
|
|
set(LINK_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../platform/fastmodels/model" CACHE PATH "Linker file.")
|
|
|
+set(USE_ETHOSU_CORE_PLATFORM_DEFAULT OFF)
|
|
|
+set(ETHOSU_CORE_PLATFORM_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../core_platform" CACHE PATH "Path to Arm Ethos-U Core Platform project.")
|
|
|
+set(FVP_CORSTONE_300_PATH "${ETHOSU_CORE_PLATFORM_PATH}/targets/corstone-300")
|
|
|
|
|
|
set_property(GLOBAL PROPERTY cmsis_nn_unit_test_executables)
|
|
|
|
|
|
@@ -75,6 +78,17 @@ MESSAGE(STATUS "Downloading Unity and generating test runners for CMSIS-NN unit
|
|
|
execute_process(COMMAND ${MAKE_CMD} ${MAKE_CMD_SCRIPT} ${MAKE_CMD_SCRIPT_OPTION}
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
add_subdirectory(Unity)
|
|
|
+
|
|
|
+option(USE_ETHOSU_CORE_PLATFORM "Use Arm Ethos-U Core Platform project." ${USE_ETHOSU_CORE_PLATFORM_DEFAULT})
|
|
|
+
|
|
|
+if(USE_ETHOSU_CORE_PLATFORM)
|
|
|
+add_subdirectory(${FVP_CORSTONE_300_PATH} fvp_corstone_300)
|
|
|
+
|
|
|
+add_library(retarget STATIC
|
|
|
+ ${FVP_CORSTONE_300_PATH}/retarget.c
|
|
|
+ ${FVP_CORSTONE_300_PATH}/uart.c)
|
|
|
+
|
|
|
+else()
|
|
|
add_subdirectory(${UART_PATH} uart)
|
|
|
|
|
|
include(Platform/cmsis_device.cmake)
|
|
|
@@ -97,13 +111,32 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
|
endif()
|
|
|
set(LINK_FILE_OUT ${LINK_FILE}.${LINK_FILE_EXT})
|
|
|
|
|
|
-# Link in dependecies to every unit test.
|
|
|
+endif()
|
|
|
+
|
|
|
+# Link in dependencies to every unit test.
|
|
|
get_property(executables GLOBAL PROPERTY cmsis_nn_unit_test_executables)
|
|
|
string(REPLACE " " ";" cmsis_nn_unit_test_list_of_executables ${executables})
|
|
|
foreach(target ${cmsis_nn_unit_test_list_of_executables})
|
|
|
target_link_libraries(${target} PRIVATE $<TARGET_OBJECTS:retarget> retarget)
|
|
|
- target_link_libraries(${target} PRIVATE $<TARGET_OBJECTS:cmsis_startup> cmsis_startup)
|
|
|
+ target_link_libraries(${target} PRIVATE $<TARGET_OBJECTS:cmsis_startup> cmsis_device)
|
|
|
add_dependencies(${target} retarget cmsis_startup)
|
|
|
- target_link_options(${target} PRIVATE ${LINK_FILE_OPTION} ${LINK_FILE_OUT} ${LINK_ENTRY_OPTION} ${LINK_ENTRY})
|
|
|
- set_target_properties(${target} PROPERTIES LINK_DEPENDS ${LINK_FILE_OUT})
|
|
|
+ if(USE_ETHOSU_CORE_PLATFORM)
|
|
|
+
|
|
|
+ target_compile_definitions(${target} PUBLIC USING_FVP_CORSTONE_300)
|
|
|
+ target_link_options(${target} PRIVATE --entry Reset_Handler)
|
|
|
+
|
|
|
+ # Copy linker files.
|
|
|
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang")
|
|
|
+ configure_file(${FVP_CORSTONE_300_PATH}/platform.scatter
|
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/platform_${target}.scatter COPYONLY)
|
|
|
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
|
+ configure_file(${FVP_CORSTONE_300_PATH}/platform.ld
|
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/platform_${target}.ld COPYONLY)
|
|
|
+ endif()
|
|
|
+
|
|
|
+ ethosu_link_options(${target} PRIVATE LINK_FILE platform_${target})
|
|
|
+ else()
|
|
|
+ target_link_options(${target} PRIVATE ${LINK_FILE_OPTION} ${LINK_FILE_OUT} ${LINK_ENTRY_OPTION} ${LINK_ENTRY})
|
|
|
+ set_target_properties(${target} PROPERTIES LINK_DEPENDS ${LINK_FILE_OUT})
|
|
|
+ endif()
|
|
|
endforeach()
|