IAR: Add architecture support for RL78, RH850 and MSP430
This commit is contained in:
parent
0f27e7d165
commit
4178096493
6
Help/release/dev/iar-new_architectures.rst
Normal file
6
Help/release/dev/iar-new_architectures.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
iar-new_architectures
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
* Support was added for the IAR compiler architectures Renesas RX,
|
||||||
|
RL78, RH850 and Texas Instruments MSP430.
|
||||||
|
* The IAR compilers built for Linux (IAR BuildLx) now work as well.
|
@ -159,9 +159,18 @@
|
|||||||
# elif defined(__ICCRX__)
|
# elif defined(__ICCRX__)
|
||||||
# define ARCHITECTURE_ID "RX"
|
# define ARCHITECTURE_ID "RX"
|
||||||
|
|
||||||
|
# elif defined(__ICCRH850__)
|
||||||
|
# define ARCHITECTURE_ID "RH850"
|
||||||
|
|
||||||
|
# elif defined(__ICCRL78__)
|
||||||
|
# define ARCHITECTURE_ID "RL78"
|
||||||
|
|
||||||
# elif defined(__ICCAVR__)
|
# elif defined(__ICCAVR__)
|
||||||
# define ARCHITECTURE_ID "AVR"
|
# define ARCHITECTURE_ID "AVR"
|
||||||
|
|
||||||
|
# elif defined(__ICC430__)
|
||||||
|
# define ARCHITECTURE_ID "MSP430"
|
||||||
|
|
||||||
# else /* unknown architecture */
|
# else /* unknown architecture */
|
||||||
# define ARCHITECTURE_ID ""
|
# define ARCHITECTURE_ID ""
|
||||||
# endif
|
# endif
|
||||||
|
@ -12,11 +12,26 @@ elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
|||||||
__compiler_iar_ilink(ASM)
|
__compiler_iar_ilink(ASM)
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||||
|
|
||||||
|
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
|
||||||
|
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||||
|
__compiler_iar_ilink(ASM)
|
||||||
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||||
|
|
||||||
|
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
||||||
|
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||||
|
__compiler_iar_ilink(ASM)
|
||||||
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||||
|
|
||||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
||||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||||
__compiler_iar_xlink(ASM)
|
__compiler_iar_xlink(ASM)
|
||||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;asm;msa)
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;asm;msa)
|
||||||
|
|
||||||
|
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
||||||
|
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||||
|
__compiler_iar_xlink(ASM)
|
||||||
|
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s43;asm;msa)
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
||||||
endif()
|
endif()
|
||||||
|
@ -38,20 +38,23 @@ elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
|||||||
__compiler_iar_ilink(C)
|
__compiler_iar_ilink(C)
|
||||||
__compiler_check_default_language_standard(C 1.10 90 2.10 99 4.10 11)
|
__compiler_check_default_language_standard(C 1.10 90 2.10 99 4.10 11)
|
||||||
|
|
||||||
|
elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
|
||||||
|
__compiler_iar_ilink(C)
|
||||||
|
__compiler_check_default_language_standard(C 1.10 90 1.10 99 2.10 11)
|
||||||
|
|
||||||
|
elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
||||||
|
__compiler_iar_ilink(C)
|
||||||
|
__compiler_check_default_language_standard(C 1.10 90 1.10 99 4.10 11)
|
||||||
|
|
||||||
elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
||||||
__compiler_iar_xlink(C)
|
__compiler_iar_xlink(C)
|
||||||
__compiler_check_default_language_standard(C 7.10 99)
|
__compiler_check_default_language_standard(C 7.10 99)
|
||||||
set(CMAKE_C_OUTPUT_EXTENSION ".r90")
|
set(CMAKE_C_OUTPUT_EXTENSION ".r90")
|
||||||
|
|
||||||
if(NOT CMAKE_C_LINK_FLAGS)
|
elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
||||||
set(CMAKE_C_LINK_FLAGS "-Fmotorola")
|
__compiler_iar_xlink(C)
|
||||||
endif()
|
__compiler_check_default_language_standard(C 1.10 90 5.10 99)
|
||||||
|
set(CMAKE_C_OUTPUT_EXTENSION ".r43")
|
||||||
# add the target specific include directory:
|
|
||||||
get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
|
|
||||||
get_filename_component(_compilerDir "${_compilerDir}" PATH)
|
|
||||||
include_directories("${_compilerDir}/inc" )
|
|
||||||
include_directories("${_compilerDir}/inc/Atmel" )
|
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "CMAKE_C_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
message(FATAL_ERROR "CMAKE_C_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
||||||
|
@ -4,12 +4,14 @@ include(Compiler/IAR)
|
|||||||
include(Compiler/CMakeCommonCompilerMacros)
|
include(Compiler/CMakeCommonCompilerMacros)
|
||||||
|
|
||||||
# Common
|
# Common
|
||||||
if(NOT CMAKE_IAR_CXX_FLAG)
|
if(NOT CMAKE_CXX_COMPILER_VERSION)
|
||||||
if(NOT CMAKE_CXX_COMPILER_VERSION)
|
message(FATAL_ERROR "CMAKE_CXX_COMPILER_VERSION not detected. This should be automatic.")
|
||||||
message(FATAL_ERROR "CMAKE_CXX_COMPILER_VERSION not detected. This should be automatic.")
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 7)
|
if(NOT CMAKE_IAR_CXX_FLAG)
|
||||||
|
# The --c++ flag was introduced in platform version 9 for all architectures except ARM where it was introduced already in version 7
|
||||||
|
if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 8 OR
|
||||||
|
(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 6 AND "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM") )
|
||||||
set(CMAKE_IAR_CXX_FLAG --c++)
|
set(CMAKE_IAR_CXX_FLAG --c++)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_IAR_CXX_FLAG --eec++)
|
set(CMAKE_IAR_CXX_FLAG --eec++)
|
||||||
@ -45,20 +47,22 @@ elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
|||||||
__compiler_iar_ilink(CXX)
|
__compiler_iar_ilink(CXX)
|
||||||
__compiler_check_default_language_standard(CXX 2.10 98 4.10 14)
|
__compiler_check_default_language_standard(CXX 2.10 98 4.10 14)
|
||||||
|
|
||||||
|
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
|
||||||
|
__compiler_iar_ilink(CXX)
|
||||||
|
__compiler_check_default_language_standard(CXX 1.10 98 2.10 14)
|
||||||
|
|
||||||
|
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
||||||
|
__compiler_iar_ilink(CXX)
|
||||||
|
__compiler_check_default_language_standard(CXX 1.10 98 4.10 14)
|
||||||
|
|
||||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
||||||
__compiler_iar_xlink(CXX)
|
__compiler_iar_xlink(CXX)
|
||||||
__compiler_check_default_language_standard(CXX 7.10 98)
|
__compiler_check_default_language_standard(CXX 7.10 98)
|
||||||
|
|
||||||
set(CMAKE_CXX_OUTPUT_EXTENSION ".r90")
|
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
||||||
if(NOT CMAKE_CXX_LINK_FLAGS)
|
__compiler_iar_xlink(CXX)
|
||||||
set(CMAKE_CXX_LINK_FLAGS "-Fmotorola")
|
__compiler_check_default_language_standard(CXX 5.10 98)
|
||||||
endif()
|
set(CMAKE_CXX_OUTPUT_EXTENSION ".r43")
|
||||||
|
|
||||||
# add the target specific include directory:
|
|
||||||
get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
|
|
||||||
get_filename_component(_compilerDir "${_compilerDir}" PATH)
|
|
||||||
include_directories("${_compilerDir}/inc" )
|
|
||||||
include_directories("${_compilerDir}/inc/Atmel" )
|
|
||||||
|
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "CMAKE_CXX_COMPILER_ARCHITECTURE_ID not detected. This should be automatic." )
|
message(FATAL_ERROR "CMAKE_CXX_COMPILER_ARCHITECTURE_ID not detected. This should be automatic." )
|
||||||
|
@ -31,7 +31,7 @@ set(_compiler_id_version_compute "
|
|||||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(((__VER__) / 1000) % 1000)
|
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(((__VER__) / 1000) % 1000)
|
||||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@((__VER__) % 1000)
|
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@((__VER__) % 1000)
|
||||||
# define @PREFIX@COMPILER_VERSION_INTERNAL @MACRO_DEC@(__IAR_SYSTEMS_ICC__)
|
# define @PREFIX@COMPILER_VERSION_INTERNAL @MACRO_DEC@(__IAR_SYSTEMS_ICC__)
|
||||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__))
|
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__))
|
||||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@((__VER__) / 100)
|
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@((__VER__) / 100)
|
||||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@((__VER__) - (((__VER__) / 100)*100))
|
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@((__VER__) - (((__VER__) / 100)*100))
|
||||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__SUBVERSION__)
|
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__SUBVERSION__)
|
||||||
|
@ -11,7 +11,9 @@ get_filename_component(__iar_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPI
|
|||||||
set(__iar_hints "${__iar_hint_1}" "${__iar_hint_2}")
|
set(__iar_hints "${__iar_hint_1}" "${__iar_hint_2}")
|
||||||
|
|
||||||
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM" OR
|
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM" OR
|
||||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX" OR
|
||||||
|
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850" OR
|
||||||
|
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
||||||
|
|
||||||
string(TOLOWER "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" _archid_lower)
|
string(TOLOWER "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" _archid_lower)
|
||||||
|
|
||||||
@ -41,9 +43,10 @@ set(CMAKE_IAR_OBJMANIP \"${CMAKE_IAR_OBJMANIP}\")
|
|||||||
set(CMAKE_IAR_LINKER \"${CMAKE_IAR_LINKER}\")
|
set(CMAKE_IAR_LINKER \"${CMAKE_IAR_LINKER}\")
|
||||||
")
|
")
|
||||||
|
|
||||||
elseif("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
elseif("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR" OR
|
||||||
|
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
||||||
|
|
||||||
# For AVR and AVR32, IAR uses the "xlink" linker and the "xar" archiver:
|
# Find the "xlink" linker and "xar" archiver:
|
||||||
find_program(CMAKE_IAR_LINKER xlink HINTS ${__iar_hints}
|
find_program(CMAKE_IAR_LINKER xlink HINTS ${__iar_hints}
|
||||||
DOC "The IAR XLINK linker")
|
DOC "The IAR XLINK linker")
|
||||||
find_program(CMAKE_IAR_AR xar HINTS ${__iar_hints}
|
find_program(CMAKE_IAR_AR xar HINTS ${__iar_hints}
|
||||||
|
Loading…
Reference in New Issue
Block a user