mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 18:17:13 +02:00
Merge pull request #209 from valeros/develop
Improve support for espressif platform. Add CI services info and integration examples.
This commit is contained in:
BIN
docs/_static/droneci-platformio-integration-1.png
vendored
Normal file
BIN
docs/_static/droneci-platformio-integration-1.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
docs/_static/droneci-platformio-integration-2.png
vendored
Normal file
BIN
docs/_static/droneci-platformio-integration-2.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 41 KiB |
201
docs/ci/appveyor.rst
Normal file
201
docs/ci/appveyor.rst
Normal file
@ -0,0 +1,201 @@
|
||||
.. _ci_appveyor:
|
||||
|
||||
AppVeyor
|
||||
========
|
||||
|
||||
`AppVeyor <http://www.appveyor.com/about>`_ is an open-source hosted,
|
||||
distributed continuous integration service used to build and test projects hosted at `GitHub <http://en.wikipedia.org/wiki/GitHub>`_ on Windows family systems.
|
||||
|
||||
AppVeyor is configured by adding a file named ``appveyor.yml``, which is a
|
||||
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
|
||||
directory of the GitHub repository.
|
||||
|
||||
AppVeyor automatically detects when a commit has been made and pushed to a
|
||||
GitHub repository that is using AppVeyor, and each time this happens, it will
|
||||
try to build the project using :ref:`cmd_ci` command. This includes commits to
|
||||
all branches, not just to the master branch. AppVeyor will also build and run
|
||||
pull requests. When that process has completed, it will notify a developer in
|
||||
the way it has been configured to do so — for example, by sending an email
|
||||
containing the build results (showing success or failure), or by posting a
|
||||
message on an IRC channel. It can be configured to build project on a range of
|
||||
different :ref:`platforms`.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Please put ``appveyor.yml`` to the root directory of the GitHub repository.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
build: off
|
||||
environment:
|
||||
matrix:
|
||||
- PLATFORMIO_CI_SRC=pathto\\source\\file.c
|
||||
- PLATFORMIO_CI_SRC=pathto\\source\\file.ino
|
||||
- PLATFORMIO_CI_SRC=pathto\\source\\directory
|
||||
|
||||
install:
|
||||
cmd: python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
|
||||
script:
|
||||
- platformio ci --lib="." --lib="c:\spi4teensy" --board=uno --board=teensy31 --board=due'
|
||||
|
||||
|
||||
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
|
||||
command.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
|
||||
project. The ``appveyor.yml`` configuration file:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
build: off
|
||||
environment:
|
||||
global:
|
||||
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
|
||||
matrix:
|
||||
- PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino"
|
||||
PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino"
|
||||
WINDOWS_SDK_VERSION: "v7.0"
|
||||
PYTHON_HOME: "C:\\Python27-x64"
|
||||
PYTHON_VERSION: "2.7"
|
||||
PYTHON_ARCH: "64"
|
||||
install:
|
||||
- "git submodule update --init --recursive"
|
||||
- "powershell scripts\\appveyor\\install.ps1"
|
||||
before_test:
|
||||
- cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts
|
||||
- cmd: git clone https://github.com/xxxajk/spi4teensy3.git c:\spi4teensy
|
||||
test_script:
|
||||
- "%PYTHON_HOME%\\Scripts\\pip --version"
|
||||
- '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --lib="." --lib="c:\spi4teensy" --board=uno --board=teensy31 --board=due'
|
||||
|
||||
The ``install.ps1`` script file:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$BASE_URL = "https://www.python.org/ftp/python/"
|
||||
$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
|
||||
$GET_PIP_PATH = "C:\get-pip.py"
|
||||
|
||||
|
||||
function DownloadPython ($python_version, $platform_suffix) {
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
$filename = "python-" + $python_version + $platform_suffix + ".msi"
|
||||
$url = $BASE_URL + $python_version + "/" + $filename
|
||||
|
||||
$basedir = $pwd.Path + "\"
|
||||
$filepath = $basedir + $filename
|
||||
if (Test-Path $filename) {
|
||||
Write-Host "Reusing" $filepath
|
||||
return $filepath
|
||||
}
|
||||
|
||||
# Download and retry up to 5 times in case of network transient errors.
|
||||
Write-Host "Downloading" $filename "from" $url
|
||||
$retry_attempts = 3
|
||||
for($i=0; $i -lt $retry_attempts; $i++){
|
||||
try {
|
||||
$webclient.DownloadFile($url, $filepath)
|
||||
break
|
||||
}
|
||||
Catch [Exception]{
|
||||
Start-Sleep 1
|
||||
}
|
||||
}
|
||||
Write-Host "File saved at" $filepath
|
||||
return $filepath
|
||||
}
|
||||
|
||||
|
||||
function InstallPython ($python_version, $architecture, $python_home) {
|
||||
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
|
||||
if (Test-Path $python_home) {
|
||||
Write-Host $python_home "already exists, skipping."
|
||||
return $false
|
||||
}
|
||||
if ($architecture -eq "32") {
|
||||
$platform_suffix = ""
|
||||
} else {
|
||||
$platform_suffix = ".amd64"
|
||||
}
|
||||
$filepath = DownloadPython $python_version $platform_suffix
|
||||
Write-Host "Installing" $filepath "to" $python_home
|
||||
$args = "/qn /i $filepath TARGETDIR=$python_home"
|
||||
Write-Host "msiexec.exe" $args
|
||||
Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru
|
||||
Write-Host "Python $python_version ($architecture) installation complete"
|
||||
return $true
|
||||
}
|
||||
|
||||
|
||||
function InstallPip ($python_home) {
|
||||
$pip_path = $python_home + "/Scripts/pip.exe"
|
||||
$python_path = $python_home + "/python.exe"
|
||||
if (-not(Test-Path $pip_path)) {
|
||||
Write-Host "Installing pip..."
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
$webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
|
||||
Write-Host "Executing:" $python_path $GET_PIP_PATH
|
||||
Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
|
||||
} else {
|
||||
Write-Host "pip already installed."
|
||||
}
|
||||
}
|
||||
|
||||
function InstallPackage ($python_home, $pkg) {
|
||||
$pip_path = $python_home + "/Scripts/pip.exe"
|
||||
& $pip_path install $pkg
|
||||
}
|
||||
|
||||
function InstallScons ($python_home) {
|
||||
Write-Host "Start installing Scons"
|
||||
$pip_path = $python_home + "/Scripts/pip.exe"
|
||||
& $pip_path install --egg "http://sourceforge.net/projects/scons/files/latest/download"
|
||||
Write-Host "Scons installed"
|
||||
}
|
||||
|
||||
function main () {
|
||||
InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME
|
||||
InstallPip $env:PYTHON_HOME
|
||||
InstallPackage $env:PYTHON_HOME setuptools
|
||||
InstallScons $env:PYTHON_HOME
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
The ``run_with_compiler.cmd`` script file:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
@ECHO OFF
|
||||
|
||||
SET COMMAND_TO_RUN=%*
|
||||
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
|
||||
|
||||
SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%"
|
||||
IF %MAJOR_PYTHON_VERSION% == "2" (
|
||||
SET WINDOWS_SDK_VERSION="v7.0"
|
||||
) ELSE IF %MAJOR_PYTHON_VERSION% == "3" (
|
||||
SET WINDOWS_SDK_VERSION="v7.1"
|
||||
) ELSE (
|
||||
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
|
||||
EXIT 1
|
||||
)
|
||||
|
||||
IF "%PYTHON_ARCH%"=="64" (
|
||||
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
|
||||
SET DISTUTILS_USE_SDK=1
|
||||
SET MSSdk=1
|
||||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
|
||||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
|
||||
ECHO Executing: %COMMAND_TO_RUN%
|
||||
call %COMMAND_TO_RUN% || EXIT 1
|
||||
) ELSE (
|
||||
ECHO Using default MSVC build environment for 32 bit architecture
|
||||
ECHO Executing: %COMMAND_TO_RUN%
|
||||
call %COMMAND_TO_RUN% || EXIT 1
|
||||
)
|
73
docs/ci/circleci.rst
Normal file
73
docs/ci/circleci.rst
Normal file
@ -0,0 +1,73 @@
|
||||
.. _ci_circleci:
|
||||
|
||||
Circle CI
|
||||
=========
|
||||
|
||||
`Circle CI <https://circleci.com/about>`_ is a hosted cloud
|
||||
platform that provides hosted continuous integration, deployment, and testing
|
||||
to `GitHub <http://en.wikipedia.org/wiki/GitHub>`_ repositories.
|
||||
|
||||
Circle CI is configured by adding a file named ``circle.yml``, which is a
|
||||
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
|
||||
directory of the GitHub repository.
|
||||
|
||||
Circle CI automatically detects when a commit has been made and pushed to a
|
||||
GitHub repository that is using Circle CI, and each time this happens, it will
|
||||
try to build the project using :ref:`cmd_ci` command. This includes commits to
|
||||
all branches, not just to the master branch. Circle CI will also build and run
|
||||
pull requests. When that process has completed, it will notify a developer in
|
||||
the way it has been configured to do so — for example, by sending an email
|
||||
containing the build results (showing success or failure), or by posting a
|
||||
message on an IRC channel. It can be configured to build project on a range of
|
||||
different :ref:`platforms`.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Please put ``circle.yml`` to the root directory of the GitHub repository.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
machine:
|
||||
|
||||
environment:
|
||||
- PLATFORMIO_CI_SRC=path/to/source/file.c
|
||||
- PLATFORMIO_CI_SRC=path/to/source/file.ino
|
||||
- PLATFORMIO_CI_SRC=path/to/source/directory
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
|
||||
test:
|
||||
override:
|
||||
- platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
|
||||
|
||||
|
||||
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
|
||||
command.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
|
||||
project. The ``circle.yml`` configuration file:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
machine:
|
||||
environment:
|
||||
PLATFORMIO_CI_SRC: examples/Bluetooth/PS3SPP/PS3SPP.ino
|
||||
PLATFORMIO_CI_SRC: examples/pl2303/pl2303_gps/pl2303_gps.ino
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
- sudo apt-get install python2.7-dev
|
||||
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
- sudo pip install --egg http://sourceforge.net/projects/scons/files/latest/download
|
||||
- wget https://github.com/xxxajk/spi4teensy3/archive/master.zip -O /tmp/spi4teensy3.zip
|
||||
- unzip /tmp/spi4teensy3.zip -d /tmp
|
||||
|
||||
test:
|
||||
override:
|
||||
- platformio ci --lib="." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 --board=due
|
70
docs/ci/drone.rst
Normal file
70
docs/ci/drone.rst
Normal file
@ -0,0 +1,70 @@
|
||||
.. _ci_drone:
|
||||
|
||||
Drone
|
||||
=====
|
||||
|
||||
`Drone <https://drone.io>`_ is a hosted continuous integration service.
|
||||
It enables you to conveniently set up projects to automatically build, test,
|
||||
and deploy as you make changes to your code to
|
||||
`GitHub <http://en.wikipedia.org/wiki/GitHub>`_ and
|
||||
`BitBucket <http://en.wikipedia.org/wiki/Bitbucket>`_ repositories.
|
||||
|
||||
Drone is configured by modifying settings in your project control panel.
|
||||
|
||||
Drone automatically detects when a commit has been made and pushed to a
|
||||
GitHub repository that is using Drone, and each time this happens, it will
|
||||
try to build the project using :ref:`cmd_ci` command. This includes commits to
|
||||
all branches, not just to the master branch. Drone will also build and run
|
||||
pull requests. When that process has completed, it will notify a developer in
|
||||
the way it has been configured to do so — for example, by sending an email
|
||||
containing the build results (showing success or failure). It can be
|
||||
configured to build project on a range of different :ref:`platforms`.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Please fill all fields for your project in the Drone control panel:
|
||||
|
||||
`Environment Variables`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
PLATFORMIO_CI_SRC=path/to/source/file.c
|
||||
PLATFORMIO_CI_SRC=path/to/source/file.ino
|
||||
PLATFORMIO_CI_SRC=path/to/source/directory
|
||||
|
||||
`Commands`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
|
||||
|
||||
.. image:: ../_static/droneci-platformio-integration-1.png
|
||||
|
||||
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
|
||||
command.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
|
||||
project. The ``circle.yml`` configuration file:
|
||||
|
||||
`Environment Variables`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP/PS3SPP.ino
|
||||
PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps/pl2303_gps.ino
|
||||
|
||||
`Commands`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install --egg http://sourceforge.net/projects/scons/files/latest/download
|
||||
wget https://github.com/xxxajk/spi4teensy3/archive/master.zip -O /tmp/spi4teensy3.zip
|
||||
unzip /tmp/spi4teensy3.zip -d /tmp
|
||||
platformio ci --lib="." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 --board=due
|
||||
|
||||
.. image:: ../_static/droneci-platformio-integration-2.png
|
@ -17,4 +17,8 @@ easily.
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
appveyor
|
||||
circleci
|
||||
drone
|
||||
shippable
|
||||
travis
|
||||
|
76
docs/ci/shippable.rst
Normal file
76
docs/ci/shippable.rst
Normal file
@ -0,0 +1,76 @@
|
||||
.. _ci_shippable:
|
||||
|
||||
Shippable
|
||||
=========
|
||||
|
||||
`Shippable <http://en.wikipedia.org/wiki/Shippable>`_ is a hosted cloud
|
||||
platform that provides hosted continuous integration, deployment, and testing
|
||||
to `GitHub <http://en.wikipedia.org/wiki/GitHub>`_ and
|
||||
`BitBucket <http://en.wikipedia.org/wiki/Bitbucket>`_ repositories.
|
||||
Shippable's continuous integration service is built using Docker.
|
||||
|
||||
Shippable is configured by adding a file named ``shippable.yml``, which is a
|
||||
`YAML <http://en.wikipedia.org/wiki/YAML>`_ format text file, to the root
|
||||
directory of the GitHub repository or you can use your Travis CI configuration
|
||||
file ``.travis.yml``.
|
||||
|
||||
Shippable automatically detects when a commit has been made and pushed to a
|
||||
GitHub repository that is using Shippable, and each time this happens, it will
|
||||
try to build the project using :ref:`cmd_ci` command. This includes commits to
|
||||
all branches, not just to the master branch. Shippable will also build and run
|
||||
pull requests. When that process has completed, it will notify a developer in
|
||||
the way it has been configured to do so — for example, by sending an email
|
||||
containing the build results (showing success or failure), or by posting a
|
||||
message on an IRC channel. It can be configured to build project on a range of
|
||||
different :ref:`platforms`.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Please put ``shippable.yml`` or ``.travis.yml`` to the root directory of the
|
||||
GitHub repository.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
language: python
|
||||
python:
|
||||
- "2.7"
|
||||
|
||||
env:
|
||||
- PLATFORMIO_CI_SRC=path/to/source/file.c
|
||||
- PLATFORMIO_CI_SRC=path/to/source/file.ino
|
||||
- PLATFORMIO_CI_SRC=path/to/source/directory
|
||||
|
||||
install:
|
||||
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
|
||||
script:
|
||||
- platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
|
||||
|
||||
|
||||
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
|
||||
command.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Integration for `USB_Host_Shield_2.0 <https://github.com/felis/USB_Host_Shield_2.0>`_
|
||||
project. The ``shippable.yml`` or ``.travis.yml`` configuration file:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
language: python
|
||||
python:
|
||||
- "2.7"
|
||||
|
||||
env:
|
||||
- PLATFORMIO_CI_SRC=examples/Bluetooth/PS3SPP/PS3SPP.ino
|
||||
- PLATFORMIO_CI_SRC=examples/pl2303/pl2303_gps/pl2303_gps.ino
|
||||
|
||||
install:
|
||||
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
- wget https://github.com/xxxajk/spi4teensy3/archive/master.zip -O /tmp/spi4teensy3.zip
|
||||
- unzip /tmp/spi4teensy3.zip -d /tmp
|
||||
|
||||
script:
|
||||
- platformio ci --lib="." --lib="/tmp/spi4teensy3-master" --board=uno --board=teensy31 --board=due
|
@ -1,29 +1,43 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WiFiClient.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
#include <ESP8266mDNS.h>
|
||||
|
||||
const char* ssid = "*****";
|
||||
const char* password = "*****";
|
||||
|
||||
const char* ssid = "******";
|
||||
const char* password = "******";
|
||||
MDNSResponder mdns;
|
||||
|
||||
ESP8266WebServer server(80);
|
||||
|
||||
const int led = 13;
|
||||
|
||||
void handle_root() {
|
||||
void handleRoot() {
|
||||
digitalWrite(led, 1);
|
||||
server.send(200, "text/plain", "hello from esp8266!");
|
||||
delay(100);
|
||||
digitalWrite(led, 0);
|
||||
}
|
||||
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(115200);
|
||||
void handleNotFound(){
|
||||
digitalWrite(led, 1);
|
||||
String message = "File Not Found\n\n";
|
||||
message += "URI: ";
|
||||
message += server.uri();
|
||||
message += "\nMethod: ";
|
||||
message += (server.method() == HTTP_GET)?"GET":"POST";
|
||||
message += "\nArguments: ";
|
||||
message += server.args();
|
||||
message += "\n";
|
||||
for (uint8_t i=0; i<server.args(); i++){
|
||||
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
|
||||
}
|
||||
server.send(404, "text/plain", message);
|
||||
digitalWrite(led, 0);
|
||||
}
|
||||
|
||||
void setup(void){
|
||||
pinMode(led, OUTPUT);
|
||||
digitalWrite(led, 0);
|
||||
|
||||
// Connect to WiFi network
|
||||
Serial.begin(115200);
|
||||
WiFi.begin(ssid, password);
|
||||
Serial.println("");
|
||||
|
||||
@ -38,17 +52,22 @@ void setup(void)
|
||||
Serial.print("IP address: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
|
||||
server.on("/", handle_root);
|
||||
if (mdns.begin("esp8266", WiFi.localIP())) {
|
||||
Serial.println("MDNS responder started");
|
||||
}
|
||||
|
||||
server.on("/", handleRoot);
|
||||
|
||||
server.on("/inline", [](){
|
||||
server.send(200, "text/plain", "this works as well");
|
||||
});
|
||||
|
||||
server.onNotFound(handleNotFound);
|
||||
|
||||
server.begin();
|
||||
Serial.println("HTTP server started");
|
||||
}
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
void loop(void){
|
||||
server.handleClient();
|
||||
}
|
@ -2,11 +2,11 @@
|
||||
"esp01": {
|
||||
"build": {
|
||||
"core": "esp8266",
|
||||
"extra_flags": "-DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266",
|
||||
"extra_flags": "-DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 -DESP8266",
|
||||
"f_cpu": "80000000L",
|
||||
"ldscript": "esp8266.ld",
|
||||
"ldscript": "esp8266.flash.512k.ld",
|
||||
"mcu": "esp8266",
|
||||
"variant": "esp01"
|
||||
"variant": "generic"
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "Espressif ESP8266 board",
|
||||
|
@ -43,6 +43,8 @@ env.Replace(
|
||||
"-Os", # optimize for size
|
||||
"-mlongcalls",
|
||||
"-mtext-section-literals",
|
||||
"-falign-functions=4",
|
||||
"-U__STRICT_ANSI__",
|
||||
"-MMD" # output dependancy info
|
||||
],
|
||||
|
||||
@ -70,12 +72,12 @@ env.Replace(
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-esptool", "esptool"),
|
||||
UPLOADERFLAGS=[
|
||||
"-vv",
|
||||
"-cd", "none",
|
||||
"-cd", "ck",
|
||||
"-cb", "$UPLOAD_SPEED",
|
||||
"-cp", "$UPLOAD_PORT",
|
||||
"-ca", "0x00000",
|
||||
"-cf", "${SOURCES[0]}",
|
||||
"-ca", "0x40000",
|
||||
"-ca", "0x10000",
|
||||
"-cf", "${SOURCES[1]}"
|
||||
],
|
||||
UPLOADCMD='$UPLOADER $UPLOADERFLAGS'
|
||||
@ -88,6 +90,9 @@ env.Append(
|
||||
"$UPLOADER",
|
||||
"-eo", "$SOURCES",
|
||||
"-bo", "${TARGETS[0]}",
|
||||
"-bm", "qio",
|
||||
"-bf", "40",
|
||||
"-bz", "512K",
|
||||
"-bs", ".text",
|
||||
"-bs", ".data",
|
||||
"-bs", ".rodata",
|
||||
@ -135,7 +140,7 @@ if "uploadlazy" in COMMAND_LINE_TARGETS:
|
||||
else:
|
||||
target_firm = env.ElfToBin(
|
||||
[join("$BUILD_DIR", "firmware_00000"),
|
||||
join("$BUILD_DIR", "firmware_40000")], target_elf)
|
||||
join("$BUILD_DIR", "firmware_10000")], target_elf)
|
||||
|
||||
|
||||
#
|
||||
|
@ -46,8 +46,8 @@ elif env.get("PLATFORM") == "espressif":
|
||||
env.Prepend(
|
||||
CPPPATH=[join("$PLATFORMFW_DIR", "sdk", "include")],
|
||||
LIBPATH=[join("$PLATFORMFW_DIR", "sdk", "lib")],
|
||||
LIBS=["hal", "phy", "net80211", "lwip",
|
||||
"wpa", "main", "pp", "c", "gcc"]
|
||||
LIBS=["smartconfig", "pp", "main", "wpa", "lwip",
|
||||
"net80211", "phy", "hal", "gcc", "m"]
|
||||
)
|
||||
|
||||
env.Replace(PLATFORMFW_DIR=PLATFORMFW_DIR)
|
||||
|
Reference in New Issue
Block a user