forked from platformio/platformio-core
Add support for RFDuino // Resolve #319
This commit is contained in:
commit
1b7b2ca0a2
11 files changed
+148
-8
No files matched your search
@@ -14,7 +14,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
VERSION = (2, 7, "0.dev0")
|
||||
VERSION = (2, 7, "0.dev1")
|
||||
__version__ = ".".join([str(s) for s in VERSION])
|
||||
|
||||
__title__ = "platformio"
|
||||
|
||||
@@ -142,5 +142,25 @@
|
||||
},
|
||||
"url": "https://developer.mbed.org/platforms/Delta-DFCM-NNN40/",
|
||||
"vendor": "Delta"
|
||||
},
|
||||
"rfduino": {
|
||||
"build": {
|
||||
"core": "arduino",
|
||||
"extra_flags": "-D__RFduino__",
|
||||
"f_cpu": "16000000L",
|
||||
"ldscript": "RFduino.ld",
|
||||
"cpu": "cortex-m0",
|
||||
"mcu": "nrf51822",
|
||||
"variant": "rfduino"
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "RFduino",
|
||||
"platform": "nordicnrf51",
|
||||
"upload": {
|
||||
"maximum_ram_size": 8192,
|
||||
"maximum_size": 131072
|
||||
},
|
||||
"url": "http://www.rfduino.com/product/rfd22102-rfduino-dip/index.html",
|
||||
"vendor": "RFduino"
|
||||
}
|
||||
}
|
||||
@@ -111,12 +111,7 @@ if "BOARD" in env:
|
||||
UPLOAD_SPEED="${BOARD_OPTIONS['upload'].get('speed', None)}")
|
||||
if "ldscript" in env.get("BOARD_OPTIONS", {}).get("build", {}):
|
||||
env.Replace(
|
||||
LDSCRIPT_PATH=(
|
||||
env['BOARD_OPTIONS']['build']['ldscript']
|
||||
if isfile(env['BOARD_OPTIONS']['build']['ldscript'])
|
||||
else join("$PIOHOME_DIR", "packages", "ldscripts",
|
||||
"${BOARD_OPTIONS['build']['ldscript']}")
|
||||
)
|
||||
LDSCRIPT_PATH="${BOARD_OPTIONS['build']['ldscript']}"
|
||||
)
|
||||
|
||||
if env['PLATFORM'] != env.get("BOARD_OPTIONS", {}).get("platform"):
|
||||
|
||||
@@ -60,6 +60,34 @@ elif env.get("PLATFORM") == "espressif":
|
||||
LIBS=["smartconfig", "pp", "main", "wpa", "lwip",
|
||||
"net80211", "wps", "crypto", "phy", "hal", "axtls", "gcc", "m"]
|
||||
)
|
||||
elif env.get("PLATFORM") == "nordicnrf51":
|
||||
PLATFORMFW_DIR = join(
|
||||
"$PIOPACKAGES_DIR",
|
||||
"framework-arduinonordicnrf51"
|
||||
)
|
||||
env.Prepend(
|
||||
CPPPATH=[
|
||||
join("$PLATFORMFW_DIR", "system", "CMSIS", "CMSIS", "Include"),
|
||||
join("$PLATFORMFW_DIR", "system", "RFduino"),
|
||||
join("$PLATFORMFW_DIR", "system", "RFduino", "include")
|
||||
],
|
||||
LIBPATH=[
|
||||
join(
|
||||
"$PLATFORMFW_DIR",
|
||||
"variants",
|
||||
"${BOARD_OPTIONS['build']['variant']}"
|
||||
),
|
||||
join(
|
||||
"$PLATFORMFW_DIR",
|
||||
"variants",
|
||||
"${BOARD_OPTIONS['build']['variant']}",
|
||||
"linker_scripts",
|
||||
"gcc"
|
||||
),
|
||||
],
|
||||
LIBS=["RFduino", "RFduinoBLE", "RFduinoGZLL", "RFduinoSystem"]
|
||||
)
|
||||
|
||||
|
||||
env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR)
|
||||
|
||||
|
||||
@@ -25,6 +25,17 @@ env = DefaultEnvironment()
|
||||
|
||||
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
|
||||
|
||||
if env.subst("$BOARD") == "rfduino":
|
||||
env.Append(
|
||||
CPPFLAGS=["-fno-builtin"],
|
||||
LINKFLAGS=["--specs=nano.specs"]
|
||||
)
|
||||
env.Replace(
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-rfdloader", "rfdloader"),
|
||||
UPLOADERFLAGS=["-q", "$UPLOAD_PORT", "$SOURCES"],
|
||||
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS"'
|
||||
)
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
@@ -51,7 +62,12 @@ AlwaysBuild(target_size)
|
||||
# Target: Upload by default .bin file
|
||||
#
|
||||
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
|
||||
if env.subst("$BOARD") == "rfduino":
|
||||
upload = env.Alias(
|
||||
["upload", "uploadlazy"], target_firm,
|
||||
[lambda target, source, env: env.AutodetectUploadPort(), "$UPLOADCMD"])
|
||||
else:
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
|
||||
AlwaysBuild(upload)
|
||||
|
||||
#
|
||||
|
||||
@@ -47,6 +47,10 @@ PLATFORM_PACKAGES = {
|
||||
("Arduino Wiring-based Framework (ESP8266 Core)",
|
||||
"https://github.com/esp8266/Arduino")
|
||||
],
|
||||
"framework-arduinonordicnrf51": [
|
||||
("Arduino Wiring-based Framework (RFDuino Core)",
|
||||
"https://github.com/RFduino/RFduino")
|
||||
],
|
||||
"framework-energiamsp430": [
|
||||
("Energia Wiring-based Framework (MSP430 Core)",
|
||||
"http://energia.nu/reference/")
|
||||
@@ -139,6 +143,9 @@ PLATFORM_PACKAGES = {
|
||||
],
|
||||
"tool-esptool": [
|
||||
("esptool-ck", "https://github.com/igrr/esptool-ck")
|
||||
],
|
||||
"tool-rfdloader": [
|
||||
("rfdloader", "https://github.com/RFduino/RFduino")
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -37,8 +37,22 @@ class Nordicnrf51Platform(BasePlatform):
|
||||
|
||||
"framework-mbed": {
|
||||
"alias": "framework"
|
||||
},
|
||||
|
||||
"framework-arduinonordicnrf51": {
|
||||
"alias": "framework"
|
||||
},
|
||||
|
||||
"tool-rfdloader": {
|
||||
}
|
||||
}
|
||||
|
||||
def get_name(self):
|
||||
return "Nordic nRF51"
|
||||
|
||||
def configure_default_packages(self, envoptions, targets):
|
||||
if envoptions.get("board") == "rfduino":
|
||||
self.PACKAGES['tool-rfdloader']['alias'] = "uploader"
|
||||
|
||||
return BasePlatform.configure_default_packages(
|
||||
self, envoptions, targets)
|
||||
Reference in new issue
Block a user