From 0da43a2136593cb19dbdb0f51e066c65a5d5a33b Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Fri, 2 Aug 2024 14:53:48 +0200 Subject: [PATCH] Add Telit Charlie board --- boards/telit_charlie.json | 53 ++++++++++++++++++++++ builder/frameworks/arduino/arduino-samd.py | 2 + examples/arduino-blink/platformio.ini | 5 ++ platform.json | 6 +++ platform.py | 7 ++- 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 boards/telit_charlie.json diff --git a/boards/telit_charlie.json b/boards/telit_charlie.json new file mode 100644 index 0000000..0d97189 --- /dev/null +++ b/boards/telit_charlie.json @@ -0,0 +1,53 @@ +{ + "build": { + "arduino": { + "ldscript": "flash_with_bootloader.ld" + }, + "core": "telit", + "cpu": "cortex-m0plus", + "extra_flags": "-DARDUINO_TELIT_SAMD_CHARLIE -D__SAMD21G18A__", + "f_cpu": "48000000L", + "hwids": [ + [ + "0x04d8", + "0xeaab" + ], + [ + "0x04d8", + "0xeb97" + ] + ], + "mcu": "samd21g18a", + "usb_product": "Telit Charlie Board", + "variant": "charlie" + }, + "debug": { + "jlink_device": "ATSAMD21G18", + "openocd_chipname": "at91samd21g18", + "openocd_target": "at91samdXX", + "svd_path": "ATSAMD21G18A.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Telit-Charlie", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "native_usb": true, + "offset_address": "0x2000", + "protocol": "sam-ba", + "protocols": [ + "sam-ba", + "blackmagic", + "jlink", + "atmel-ice" + ], + "require_upload_port": true, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.telit.com/support-tools/development-evaluation-kits/charlie-evaluation-kit-for-cellular-lpwa/", + "vendor": "Telit" + } diff --git a/builder/frameworks/arduino/arduino-samd.py b/builder/frameworks/arduino/arduino-samd.py index f26241c..398f4fa 100644 --- a/builder/frameworks/arduino/arduino-samd.py +++ b/builder/frameworks/arduino/arduino-samd.py @@ -46,6 +46,8 @@ BUILD_CORE = "arduino" if VENDOR_CORE == "sparkfun" and board.get("build.mcu", "").startswith("samd51"): BUILD_CORE = "arduino51" +if VENDOR_CORE == "telit": + BUILD_CORE = "def" env.Append( CPPDEFINES=[ diff --git a/examples/arduino-blink/platformio.ini b/examples/arduino-blink/platformio.ini index febffa4..5b87e2e 100644 --- a/examples/arduino-blink/platformio.ini +++ b/examples/arduino-blink/platformio.ini @@ -121,3 +121,8 @@ framework = arduino platform = atmelsam board = seeed_wio_lite_mg126 framework = arduino + +[env:telit_charlie] +platform = atmelsam +board = telit_charlie +framework = arduino diff --git a/platform.json b/platform.json index 484d6b0..ca1fb28 100644 --- a/platform.json +++ b/platform.json @@ -97,6 +97,12 @@ "owner": "platformio", "version": "~1.0.6" }, + "framework-arduino-samd-telit": { + "type": "framework", + "optional": true, + "owner": "platformio", + "version": "https://github.com/maxgerhardt/arduino-charlie/archive/refs/tags/1.0.4.zip" + }, "framework-cmsis": { "type": "framework", "optional": true, diff --git a/platform.py b/platform.py index 3d5208f..feabc39 100644 --- a/platform.py +++ b/platform.py @@ -69,7 +69,12 @@ def configure_default_packages(self, variables, targets): self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.90301.0" if build_core in ("adafruit", "seeed"): self.packages["framework-cmsis"]["version"] = "~2.50400.0" - + if build_core == "telit": + self.packages["toolchain-gccarmnoneeabi"][ + "version"] = "~1.70201.0" + self.packages["tool-bossac"]["version"] = "~1.10700.0" + self.packages["framework-cmsis"]["version"] = "~1.40500.0" + self.packages["framework-cmsis-atmel"]["version"] = "~1.2.0" if ( board.get("build.core", "") in ("adafruit", "seeed", "sparkfun") and "tool-bossac" in self.packages