225 lines
4.9 KiB
CMake
225 lines
4.9 KiB
CMake
option(SEMIHOSTING "Test trace using printf" OFF)
|
|
|
|
if (PLATFORM STREQUAL "FVP")
|
|
SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/FVP)
|
|
SET(PLATFORMID "FVP")
|
|
SET(PLATFORMOPT "-DFVP")
|
|
list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/FVP)
|
|
endif()
|
|
|
|
if (PLATFORM STREQUAL "NORMALFVP")
|
|
SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/NORMALFVP)
|
|
SET(PLATFORMID "NORMALFVP")
|
|
SET(PLATFORMOPT "-DNORMALFVP")
|
|
list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/NORMALFVP)
|
|
endif()
|
|
|
|
if (PLATFORM STREQUAL "MPS3")
|
|
SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/MPS3)
|
|
SET(PLATFORMID "MPS3")
|
|
list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/MPS3)
|
|
endif()
|
|
|
|
if (PLATFORM STREQUAL "SDSIM")
|
|
SET(PLATFORMFOLDER ${SDSIMROOT})
|
|
SET(PLATFORMID "SDSIM")
|
|
list(APPEND CMAKE_MODULE_PATH ${SDSIMROOT})
|
|
endif()
|
|
|
|
if (PLATFORM STREQUAL "IPSS")
|
|
SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/IPSS)
|
|
SET(PLATFORMID "IPSS")
|
|
list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/IPSS)
|
|
endif()
|
|
|
|
SET(CORE ARMCM7)
|
|
|
|
|
|
include(platform)
|
|
|
|
function(set_platform_core)
|
|
|
|
if(EXPERIMENTAL)
|
|
experimental_set_platform_core()
|
|
SET(CORE ${CORE} PARENT_SCOPE)
|
|
endif()
|
|
###################
|
|
#
|
|
# Cortex cortex-m7
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]7([^0-9].*)?$")
|
|
SET(CORE ARMCM7 PARENT_SCOPE)
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m4
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]4([^0-9].*)?$")
|
|
SET(CORE ARMCM4 PARENT_SCOPE)
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m35p
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]35([^0-9].*)?$")
|
|
SET(CORE ARMCM35P PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m33
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]33([^0-9].*)?$")
|
|
SET(CORE ARMCM33 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m55
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]55([^0-9].*)?$")
|
|
SET(CORE ARMv81MML PARENT_SCOPE)
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m23
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]23([^0-9].*)?$")
|
|
SET(CORE ARMCM23 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m0+
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]0p([^0-9].*)?$")
|
|
SET(CORE ARMCM0plus PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-m0
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[mM]0([^0-9].*)?$")
|
|
SET(CORE ARMCM0 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-a32
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[aA]32([^0-9].*)?$")
|
|
SET(CORE ARMCA32 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-a5
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[aA]5([^0-9].*)?$")
|
|
SET(CORE ARMCA5 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-a7
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[aA]7([^0-9].*)?$")
|
|
SET(CORE ARMCA7 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-a9
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[aA]9([^0-9].*)?$")
|
|
SET(CORE ARMCA9 PARENT_SCOPE)
|
|
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-a15
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[aA]15([^0-9].*)?$")
|
|
SET(CORE ARMCA15 PARENT_SCOPE)
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-r5
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[rR]5([^0-9].*)?$")
|
|
SET(CORE ARMCR5 PARENT_SCOPE)
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-r8
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[rR]8([^0-9].*)?$")
|
|
SET(CORE ARMCR8 PARENT_SCOPE)
|
|
endif()
|
|
|
|
###################
|
|
#
|
|
# Cortex cortex-r52
|
|
#
|
|
if (ARM_CPU MATCHES "^[cC]ortex-[rR]52([^0-9].*)?$")
|
|
SET(CORE ARMCR52 PARENT_SCOPE)
|
|
endif()
|
|
|
|
endfunction()
|
|
|
|
function(core_includes PROJECTNAME)
|
|
if (CORTEXR)
|
|
target_include_directories(${PROJECTNAME} PRIVATE ${CORER}/Include)
|
|
else()
|
|
target_include_directories(${PROJECTNAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/Include)
|
|
#target_compile_options(${PROJECTNAME} PRIVATE ${PLATFORMOPT})
|
|
endif()
|
|
endfunction()
|
|
|
|
function (configplatformForLib PROJECTNAME ROOT)
|
|
if (SEMIHOSTING)
|
|
target_compile_definitions(${PROJECTNAME} PRIVATE SEMIHOSTING)
|
|
endif()
|
|
if (CORTEXM)
|
|
compilerSpecificPlatformConfigLibForM(${PROJECTNAME} ${ROOT} )
|
|
elseif(CORTEXA)
|
|
compilerSpecificPlatformConfigLibForA(${PROJECTNAME} ${ROOT} )
|
|
else()
|
|
compilerSpecificPlatformConfigLibForR(${PROJECTNAME} ${ROOT} )
|
|
endif()
|
|
|
|
endfunction()
|
|
|
|
function (configplatformForApp PROJECTNAME ROOT CORE PLATFORMFOLDER)
|
|
if (SEMIHOSTING)
|
|
target_compile_definitions(${PROJECTNAME} PRIVATE SEMIHOSTING)
|
|
endif()
|
|
|
|
configure_platform(${PROJECTNAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
|
|
SET(PLATFORMID ${PLATFORMID} PARENT_SCOPE)
|
|
|
|
if (CORTEXM)
|
|
compilerSpecificPlatformConfigAppForM(${PROJECTNAME} ${ROOT} )
|
|
elseif(CORTEXA)
|
|
compilerSpecificPlatformConfigAppForA(${PROJECTNAME} ${ROOT} )
|
|
else()
|
|
compilerSpecificPlatformConfigAppForR(${PROJECTNAME} ${ROOT} )
|
|
endif()
|
|
|
|
endfunction()
|