mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 18:17:13 +02:00
Merge pull request #98 from valeros/develop
Improve building of ASM files; Update Teensy Core to 1.21
This commit is contained in:
@ -1,28 +0,0 @@
|
||||
/* LED Blink, Teensyduino Tutorial #1
|
||||
http://www.pjrc.com/teensy/tutorial.html
|
||||
|
||||
This example code is in the public domain.
|
||||
*/
|
||||
#ifdef TEENSY20
|
||||
const int ledPin = 11;
|
||||
#elif TEENSY20PP
|
||||
const int ledPin = 6;
|
||||
#else
|
||||
const int ledPin = 13;
|
||||
#endif
|
||||
|
||||
void setup() {
|
||||
// initialize the digital pin as an output.
|
||||
pinMode(ledPin, OUTPUT);
|
||||
}
|
||||
|
||||
// the loop() methor runs over and over again,
|
||||
// as long as the board has power
|
||||
|
||||
void loop() {
|
||||
digitalWrite(ledPin, HIGH); // set the LED on
|
||||
delay(300); // wait for a second
|
||||
digitalWrite(ledPin, LOW); // set the LED off
|
||||
delay(100); // wait for a second
|
||||
}
|
||||
|
21
examples/teensy/teensy-internal-libs/README.rst
Normal file
21
examples/teensy/teensy-internal-libs/README.rst
Normal 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/teensy/teensy-internal-libs
|
||||
|
||||
# Process example project
|
||||
> platformio run
|
||||
|
||||
# Upload firmware
|
||||
> platformio run --target upload
|
||||
|
||||
# Clean build files
|
||||
> platformio run --target clean
|
79
examples/teensy/teensy-internal-libs/src/ChatServer.ino
Normal file
79
examples/teensy/teensy-internal-libs/src/ChatServer.ino
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
Chat Server
|
||||
|
||||
A simple server that distributes any incoming messages to all
|
||||
connected clients. To use telnet to your device's IP address and type.
|
||||
You can see the client's input in the serial monitor as well.
|
||||
Using an Arduino Wiznet Ethernet shield.
|
||||
|
||||
Circuit:
|
||||
* Ethernet shield attached to pins 10, 11, 12, 13
|
||||
* Analog inputs attached to pins A0 through A5 (optional)
|
||||
|
||||
created 18 Dec 2009
|
||||
by David A. Mellis
|
||||
modified 9 Apr 2012
|
||||
by Tom Igoe
|
||||
|
||||
*/
|
||||
|
||||
#include <SPI.h>
|
||||
#include <Ethernet.h>
|
||||
|
||||
// Enter a MAC address and IP address for your controller below.
|
||||
// The IP address will be dependent on your local network.
|
||||
// gateway and subnet are optional:
|
||||
byte mac[] = {
|
||||
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
|
||||
IPAddress ip(192,168,1, 177);
|
||||
IPAddress gateway(192,168,1, 1);
|
||||
IPAddress subnet(255, 255, 0, 0);
|
||||
|
||||
|
||||
// telnet defaults to port 23
|
||||
EthernetServer server(23);
|
||||
boolean alreadyConnected = false; // whether or not the client was connected previously
|
||||
|
||||
void setup() {
|
||||
// initialize the ethernet device
|
||||
Ethernet.begin(mac, ip, gateway, subnet);
|
||||
// start listening for clients
|
||||
server.begin();
|
||||
// Open serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
; // wait for serial port to connect. Needed for Leonardo only
|
||||
}
|
||||
|
||||
|
||||
Serial.print("Chat server address:");
|
||||
Serial.println(Ethernet.localIP());
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// wait for a new client:
|
||||
EthernetClient client = server.available();
|
||||
|
||||
// when the client sends the first byte, say hello:
|
||||
if (client) {
|
||||
if (!alreadyConnected) {
|
||||
// clead out the input buffer:
|
||||
client.flush();
|
||||
Serial.println("We have a new client");
|
||||
client.println("Hello, client!");
|
||||
alreadyConnected = true;
|
||||
}
|
||||
|
||||
if (client.available() > 0) {
|
||||
// read the bytes incoming from the client:
|
||||
char thisChar = client.read();
|
||||
// echo the bytes back to the client:
|
||||
server.write(thisChar);
|
||||
// echo the bytes to the server as well:
|
||||
Serial.write(thisChar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -57,7 +57,8 @@ env = DefaultEnvironment()
|
||||
|
||||
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "baseavr.py")))
|
||||
|
||||
if "digispark" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("core", ""):
|
||||
if "digispark" in env.get(
|
||||
"BOARD_OPTIONS", {}).get("build", {}).get("core", ""):
|
||||
env.Replace(
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-micronucleus", "micronucleus"),
|
||||
UPLOADERFLAGS=[
|
||||
|
@ -11,18 +11,17 @@ env = DefaultEnvironment()
|
||||
|
||||
env.Replace(
|
||||
AR="arm-none-eabi-ar",
|
||||
AS="arm-none-eabi-gcc",
|
||||
AS="arm-none-eabi-as",
|
||||
CC="arm-none-eabi-gcc",
|
||||
CXX="arm-none-eabi-g++",
|
||||
OBJCOPY="arm-none-eabi-objcopy",
|
||||
RANLIB="arm-none-eabi-ranlib",
|
||||
SIZETOOL="arm-none-eabi-size",
|
||||
|
||||
ASCOM=("$AS -o $TARGET -c -x assembler-with-cpp "
|
||||
"$CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"),
|
||||
|
||||
ARFLAGS=["rcs"],
|
||||
|
||||
ASPPFLAGS=["-x", "assembler-with-cpp"],
|
||||
|
||||
CPPFLAGS=[
|
||||
"-g", # include debugging info (so errors include line numbers)
|
||||
"-Os", # optimize for size
|
||||
@ -58,8 +57,7 @@ if env.get("BOARD_OPTIONS", {}).get("build", {}).get("cpu", "")[-2:] == "m4":
|
||||
env.Append(
|
||||
ASFLAGS=[
|
||||
"-mfloat-abi=hard",
|
||||
"-mfpu=fpv4-sp-d16",
|
||||
"-fsingle-precision-constant"
|
||||
"-mfpu=fpv4-sp-d16"
|
||||
],
|
||||
CCFLAGS=[
|
||||
"-mfloat-abi=hard",
|
||||
|
@ -11,19 +11,18 @@ env = DefaultEnvironment()
|
||||
|
||||
env.Replace(
|
||||
AR="avr-ar",
|
||||
AS="avr-gcc",
|
||||
AS="avr-as",
|
||||
CC="avr-gcc",
|
||||
CXX="avr-g++",
|
||||
OBJCOPY="avr-objcopy",
|
||||
RANLIB="avr-ranlib",
|
||||
SIZETOOL="avr-size",
|
||||
|
||||
ASCOM=("$AS -o $TARGET -c -x assembler-with-cpp "
|
||||
"$CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"),
|
||||
|
||||
ARFLAGS=["rcs"],
|
||||
|
||||
CCFLAGS=[
|
||||
ASPPFLAGS=["-x", "assembler-with-cpp"],
|
||||
|
||||
CPPFLAGS=[
|
||||
"-g", # include debugging info (so errors include line numbers)
|
||||
"-Os", # optimize for size
|
||||
"-Wall", # show warnings
|
||||
@ -33,15 +32,15 @@ env.Replace(
|
||||
"-mmcu=$BOARD_MCU"
|
||||
],
|
||||
|
||||
CPPDEFINES=[
|
||||
"F_CPU=$BOARD_F_CPU"
|
||||
],
|
||||
|
||||
CXXFLAGS=[
|
||||
"-fno-exceptions",
|
||||
"-fno-threadsafe-statics"
|
||||
],
|
||||
|
||||
CPPDEFINES=[
|
||||
"F_CPU=$BOARD_F_CPU"
|
||||
],
|
||||
|
||||
LINKFLAGS=[
|
||||
"-Os",
|
||||
"-mmcu=$BOARD_MCU",
|
||||
|
@ -52,7 +52,7 @@ if "usb_product" in BOARD_BUILDOPTS:
|
||||
|
||||
if env.get("PLATFORM") == "teensy":
|
||||
ARDUINO_USBDEFINES += [
|
||||
"ARDUINO=106",
|
||||
"ARDUINO=10600",
|
||||
"TEENSYDUINO=%d" % ARDUINO_VERSION
|
||||
]
|
||||
else:
|
||||
|
@ -19,14 +19,13 @@ elif env.get("BOARD_OPTIONS", {}).get("build", {}).get("core") == "teensy3":
|
||||
|
||||
env.Append(
|
||||
CPPDEFINES=[
|
||||
"USB_PID=null",
|
||||
"USB_VID=null",
|
||||
"USB_SERIAL",
|
||||
"LAYOUT_US_ENGLISH"
|
||||
],
|
||||
|
||||
CXXFLAGS=[
|
||||
"-std=gnu++0x"
|
||||
"-std=gnu++0x",
|
||||
"-felide-constructors"
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -16,18 +16,17 @@ env = DefaultEnvironment()
|
||||
|
||||
env.Replace(
|
||||
AR="msp430-ar",
|
||||
AS="msp430-gcc",
|
||||
AS="msp430-as",
|
||||
CC="msp430-gcc",
|
||||
CXX="msp430-g++",
|
||||
OBJCOPY="msp430-objcopy",
|
||||
RANLIB="msp430-ranlib",
|
||||
SIZETOOL="msp430-size",
|
||||
|
||||
ASCOM=("$AS -o $TARGET -c -x assembler-with-cpp "
|
||||
"$CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES"),
|
||||
|
||||
ARFLAGS=["rcs"],
|
||||
|
||||
ASPPFLAGS=["-x", "assembler-with-cpp"],
|
||||
|
||||
CCFLAGS=[
|
||||
"-g", # include debugging info (so errors include line numbers)
|
||||
"-Os", # optimize for size
|
||||
|
@ -9,12 +9,20 @@ from os.path import basename, dirname, isdir, isfile, join, normpath
|
||||
from time import sleep
|
||||
|
||||
from SCons.Script import Exit, SConscript, SConscriptChdir
|
||||
from SCons.Util import case_sensitive_suffixes
|
||||
from serial import Serial
|
||||
|
||||
from platformio.util import get_serialports
|
||||
|
||||
|
||||
def ProcessGeneral(env):
|
||||
# fix ASM handling under non-casitive OS
|
||||
if not case_sensitive_suffixes('.s', '.S'):
|
||||
env.Replace(
|
||||
AS="$CC",
|
||||
ASCOM="$ASPPCOM"
|
||||
)
|
||||
|
||||
if "extra_flags" in env.get("BOARD_OPTIONS", {}).get("build", {}):
|
||||
env.MergeFlags(env.subst("${BOARD_OPTIONS['build']['extra_flags']}"))
|
||||
|
||||
|
Reference in New Issue
Block a user