Merge pull request #124 from valeros/develop

Add support for "panStamp" boards // Resolve #117
This commit is contained in:
Ivan Kravets
2015-03-16 23:03:16 +02:00
17 changed files with 222 additions and 24 deletions

View File

@ -0,0 +1,21 @@
How to buid PlatformIO based project
====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/ivankravets/platformio/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/atmelavr-and-arduino/panstamp-blink
# Process example project
> platformio run
# Upload firmware
> platformio run --target upload
# Clean build files
> platformio run --target clean

View File

@ -0,0 +1,23 @@
#
# Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
# Simple and base environment
# [env:mybaseenv]
# platform = %INSTALLED_PLATFORM_NAME_HERE%
# framework =
# board =
#
# Automatic targets - enable auto-uploading
# targets = upload
[env:panStampAVR]
platform = atmelavr
framework = arduino
board = panStampAVR

View File

@ -0,0 +1,29 @@
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

View File

@ -19,15 +19,15 @@
[env:disco_f407vg] [env:disco_f407vg]
platform = ststm32 platform = ststm32
framework = opencm3 framework = libopencm3
board = disco_f407vg board = disco_f407vg
[env:disco_l152rb] [env:disco_l152rb]
platform = ststm32 platform = ststm32
framework = opencm3 framework = libopencm3
board = disco_l152rb board = disco_l152rb
[env:disco_f303vc] [env:disco_f303vc]
platform = ststm32 platform = ststm32
framework = opencm3 framework = libopencm3
board = disco_f303vc board = disco_f303vc

View File

@ -0,0 +1,21 @@
How to buid PlatformIO based project
====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/ivankravets/platformio/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/timsp430/panstamp-blink
# Process example project
> platformio run
# Upload firmware
> platformio run --target upload
# Clean build files
> platformio run --target clean

View File

@ -0,0 +1,23 @@
#
# Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
# Simple and base environment
# [env:mybaseenv]
# platform = %INSTALLED_PLATFORM_NAME_HERE%
# framework =
# board =
#
# Automatic targets - enable auto-uploading
# targets = upload
[env:panStampNRG]
platform = timsp430
framework = arduino
board = panStampNRG

View File

@ -0,0 +1,29 @@
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

View File

@ -19,15 +19,15 @@
[env:LaunchPad_lm4f120h5qr] [env:LaunchPad_lm4f120h5qr]
platform = titiva platform = titiva
framework = opencm3 framework = libopencm3
board = lplm4f120h5qr board = lplm4f120h5qr
[env:LaunchPad_tm4c1230c3pm] [env:LaunchPad_tm4c1230c3pm]
platform = titiva platform = titiva
framework = opencm3 framework = libopencm3
board = lptm4c1230c3pm board = lptm4c1230c3pm
[env:LaunchPad_tm4c1294ncpdt] [env:LaunchPad_tm4c1294ncpdt]
platform = titiva platform = titiva
framework = opencm3 framework = libopencm3
board = lptm4c1294ncpdt board = lptm4c1294ncpdt

View File

@ -75,5 +75,44 @@
}, },
"url": "http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html", "url": "http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html",
"vendor": "SainSmart" "vendor": "SainSmart"
},
"panStampAVR": {
"build": {
"core": "panstamp",
"extra_flags": "-DPANSTAMP_AVR",
"f_cpu": "8000000L",
"mcu": "atmega328p",
"variant": "panstamp"
},
"frameworks": ["arduino"],
"name": "PanStamp AVR",
"platform": "atmelavr",
"upload": {
"maximum_ram_size": 2048,
"maximum_size": 32256,
"protocol": "arduino",
"require_upload_port" : true,
"speed": 57600
},
"url": "http://www.panstamp.com/product/panstamp-avr/",
"vendor": "PanStamp"
},
"panStampNRG": {
"build": {
"core": "panstamp",
"f_cpu": "12000000L",
"mcu": "cc430f5137",
"variant": "panstamp_nrg_1.1"
},
"frameworks": ["arduino"],
"name": "PanStamp NRG 1.1",
"platform": "timsp430",
"upload": {
"maximum_ram_size": 4096,
"maximum_size": 32640,
"protocol": "flash-bsl"
},
"url": "http://www.panstamp.com/product/197/",
"vendor": "PanStamp"
} }
} }

View File

@ -9,7 +9,7 @@
"mcu": "stm32f407vgt6", "mcu": "stm32f407vgt6",
"variant": "stm32f4" "variant": "stm32f4"
}, },
"frameworks": ["cmsis", "spl", "opencm3", "mbed"], "frameworks": ["cmsis", "spl", "libopencm3", "mbed"],
"name": "STM32F4DISCOVERY", "name": "STM32F4DISCOVERY",
"platform": "ststm32", "platform": "ststm32",
"upload": { "upload": {
@ -29,7 +29,7 @@
"mcu": "stm32l152rbt6", "mcu": "stm32l152rbt6",
"variant": "stm32l1" "variant": "stm32l1"
}, },
"frameworks": ["cmsis","spl","opencm3"], "frameworks": ["cmsis","spl","libopencm3"],
"name": "STM32LDISCOVERY", "name": "STM32LDISCOVERY",
"platform": "ststm32", "platform": "ststm32",
"upload": { "upload": {
@ -49,7 +49,7 @@
"mcu": "stm32f303vct6", "mcu": "stm32f303vct6",
"variant": "stm32f3" "variant": "stm32f3"
}, },
"frameworks": ["cmsis", "spl", "opencm3", "mbed"], "frameworks": ["cmsis", "spl", "libopencm3", "mbed"],
"name": "STM32F3DISCOVERY", "name": "STM32F3DISCOVERY",
"platform": "ststm32", "platform": "ststm32",
"upload": { "upload": {

View File

@ -8,7 +8,7 @@
"mcu": "lplm4f120h5qr", "mcu": "lplm4f120h5qr",
"variant": "stellarpad" "variant": "stellarpad"
}, },
"frameworks": ["energia", "opencm3"], "frameworks": ["energia", "libopencm3"],
"name": "LaunchPad (Stellaris) w/ lm4f120 (80MHz)", "name": "LaunchPad (Stellaris) w/ lm4f120 (80MHz)",
"platform": "titiva", "platform": "titiva",
"upload": { "upload": {
@ -27,7 +27,7 @@
"mcu": "lptm4c1230c3pm", "mcu": "lptm4c1230c3pm",
"variant": "stellarpad" "variant": "stellarpad"
}, },
"frameworks": ["energia", "opencm3"], "frameworks": ["energia", "libopencm3"],
"name": "LaunchPad (Tiva C) w/ tm4c123 (80MHz)", "name": "LaunchPad (Tiva C) w/ tm4c123 (80MHz)",
"platform": "titiva", "platform": "titiva",
"upload": { "upload": {
@ -46,7 +46,7 @@
"mcu": "lptm4c1294ncpdt", "mcu": "lptm4c1294ncpdt",
"variant": "launchpad_129" "variant": "launchpad_129"
}, },
"frameworks": ["energia", "opencm3"], "frameworks": ["energia", "libopencm3"],
"name": "LaunchPad (Tiva C) w/ tm4c129 (120MHz)", "name": "LaunchPad (Tiva C) w/ tm4c129 (120MHz)",
"platform": "titiva", "platform": "titiva",
"upload": { "upload": {

View File

@ -29,12 +29,17 @@ BOARD_BUILDOPTS = BOARD_OPTS.get("build", {})
PLATFORMFW_DIR = join("$PIOPACKAGES_DIR", PLATFORMFW_DIR = join("$PIOPACKAGES_DIR",
"framework-arduino${PLATFORM.replace('atmel', '')}") "framework-arduino${PLATFORM.replace('atmel', '')}")
if env.get("PLATFORM") == "digistump": if "digispark" in BOARD_BUILDOPTS.get("core"):
PLATFORMFW_DIR = join( PLATFORMFW_DIR = join(
"$PIOPACKAGES_DIR", "$PIOPACKAGES_DIR",
"framework-arduino%s" % ( "framework-arduino%s" % (
"sam" if BOARD_BUILDOPTS.get("cpu") == "cortex-m3" else "avr") "sam" if BOARD_BUILDOPTS.get("cpu") == "cortex-m3" else "avr")
) )
elif env.get("PLATFORM") == "timsp430":
PLATFORMFW_DIR = join(
"$PIOPACKAGES_DIR",
"framework-arduinomsp430"
)
env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR) env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR)

View File

@ -23,7 +23,7 @@ from platformio.util import exec_command
env = DefaultEnvironment() env = DefaultEnvironment()
env.Replace( env.Replace(
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-opencm3") PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-libopencm3")
) )
BOARD_BUILDOPTS = env.get("BOARD_OPTIONS", {}).get("build", {}) BOARD_BUILDOPTS = env.get("BOARD_OPTIONS", {}).get("build", {})
@ -103,7 +103,7 @@ def get_source_files(src_dir):
for search_path in mkdata['vpath']: for search_path in mkdata['vpath']:
src_path = normpath(join(src_dir, search_path, src_file)) src_path = normpath(join(src_dir, search_path, src_file))
if isfile(src_path): if isfile(src_path):
sources.append(join("$BUILD_DIR", "FrameworkOpenCM3", sources.append(join("$BUILD_DIR", "FrameworkLibOpenCM3",
src_path.replace(lib_root + sep, ""))) src_path.replace(lib_root + sep, "")))
break break
return sources return sources
@ -139,14 +139,14 @@ if BOARD_BUILDOPTS.get("core") == "lm4f":
) )
env.VariantDir( env.VariantDir(
join("$BUILD_DIR", "FrameworkOpenCM3Variant"), join("$BUILD_DIR", "FrameworkLibOpenCM3Variant"),
join("$PLATFORMFW_DIR", "include") join("$PLATFORMFW_DIR", "include")
) )
env.Append( env.Append(
CPPPATH=[ CPPPATH=[
join("$BUILD_DIR", "FrameworkOpenCM3"), join("$BUILD_DIR", "FrameworkLibOpenCM3"),
join("$BUILD_DIR", "FrameworkOpenCM3Variant") join("$BUILD_DIR", "FrameworkLibOpenCM3Variant")
] ]
) )
@ -159,7 +159,7 @@ ldscript_path = find_ldscript(root_dir)
merge_ld_scripts(ldscript_path) merge_ld_scripts(ldscript_path)
generate_nvic_files() generate_nvic_files()
# override ldscript by opencm3 # override ldscript by libopencm3
assert "LDSCRIPT_PATH" in env assert "LDSCRIPT_PATH" in env
env.Replace( env.Replace(
LDSCRIPT_PATH=ldscript_path LDSCRIPT_PATH=ldscript_path
@ -167,11 +167,11 @@ env.Replace(
libs = [] libs = []
env.VariantDir( env.VariantDir(
join("$BUILD_DIR", "FrameworkOpenCM3"), join("$BUILD_DIR", "FrameworkLibOpenCM3"),
"$PLATFORMFW_DIR" "$PLATFORMFW_DIR"
) )
libs.append(env.Library( libs.append(env.Library(
join("$BUILD_DIR", "FrameworkOpenCM3"), join("$BUILD_DIR", "FrameworkLibOpenCM3"),
get_source_files(root_dir) get_source_files(root_dir)
)) ))

View File

@ -26,6 +26,10 @@ PLATFORM_PACKAGES = {
("Arduino Wiring-based Framework", ("Arduino Wiring-based Framework",
"http://arduino.cc/en/Reference/HomePage") "http://arduino.cc/en/Reference/HomePage")
], ],
"framework-arduinomsp430": [
("Arduino Wiring-based Framework (MSP430 Core)",
"http://arduino.cc/en/Reference/HomePage")
],
"framework-energiamsp430": [ "framework-energiamsp430": [
("Energia Wiring-based Framework (MSP430 Core)", ("Energia Wiring-based Framework (MSP430 Core)",
"http://energia.nu/reference/") "http://energia.nu/reference/")
@ -45,7 +49,7 @@ PLATFORM_PACKAGES = {
"http://www.st.com" "http://www.st.com"
"/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890") "/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890")
], ],
"framework-opencm3": [ "framework-libopencm3": [
("libOpenCM3 Framework", "http://www.libopencm3.org/") ("libOpenCM3 Framework", "http://www.libopencm3.org/")
], ],
"framework-mbed": [ "framework-mbed": [

View File

@ -41,7 +41,7 @@ class Ststm32Platform(BasePlatform):
"default": True "default": True
}, },
"framework-opencm3": { "framework-libopencm3": {
"default": True "default": True
}, },

View File

@ -29,6 +29,10 @@ class Timsp430Platform(BasePlatform):
"framework-energiamsp430": { "framework-energiamsp430": {
"default": True "default": True
},
"framework-arduinomsp430": {
"default": True
} }
} }

View File

@ -35,7 +35,7 @@ class TitivaPlatform(BasePlatform):
"default": True "default": True
}, },
"framework-opencm3": { "framework-libopencm3": {
"default": True "default": True
} }
} }