RMUL2025/lib/cmsis_5/CMSIS/DSP/configPlatform.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()