Skip to content

Commit 54ea855

Browse files
committed
Marlin fixes
1 parent 3c186e6 commit 54ea855

File tree

4 files changed

+65
-9
lines changed

4 files changed

+65
-9
lines changed

.piopm

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"type": "tool", "name": "framework-arduinoststm32", "version": "4.10900.200819", "spec": {"owner": "platformio", "id": 8080, "name": "framework-arduinoststm32", "requirements": null, "url": null}}

cores/arduino/avr/dtostrf.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ char *dtostrf(double val, signed char width, unsigned char prec, char *sout)
5858
remainder *= decade;
5959
dec_part = (int)remainder;
6060

61-
if (negative) {
61+
// Avoid -0.00...0
62+
if (negative && (int_part + dec_part != 0)) {
6263
sprintf(sout, "-%ld.%0*ld", int_part, prec, dec_part);
6364
} else {
6465
sprintf(sout, "%ld.%0*ld", int_part, prec, dec_part);

package.json

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
{
2-
"name": "framework-arduinoststm32",
3-
"description": "Arduino Wiring-based Framework (STM32 Core)",
4-
"version": "0.0.0",
5-
"url": "https://github.com/stm32duino/Arduino_Core_STM32"
6-
}
2+
"name": "framework-arduinoststm32",
3+
"version": "4.10900.200819",
4+
"description": "Arduino Wiring-based Framework for ST STM32 microcontrollers (MRiscoC fixes)",
5+
"keywords": [
6+
"framework",
7+
"arduino",
8+
"stmicroelectronics",
9+
"stm32"
10+
],
11+
"repository": {
12+
"type": "git",
13+
"url": "https://github.com/mriscoc/Arduino_Core_STM32"
14+
}
15+
}

tools/platformio-build.py

+48-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
board = env.BoardConfig()
3333

3434
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")
3636
assert isdir(FRAMEWORK_DIR)
3737
assert isdir(CMSIS_DIR)
3838

@@ -168,6 +168,7 @@ def configure_application_offset(mcu, upload_protocol):
168168
join(FRAMEWORK_DIR, "cores", "arduino", "stm32"),
169169
join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "LL"),
170170
join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "usb"),
171+
join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "OpenAMP"),
171172
join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "usb", "hid"),
172173
join(FRAMEWORK_DIR, "cores", "arduino", "stm32", "usb", "cdc"),
173174
join(FRAMEWORK_DIR, "system", "Drivers", series + "_HAL_Driver", "Inc"),
@@ -191,6 +192,37 @@ def configure_application_offset(mcu, upload_protocol):
191192
"Core",
192193
"Src",
193194
),
195+
join(
196+
FRAMEWORK_DIR,
197+
"system",
198+
"Middlewares",
199+
"OpenAMP"
200+
),
201+
join(
202+
FRAMEWORK_DIR,
203+
"system",
204+
"Middlewares",
205+
"OpenAMP",
206+
"open-amp",
207+
"lib",
208+
"include",
209+
),
210+
join(
211+
FRAMEWORK_DIR,
212+
"system",
213+
"Middlewares",
214+
"OpenAMP",
215+
"libmetal",
216+
"lib",
217+
"include",
218+
),
219+
join(
220+
FRAMEWORK_DIR,
221+
"system",
222+
"Middlewares",
223+
"OpenAMP",
224+
"virtual_driver"
225+
),
194226
join(CMSIS_DIR, "Core", "Include"),
195227
join(
196228
FRAMEWORK_DIR,
@@ -202,7 +234,6 @@ def configure_application_offset(mcu, upload_protocol):
202234
series,
203235
"Include",
204236
),
205-
join(CMSIS_DIR, "DSP", "Include"),
206237
join(
207238
FRAMEWORK_DIR,
208239
"system",
@@ -215,6 +246,7 @@ def configure_application_offset(mcu, upload_protocol):
215246
"Templates",
216247
"gcc",
217248
),
249+
join(CMSIS_DIR, "DSP", "Include"),
218250
join(FRAMEWORK_DIR, "cores", "arduino"),
219251
variant_dir,
220252
],
@@ -241,6 +273,18 @@ def configure_application_offset(mcu, upload_protocol):
241273
LIBPATH=[variant_dir, join(CMSIS_DIR, "DSP", "Lib", "GCC")],
242274
)
243275

276+
if "build.usb_product" in board:
277+
env.Append(
278+
CPPDEFINES=[
279+
("USB_VID", board.get("build.hwids")[0][0]),
280+
("USB_PID", board.get("build.hwids")[0][1]),
281+
("USB_PRODUCT", '\\"%s\\"' %
282+
board.get("build.usb_product", "").replace('"', "")),
283+
("USB_MANUFACTURER", '\\"%s\\"' %
284+
board.get("vendor", "").replace('"', ""))
285+
]
286+
)
287+
244288
env.ProcessFlags(board.get("build.framework_extra_flags.arduino", ""))
245289

246290
configure_application_offset(mcu, upload_protocol)
@@ -250,9 +294,10 @@ def configure_application_offset(mcu, upload_protocol):
250294
#
251295

252296
if not board.get("build.ldscript", ""):
297+
env.Replace(LDSCRIPT_PATH=join(FRAMEWORK_DIR, "system", "ldscript.ld"))
253298
if not isfile(join(env.subst(variant_dir), "ldscript.ld")):
254299
print("Warning! Cannot find linker script for the current target!\n")
255-
env.Replace(LDSCRIPT_PATH=join(variant_dir, "ldscript.ld"))
300+
env.Append(LINKFLAGS=[("-Wl,--default-script", join(variant_dir, "ldscript.ld"))])
256301

257302
#
258303
# Process configuration flags

0 commit comments

Comments
 (0)