Enhance IAR CMake support.

This commit is contained in:
Mengsk 2023-12-13 17:19:13 +01:00
parent ccc59e8763
commit 3eb7d6ede9
3 changed files with 15 additions and 8 deletions

View File

@ -13,7 +13,7 @@ if (TOOLCHAIN STREQUAL "gcc")
elseif (TOOLCHAIN STREQUAL "iar") elseif (TOOLCHAIN STREQUAL "iar")
set(TOOLCHAIN_COMMON_FLAGS set(TOOLCHAIN_COMMON_FLAGS
--cpu cortex-m4 --cpu cortex-m4
--fpu VFPv4 --fpu VFPv4_sp
) )
if (NOT DEFINED FREERTOS_PORT) if (NOT DEFINED FREERTOS_PORT)

View File

@ -26,6 +26,7 @@ list(APPEND TOOLCHAIN_COMMON_FLAGS
) )
list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
--diag_suppress=Li065
) )
include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake) include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake)

View File

@ -72,7 +72,7 @@ set(WARNING_FLAGS_GNU
-Wredundant-decls -Wredundant-decls
) )
set(WARNINGS_FLAGS_IAR "") set(WARNING_FLAGS_IAR "")
# Filter example based on only.txt and skip.txt # Filter example based on only.txt and skip.txt
@ -191,10 +191,12 @@ function(family_configure_common TARGET RTOS)
) )
# run size after build # run size after build
add_custom_command(TARGET ${TARGET} POST_BUILD find_program(SIZE_EXE ${CMAKE_SIZE})
COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET}> if(NOT ${SIZE_EXE} STREQUAL SIZE_EXE-NOTFOUND)
) add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND ${SIZE_EXE} $<TARGET_FILE:${TARGET}>
)
endif ()
# Add warnings flags # Add warnings flags
target_compile_options(${TARGET} PUBLIC ${WARNING_FLAGS_${CMAKE_C_COMPILER_ID}}) target_compile_options(${TARGET} PUBLIC ${WARNING_FLAGS_${CMAKE_C_COMPILER_ID}})
@ -205,6 +207,10 @@ function(family_configure_common TARGET RTOS)
target_link_options(${TARGET} PUBLIC "LINKER:--no-warn-rwx-segments") target_link_options(${TARGET} PUBLIC "LINKER:--no-warn-rwx-segments")
endif () endif ()
endif() endif()
if (CMAKE_C_COMPILER_ID STREQUAL "IAR")
target_link_options(${TARGET} PUBLIC "LINKER:--map=$<TARGET_FILE:${TARGET}>.map")
endif()
# ETM Trace option # ETM Trace option
if (TRACE_ETM STREQUAL "1") if (TRACE_ETM STREQUAL "1")
@ -367,7 +373,7 @@ function(family_flash_jlink TARGET)
endif () endif ()
file(GENERATE file(GENERATE
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.jlink OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${TARGET}.jlink
CONTENT "halt CONTENT "halt
loadfile $<TARGET_FILE:${TARGET}> loadfile $<TARGET_FILE:${TARGET}>
r r
@ -377,7 +383,7 @@ exit"
add_custom_target(${TARGET}-jlink add_custom_target(${TARGET}-jlink
DEPENDS ${TARGET} DEPENDS ${TARGET}
COMMAND ${JLINKEXE} -device ${JLINK_DEVICE} -if swd -JTAGConf -1,-1 -speed auto -CommandFile ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.jlink COMMAND ${JLINKEXE} -device ${JLINK_DEVICE} -if swd -JTAGConf -1,-1 -speed auto -CommandFile ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${TARGET}.jlink
) )
endfunction() endfunction()