32
32
board = env .BoardConfig ()
33
33
34
34
FRAMEWORK_DIR = platform .get_package_dir ("framework-arduinoststm32" )
35
- CMSIS_DIR = join (platform .get_package_dir ("framework-arduinoststm32" ), "CMSIS" , "CMSIS" )
35
+ CMSIS_DIR = join (platform .get_package_dir ("framework-cmsis" ) , "CMSIS" )
36
36
assert isdir (FRAMEWORK_DIR )
37
37
assert isdir (CMSIS_DIR )
38
38
@@ -86,6 +86,22 @@ def process_usb_configuration(cpp_defines):
86
86
elif "PIO_FRAMEWORK_ARDUINO_ENABLE_HID" in cpp_defines :
87
87
env .Append (CPPDEFINES = ["USBD_USE_HID_COMPOSITE" ])
88
88
89
+ if any (
90
+ d in cpp_defines
91
+ for d in (
92
+ "PIO_FRAMEWORK_ARDUINO_ENABLE_CDC" ,
93
+ "PIO_FRAMEWORK_ARDUINO_ENABLE_CDC_WITHOUT_SERIAL" ,
94
+ "PIO_FRAMEWORK_ARDUINO_ENABLE_HID" ,
95
+ )
96
+ ):
97
+ env .Append (
98
+ CPPDEFINES = [
99
+ "USBCON" ,
100
+ ("USB_VID" , board .get ("build.hwids" , [[0 , 0 ]])[0 ][0 ]),
101
+ ("USB_PID" , board .get ("build.hwids" , [[0 , 0 ]])[0 ][1 ]),
102
+ ]
103
+ )
104
+
89
105
if any (f in env ["CPPDEFINES" ] for f in ("USBD_USE_CDC" , "USBD_USE_HID_COMPOSITE" )):
90
106
env .Append (CPPDEFINES = ["HAL_PCD_MODULE_ENABLED" ])
91
107
@@ -168,6 +184,7 @@ def configure_application_offset(mcu, upload_protocol):
168
184
join (FRAMEWORK_DIR , "cores" , "arduino" , "stm32" ),
169
185
join (FRAMEWORK_DIR , "cores" , "arduino" , "stm32" , "LL" ),
170
186
join (FRAMEWORK_DIR , "cores" , "arduino" , "stm32" , "usb" ),
187
+ join (FRAMEWORK_DIR , "cores" , "arduino" , "stm32" , "OpenAMP" ),
171
188
join (FRAMEWORK_DIR , "cores" , "arduino" , "stm32" , "usb" , "hid" ),
172
189
join (FRAMEWORK_DIR , "cores" , "arduino" , "stm32" , "usb" , "cdc" ),
173
190
join (FRAMEWORK_DIR , "system" , "Drivers" , series + "_HAL_Driver" , "Inc" ),
@@ -191,6 +208,37 @@ def configure_application_offset(mcu, upload_protocol):
191
208
"Core" ,
192
209
"Src" ,
193
210
),
211
+ join (
212
+ FRAMEWORK_DIR ,
213
+ "system" ,
214
+ "Middlewares" ,
215
+ "OpenAMP"
216
+ ),
217
+ join (
218
+ FRAMEWORK_DIR ,
219
+ "system" ,
220
+ "Middlewares" ,
221
+ "OpenAMP" ,
222
+ "open-amp" ,
223
+ "lib" ,
224
+ "include" ,
225
+ ),
226
+ join (
227
+ FRAMEWORK_DIR ,
228
+ "system" ,
229
+ "Middlewares" ,
230
+ "OpenAMP" ,
231
+ "libmetal" ,
232
+ "lib" ,
233
+ "include" ,
234
+ ),
235
+ join (
236
+ FRAMEWORK_DIR ,
237
+ "system" ,
238
+ "Middlewares" ,
239
+ "OpenAMP" ,
240
+ "virtual_driver"
241
+ ),
194
242
join (CMSIS_DIR , "Core" , "Include" ),
195
243
join (
196
244
FRAMEWORK_DIR ,
@@ -202,7 +250,6 @@ def configure_application_offset(mcu, upload_protocol):
202
250
series ,
203
251
"Include" ,
204
252
),
205
- join (CMSIS_DIR , "DSP" , "Include" ),
206
253
join (
207
254
FRAMEWORK_DIR ,
208
255
"system" ,
@@ -215,6 +262,7 @@ def configure_application_offset(mcu, upload_protocol):
215
262
"Templates" ,
216
263
"gcc" ,
217
264
),
265
+ join (CMSIS_DIR , "DSP" , "Include" ),
218
266
join (FRAMEWORK_DIR , "cores" , "arduino" ),
219
267
variant_dir ,
220
268
],
@@ -250,9 +298,10 @@ def configure_application_offset(mcu, upload_protocol):
250
298
#
251
299
252
300
if not board .get ("build.ldscript" , "" ):
301
+ env .Replace (LDSCRIPT_PATH = join (FRAMEWORK_DIR , "system" , "ldscript.ld" ))
253
302
if not isfile (join (env .subst (variant_dir ), "ldscript.ld" )):
254
303
print ("Warning! Cannot find linker script for the current target!\n " )
255
- env .Replace ( LDSCRIPT_PATH = join (variant_dir , "ldscript.ld" ))
304
+ env .Append ( LINKFLAGS = [( "-Wl,--default-script" , join (variant_dir , "ldscript.ld" ))] )
256
305
257
306
#
258
307
# Process configuration flags
0 commit comments