You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/configBoot.cmake

154 lines
3.5 KiB
CMake

include(CMakePrintHelpers)
enable_language(CXX C ASM)
# Otherwise there is a .obj on windows and it creates problems
# with armlink.
SET(CMAKE_C_OUTPUT_EXTENSION .o)
SET(CMAKE_CXX_OUTPUT_EXTENSION .o)
SET(CMAKE_ASM_OUTPUT_EXTENSION .o)
get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
cmake_print_variables(PROJECT_NAME)
function(cortexm CORE PROJECT_NAME ROOT PLATFORMFOLDER)
target_include_directories(${PROJECT_NAME} PRIVATE ${ROOT}/CMSIS/Core/Include)
target_sources(${PROJECT_NAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/system_${CORE}.c)
toolchainSpecificLinkForCortexM(${PROJECT_NAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
configplatformForApp(${PROJECT_NAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
SET(PLATFORMID ${PLATFORMID} PARENT_SCOPE)
endfunction()
function(cortexa CORE PROJECT_NAME ROOT PLATFORMFOLDER)
target_include_directories(${PROJECT_NAME} PRIVATE ${ROOT}/CMSIS/Core_A/Include)
target_sources(${PROJECT_NAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/irq_ctrl_gic.c)
target_sources(${PROJECT_NAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/mmu_${CORE}.c)
target_sources(${PROJECT_NAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/system_${CORE}.c)
target_compile_definitions(${PROJECT_NAME} PRIVATE -DCMSIS_device_header="${CORE}.h")
toolchainSpecificLinkForCortexA(${PROJECT_NAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
configplatformForApp(${PROJECT_NAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
SET(PLATFORMID ${PLATFORMID} PARENT_SCOPE)
endfunction()
function(configboot PROJECT_NAME ROOT PLATFORMFOLDER)
target_include_directories(${PROJECT_NAME} PRIVATE ${ROOT}/CMSIS/DSP/Include)
set_platform_core()
###################
#
# Cortex cortex-m7
#
if (ARM_CPU STREQUAL "cortex-m7")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-m4
#
if (ARM_CPU STREQUAL "cortex-m4")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-m35p
#
if (ARM_CPU STREQUAL "cortex-m35")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-m33
#
if (ARM_CPU STREQUAL "cortex-m33")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-m23
#
if (ARM_CPU STREQUAL "cortex-m23")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-m0+
#
if (ARM_CPU STREQUAL "cortex-m0p")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-m0
#
if (ARM_CPU STREQUAL "cortex-m0")
cortexm(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-a5
#
if (ARM_CPU STREQUAL "cortex-a5")
cortexa(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-a7
#
if (ARM_CPU STREQUAL "cortex-a7")
cortexa(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-a9
#
if (ARM_CPU STREQUAL "cortex-a9")
cortexa(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
###################
#
# Cortex cortex-a15
#
if (ARM_CPU STREQUAL "cortex-a15")
cortexa(${CORE} ${PROJECT_NAME} ${ROOT} ${PLATFORMFOLDER})
endif()
SET(PLATFORMID ${PLATFORMID} PARENT_SCOPE)
endfunction()