blob: 5427a4f976b65332f56e6ab70f037486f75b4206 [file] [log] [blame]
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +02001option(SEMIHOSTING "Test trace using printf" ON)
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +02002
3if (PLATFORM STREQUAL "FVP")
Christophe Favergeonec574202019-08-09 06:54:05 +01004SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/FVP)
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +02005SET(PLATFORMID "FVP")
Christophe Favergeon3f7bbfb2020-05-06 07:10:29 +02006SET(PLATFORMOPT "-DFVP")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +02007list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/FVP)
8endif()
9
GorgonMeducerf8d8ec82019-11-05 14:09:36 +000010if (PLATFORM STREQUAL "MPS3")
11SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/MPS3)
12SET(PLATFORMID "MPS3")
13list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/MPS3)
14endif()
15
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020016if (PLATFORM STREQUAL "SDSIM")
Christophe Favergeonec574202019-08-09 06:54:05 +010017SET(PLATFORMFOLDER ${SDSIMROOT})
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020018SET(PLATFORMID "SDSIM")
Christophe Favergeonec574202019-08-09 06:54:05 +010019list(APPEND CMAKE_MODULE_PATH ${SDSIMROOT})
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020020endif()
21
Christophe Favergeon21bb6202020-04-30 09:07:33 +020022if (PLATFORM STREQUAL "IPSS")
23SET(PLATFORMFOLDER ${ROOT}/CMSIS/DSP/Platforms/IPSS)
24SET(PLATFORMID "IPSS")
25list(APPEND CMAKE_MODULE_PATH ${ROOT}/CMSIS/DSP/Platforms/IPSS)
26endif()
27
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020028SET(CORE ARMCM7)
29
Christophe Favergeon512b1482020-02-07 11:25:11 +010030
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020031include(platform)
32
33function(set_platform_core)
Christophe Favergeon26c2f682019-09-06 14:43:32 +010034
35 if(EXPERIMENTAL)
36 experimental_set_platform_core()
37 SET(CORE ${CORE} PARENT_SCOPE)
38 endif()
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020039 ###################
40 #
41 # Cortex cortex-m7
42 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +020043 if (ARM_CPU MATCHES "^[cC]ortex-[mM]7([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020044 SET(CORE ARMCM7 PARENT_SCOPE)
45 endif()
46
47 ###################
48 #
49 # Cortex cortex-m4
50 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +020051 if (ARM_CPU MATCHES "^[cC]ortex-[mM]4([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020052 SET(CORE ARMCM4 PARENT_SCOPE)
53 endif()
54
55 ###################
56 #
57 # Cortex cortex-m35p
58 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +020059 if (ARM_CPU MATCHES "^[cC]ortex-[mM]35([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020060 SET(CORE ARMCM35P PARENT_SCOPE)
61
62 endif()
63
64 ###################
65 #
66 # Cortex cortex-m33
67 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +020068 if (ARM_CPU MATCHES "^[cC]ortex-[mM]33([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020069 SET(CORE ARMCM33 PARENT_SCOPE)
70
71 endif()
Christophe Favergeon512b1482020-02-07 11:25:11 +010072
73 ###################
74 #
75 # Cortex cortex-m55
76 #
77 if (ARM_CPU MATCHES "^[cC]ortex-[mM]55([^0-9].*)?$")
78 SET(CORE ARMv81MML PARENT_SCOPE)
79 endif()
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020080
81 ###################
82 #
83 # Cortex cortex-m23
84 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +020085 if (ARM_CPU MATCHES "^[cC]ortex-[mM]23([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020086 SET(CORE ARMCM23 PARENT_SCOPE)
87
88 endif()
89
90 ###################
91 #
92 # Cortex cortex-m0+
93 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +020094 if (ARM_CPU MATCHES "^[cC]ortex-[mM]0p([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +020095 SET(CORE ARMCM0plus PARENT_SCOPE)
96
97 endif()
98
99 ###################
100 #
101 # Cortex cortex-m0
102 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +0200103 if (ARM_CPU MATCHES "^[cC]ortex-[mM]0([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +0200104 SET(CORE ARMCM0 PARENT_SCOPE)
105
106 endif()
107
108 ###################
109 #
110 # Cortex cortex-a5
111 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +0200112 if (ARM_CPU MATCHES "^[cC]ortex-[aA]5([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +0200113 SET(CORE ARMCA5 PARENT_SCOPE)
114
115 endif()
116
117 ###################
118 #
119 # Cortex cortex-a7
120 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +0200121 if (ARM_CPU MATCHES "^[cC]ortex-[aA]7([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +0200122 SET(CORE ARMCA7 PARENT_SCOPE)
123
124 endif()
125
126 ###################
127 #
128 # Cortex cortex-a9
129 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +0200130 if (ARM_CPU MATCHES "^[cC]ortex-[aA]9([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +0200131 SET(CORE ARMCA9 PARENT_SCOPE)
132
133 endif()
134
135 ###################
136 #
137 # Cortex cortex-a15
138 #
Christophe Favergeonc4c34802019-09-24 14:05:01 +0200139 if (ARM_CPU MATCHES "^[cC]ortex-[aA]15([^0-9].*)?$")
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +0200140 SET(CORE ARMCA15 PARENT_SCOPE)
141 endif()
142endfunction()
143
144function(core_includes PROJECTNAME)
Christophe Favergeonec574202019-08-09 06:54:05 +0100145 target_include_directories(${PROJECTNAME} PRIVATE ${PLATFORMFOLDER}/${CORE}/Include)
Christophe Favergeon3f7bbfb2020-05-06 07:10:29 +0200146 target_compile_options(${PROJECTNAME} PRIVATE ${PLATFORMOPT})
Christophe Favergeon3b2a0ee2019-06-12 13:29:14 +0200147endfunction()
148
149function (configplatformForLib PROJECTNAME ROOT)
150 if (SEMIHOSTING)
151 target_compile_definitions(${PROJECTNAME} PRIVATE SEMIHOSTING)
152 endif()
153 if (CORTEXM)
154 compilerSpecificPlatformConfigLibForM(${PROJECTNAME} ${ROOT} )
155 else()
156 compilerSpecificPlatformConfigLibForA(${PROJECTNAME} ${ROOT} )
157 endif()
158
159endfunction()
160
161function (configplatformForApp PROJECTNAME ROOT CORE PLATFORMFOLDER)
162 if (SEMIHOSTING)
163 target_compile_definitions(${PROJECTNAME} PRIVATE SEMIHOSTING)
164 endif()
165
166 configure_platform(${PROJECTNAME} ${ROOT} ${CORE} ${PLATFORMFOLDER})
167 SET(PLATFORMID ${PLATFORMID} PARENT_SCOPE)
168
169 if (CORTEXM)
170 compilerSpecificPlatformConfigAppForM(${PROJECTNAME} ${ROOT} )
171 else()
172 compilerSpecificPlatformConfigAppForA(${PROJECTNAME} ${ROOT} )
173 endif()
174
175endfunction()