Merge branch 'release/v4.3.0'

This commit is contained in:
Valerii Koval
2022-05-20 13:55:41 +03:00
30 changed files with 1062 additions and 62 deletions
+1 -1
View File
@@ -45,4 +45,4 @@ jobs:
pio pkg install --global --platform symlink://.
- name: Build examples
run: |
platformio run -d ${{ matrix.example }}
pio run -d ${{ matrix.example }}
+30
View File
@@ -0,0 +1,30 @@
name: "Unit Testing"
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: [3.7]
example:
- "examples/espidf-hello-world"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U https://github.com/platformio/platformio/archive/develop.zip
pio pkg install --global --platform symlink://.
- name: Build test
run: |
pio test -d ${{ matrix.example }} --without-uploading --without-testing
+42
View File
@@ -0,0 +1,42 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ADAFRUIT_FEATHER_ESP32_V2",
"-DBOARD_HAS_PSRAM",
"-mfix-esp32-psram-cache-issue",
"-mfix-esp32-psram-cache-strategy=memw"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "adafruit_feather_esp32_v2"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Adafruit Feather ESP32 V2",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.adafruit.com/product/5400",
"vendor": "Adafruit"
}
+62
View File
@@ -0,0 +1,62 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0x239A",
"0x8113"
],
[
"0x239A",
"0x0113"
],
[
"0x239A",
"0x8114"
]
],
"mcu": "esp32s3",
"variant": "adafruit_feather_esp32s3_nopsram"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Adafruit Feather ESP32-S3 No PSRAM",
"upload": {
"arduino": {
"flash_extra_images": [
[
"0x410000",
"variants/adafruit_feather_esp32s3_nopsram/tinyuf2.bin"
]
]
},
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.adafruit.com/product/5323",
"vendor": "Adafruit"
}
+42
View File
@@ -0,0 +1,42 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ADAFRUIT_QTPY_ESP32_PICO",
"-DBOARD_HAS_PSRAM",
"-mfix-esp32-psram-cache-issue",
"-mfix-esp32-psram-cache-strategy=memw"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "adafruit_qtpy_esp32"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Adafruit QT Py ESP32",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.adafruit.com/product/5395",
"vendor": "Adafruit"
}
+44
View File
@@ -0,0 +1,44 @@
{
"build": {
"arduino":{
"ldscript": "esp32c3_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ADAFRUIT_QTPY_ESP32C3",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_USB_CDC_ON_BOOT=1"
],
"f_cpu": "160000000L",
"f_flash": "80000000L",
"flash_mode": "dout",
"hwids": [
[
"0X303A",
"0x1001"
]
],
"mcu": "esp32c3",
"variant": "adafruit_qtpy_esp32c3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32c3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Adafruit QT Py ESP32-C3",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.adafruit.com/product/5405",
"vendor": "Adafruit"
}
+62
View File
@@ -0,0 +1,62 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ADAFRUIT_QTPY_ESP32S3_NOPSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0x239A",
"0x8119"
],
[
"0x239A",
"0x0119"
],
[
"0x239A",
"0x811A"
]
],
"mcu": "esp32s3",
"variant": "adafruit_qtpy_esp32s3_nopsram"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Adafruit QT Py ESP32-S3 No PSRAM",
"upload": {
"arduino": {
"flash_extra_images": [
[
"0x410000",
"variants/adafruit_qtpy_esp32s3_nopsram/tinyuf2.bin"
]
]
},
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.adafruit.com/product/5426",
"vendor": "Adafruit"
}
+37
View File
@@ -0,0 +1,37 @@
{
"build": {
"arduino":{
"ldscript": "esp32c3_out.ld"
},
"core": "esp32",
"f_cpu": "160000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"extra_flags": [
"-DARDUINO_AirM2M_CORE_ESP32C3",
"-DARDUINO_USB_MODE=1"
],
"mcu": "esp32c3",
"variant": "AirM2M_CORE_ESP32C3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32c3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "AirM2M CORE ESP32C3",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://wiki.luatos.com/chips/esp32c3/board.html",
"vendor": "AirM2M"
}
+41
View File
@@ -0,0 +1,41 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_DYDK1A",
"-DBOARD_HAS_PSRAM",
"-mfix-esp32-psram-cache-issue",
"-mfix-esp32-psram-cache-strategy=memw"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "deneyapkart1A"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet"
],
"debug": {
"openocd_board": "esp32-wrover.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Deneyap Kart 1A",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://deneyapkart.org/magaza/urun-deneyap-kart.html",
"vendor": "Deneyap"
}
+1
View File
@@ -4,6 +4,7 @@
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": "-DARDUINO_ESP32S2_DEV",
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
+44
View File
@@ -0,0 +1,44 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_ESP32S3_DEV",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"hwids": [
[
"0X303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "esp32s3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Espressif ESP32-S3-DevKitC-1",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
"vendor": "Espressif"
}
+48
View File
@@ -0,0 +1,48 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld",
"memory_type": "qspi_opi"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_ESP32_S3_BOX",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_USB_CDC_ON_BOOT=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0X303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "esp32s3box"
},
"connectivity": [
"wifi",
"bluetooth"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Espressif ESP32-S3-Box",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"require_upload_port": true,
"speed": 921600
},
"url": "https://www.adafruit.com/product/5290",
"vendor": "Espressif"
}
+48
View File
@@ -0,0 +1,48 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld",
"memory_type": "opi_opi"
},
"boot": "opi",
"core": "esp32",
"extra_flags": [
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_ESP32S3_CAM_LCD",
"-DARDUINO_USB_MODE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dout",
"hwids": [
[
"0X303A",
"0x1001"
]
],
"mcu": "esp32s3",
"variant": "esp32s3camlcd"
},
"connectivity": [
"wifi",
"bluetooth"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "ESP32S3 CAM LCD",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"require_upload_port": true,
"speed": 921600
},
"url": "https://www.espressif.com/en/news/Maple_Eye_ESP32-S3",
"vendor": "Espressif"
}
+8 -4
View File
@@ -4,13 +4,17 @@
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": "-DARDUINO_ESP32_DEV",
"extra_flags": [
"-DARDUINO_LIONBIT",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"flags" : "-DCORE_DEBUG_LEVEL=5",
"mcu": "esp32",
"variant": "esp32"
"variant": "lionbit"
},
"connectivity": [
"wifi",
@@ -25,7 +29,7 @@
"arduino",
"espidf"
],
"name": "LionBit",
"name": "Lion:Bit Dev Board",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
@@ -37,5 +41,5 @@
"speed" : 115200
},
"url": "http://lionbit.lk/",
"vendor": "Lion::Bit"
"vendor": "Lion:Bit"
}
+44
View File
@@ -0,0 +1,44 @@
{
"build": {
"arduino": {
"ldscript": "esp32c3_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_LOLIN_C3_MINI",
"-DARDUINO_USB_MODE=1",
"-DARDUINO_USB_CDC_ON_BOOT=1"
],
"f_cpu": "160000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0X303A",
"0x1001"
]
],
"mcu": "esp32c3",
"variant": "esp32c3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32c3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "WEMOS LOLIN C3 Mini",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.wemos.cc/en/latest/c3/c3_mini.html",
"vendor": "WEMOS"
}
+46
View File
@@ -0,0 +1,46 @@
{
"build": {
"arduino": {
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_LOLIN_S2_MINI",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"hwids": [
[
"0X303A",
"0x80C2"
]
],
"mcu": "esp32s2",
"variant": "lolin_s2_mini"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_board": "esp32s2.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "WEMOS LOLIN S2 Mini",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 921600
},
"url": "https://www.wemos.cc/en/latest/s2/s2_mini.html",
"vendor": "WEMOS"
}
+46
View File
@@ -0,0 +1,46 @@
{
"build": {
"arduino": {
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_LOLIN_S2_PICO",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"hwids": [
[
"0X303A",
"0x80C5"
]
],
"mcu": "esp32s2",
"variant": "lolin_s2_pico"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_board": "esp32s2.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "WEMOS LOLIN S2 PICO",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 921600
},
"url": "https://www.wemos.cc/en/latest/s2/s2_pico.html",
"vendor": "WEMOS"
}
+38
View File
@@ -0,0 +1,38 @@
{
"build": {
"arduino": {
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": "-DARDUINO_Trueverit_ESP32_Universal_IoT_Driver_MK_III",
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "esp32-trueverit-iot-driver-mkiii"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Trueverit ESP32 Universal IoT Driver MK III",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://trueverit.com/",
"vendor": "Trueverit"
}
+48
View File
@@ -0,0 +1,48 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld",
"partitions": "default_16MB.csv"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_FEATHERS3",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0X303A",
"0x80D0"
]
],
"mcu": "esp32s3",
"variant": "um_feathers3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Unexpected Maker FeatherS3",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://unexpectedmaker.com/shop/feathers3",
"vendor": "Unexpected Maker"
}
+48
View File
@@ -0,0 +1,48 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_16MB.csv"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_PROS3",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0X303A",
"0x80D0"
]
],
"mcu": "esp32s3",
"variant": "um_pros3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Unexpected Maker PROS3",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://unexpectedmaker.com/shop/pros3",
"vendor": "Unexpected Maker"
}
+46
View File
@@ -0,0 +1,46 @@
{
"build": {
"arduino": {
"ldscript": "esp32s2_out.ld"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_RMP",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1"
],
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"hwids": [
[
"0X303A",
"0x80F6"
]
],
"mcu": "esp32s2",
"variant": "um_rmp"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s2.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Unexpected Maker RMP",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 921600
},
"url": "https://unexpectedmaker.com/esp32s2",
"vendor": "Unexpected Maker"
}
+48
View File
@@ -0,0 +1,48 @@
{
"build": {
"arduino":{
"ldscript": "esp32s3_out.ld",
"partitions": "default_8MB.csv"
},
"core": "esp32",
"extra_flags": [
"-DARDUINO_TINYS3",
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [
[
"0X303A",
"0x80D0"
]
],
"mcu": "esp32s3",
"variant": "um_tinys3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
"arduino"
],
"name": "Unexpected Maker TinyS3",
"upload": {
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://unexpectedmaker.com/shop/ttinys3-esp32s3",
"vendor": "Unexpected Maker"
}
+38
View File
@@ -0,0 +1,38 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld",
"partitions": "huge_app.csv"
},
"core": "esp32",
"extra_flags": "-DARDUINO_WATCHY",
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "watchy"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"debug": {
"openocd_board": "esp-wroom-32.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "SQFMI Watchy v2.0",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://watchy.sqfmi.com/",
"vendor": "SQFMI"
}
+93 -42
View File
@@ -273,13 +273,15 @@ def load_target_configurations(cmake_codemodel, cmake_api_reply_dir):
return configs
def build_library(default_env, lib_config, project_src_dir, prepend_dir=None):
def build_library(
default_env, lib_config, project_src_dir, prepend_dir=None, debug_allowed=True
):
lib_name = lib_config["nameOnDisk"]
lib_path = lib_config["paths"]["build"]
if prepend_dir:
lib_path = os.path.join(prepend_dir, lib_path)
lib_objects = compile_source_files(
lib_config, default_env, project_src_dir, prepend_dir
lib_config, default_env, project_src_dir, prepend_dir, debug_allowed
)
return default_env.Library(
target=os.path.join("$BUILD_DIR", lib_path, lib_name), source=lib_objects
@@ -427,57 +429,92 @@ def get_sdk_configuration():
return {}
def find_framework_service_files(search_path, sdk_config):
result = {}
result["lf_files"] = list()
result["kconfig_files"] = list()
result["kconfig_build_files"] = list()
for d in os.listdir(search_path):
path = os.path.join(search_path, d)
if not os.path.isdir(path):
continue
for f in os.listdir(path):
# Skip hardware specific files as they will be added later
if f == "linker.lf" and not os.path.basename(path).startswith(
("esp32", "riscv")
def load_component_paths(framework_components_dir, ignored_component_prefixes=None):
def _scan_components_from_framework():
result = []
for component in os.listdir(framework_components_dir):
component_path = os.path.join(framework_components_dir, component)
if component.startswith(ignored_component_prefixes) or not os.path.isdir(
component_path
):
result["lf_files"].append(os.path.join(path, f))
elif f == "Kconfig.projbuild":
result["kconfig_build_files"].append(os.path.join(path, f))
elif f == "Kconfig":
result["kconfig_files"].append(os.path.join(path, f))
continue
result.append(component_path)
return result
# First of all, try to load the list of used components from the project description
components = []
ignored_component_prefixes = ignored_component_prefixes or []
project_description_file = os.path.join(BUILD_DIR, "project_description.json")
if os.path.isfile(project_description_file):
with open(project_description_file) as fp:
try:
data = json.load(fp)
for path in data.get("build_component_paths", []):
if not os.path.basename(path).startswith(
ignored_component_prefixes
):
components.append(path)
except:
print(
"Warning: Could not find load components from project description!\n"
)
return components or _scan_components_from_framework()
def extract_linker_script_fragments(framework_components_dir, sdk_config):
# Hardware-specific components are excluded from search and added manually below
project_components = load_component_paths(
framework_components_dir, ignored_component_prefixes=("esp32", "riscv")
)
result = []
for component_path in project_components:
linker_fragment = os.path.join(component_path, "linker.lf")
if os.path.isfile(linker_fragment):
result.append(linker_fragment)
if not result:
sys.stderr.write("Error: Failed to extract paths to linker script fragments\n")
env.Exit(1)
if mcu == "esp32c3":
result["lf_files"].append(
os.path.join(FRAMEWORK_DIR, "components", "riscv", "linker.lf")
)
result.append(os.path.join(framework_components_dir, "riscv", "linker.lf"))
result["lf_files"].extend(
result.extend(
[
os.path.join(
FRAMEWORK_DIR,
"components",
framework_components_dir,
idf_variant,
"ld",
"%s_fragments.lf" % idf_variant,
),
os.path.join(
FRAMEWORK_DIR,
"components",
framework_components_dir,
idf_variant,
"linker.lf",
),
os.path.join(FRAMEWORK_DIR, "components", "newlib", "newlib.lf"),
os.path.join(framework_components_dir, "newlib", "newlib.lf"),
]
)
if sdk_config.get("SPIRAM_CACHE_WORKAROUND", False):
result["lf_files"].append(
result.append(
os.path.join(
FRAMEWORK_DIR, "components", "newlib", "esp32-spiram-rom-functions-c.lf"
framework_components_dir, "newlib", "esp32-spiram-rom-functions-c.lf"
)
)
if board.get("build.esp-idf.extra_lf_files", ""):
result.extend(
[
lf if os.path.isabs(lf) else os.path.join(PROJECT_DIR, lf)
for lf in board.get("build.esp-idf.extra_lf_files").splitlines()
if lf.strip()
]
)
return result
@@ -508,7 +545,7 @@ def create_custom_libraries_list(ldgen_libraries_file, ignore_targets):
def generate_project_ld_script(sdk_config, ignore_targets=None):
ignore_targets = ignore_targets or []
project_files = find_framework_service_files(
linker_script_fragments = extract_linker_script_fragments(
os.path.join(FRAMEWORK_DIR, "components"), sdk_config
)
@@ -521,7 +558,9 @@ def generate_project_ld_script(sdk_config, ignore_targets=None):
args = {
"script": os.path.join(FRAMEWORK_DIR, "tools", "ldgen", "ldgen.py"),
"config": SDKCONFIG_PATH,
"fragments": " ".join(['"%s"' % f for f in project_files.get("lf_files")]),
"fragments": " ".join(
['"%s"' % fs.to_unix_path(f) for f in linker_script_fragments]
),
"kconfig": os.path.join(FRAMEWORK_DIR, "Kconfig"),
"env_file": os.path.join("$BUILD_DIR", "config.env"),
"libraries_list": libraries_list,
@@ -553,11 +592,11 @@ def generate_project_ld_script(sdk_config, ignore_targets=None):
)
def prepare_build_envs(config, default_env):
def prepare_build_envs(config, default_env, debug_allowed=True):
build_envs = []
target_compile_groups = config.get("compileGroups")
is_build_type_debug = "debug" in env.GetBuildType()
is_build_type_debug = "debug" in env.GetBuildType() and debug_allowed
for cg in target_compile_groups:
includes = []
sys_includes = []
@@ -587,8 +626,10 @@ def prepare_build_envs(config, default_env):
return build_envs
def compile_source_files(config, default_env, project_src_dir, prepend_dir=None):
build_envs = prepare_build_envs(config, default_env)
def compile_source_files(
config, default_env, project_src_dir, prepend_dir=None, debug_allowed=True
):
build_envs = prepare_build_envs(config, default_env, debug_allowed)
objects = []
components_dir = fs.to_unix_path(os.path.join(FRAMEWORK_DIR, "components"))
for source in config.get("sources", []):
@@ -703,7 +744,7 @@ def find_lib_deps(components_map, elf_config, link_args, ignore_components=None)
return result
def build_bootloader():
def build_bootloader(sdk_config):
bootloader_src_dir = os.path.join(
FRAMEWORK_DIR, "components", "bootloader", "subproject"
)
@@ -743,7 +784,15 @@ def build_bootloader():
target_configs, ["STATIC_LIBRARY", "OBJECT_LIBRARY"]
)
build_components(bootloader_env, components_map, bootloader_src_dir, "bootloader")
# Note: By default the size of bootloader is limited to 0x2000 bytes,
# in debug mode the footprint size can be easily grow beyond this limit
build_components(
bootloader_env,
components_map,
bootloader_src_dir,
"bootloader",
debug_allowed=sdk_config.get("BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG", False),
)
link_args = extract_link_args(elf_config)
extra_flags = filter_args(link_args["LINKFLAGS"], ["-T", "-u"])
link_args["LINKFLAGS"] = sorted(
@@ -788,10 +837,12 @@ def get_components_map(target_configs, target_types, ignore_components=None):
return result
def build_components(env, components_map, project_src_dir, prepend_dir=None):
def build_components(
env, components_map, project_src_dir, prepend_dir=None, debug_allowed=True
):
for k, v in components_map.items():
components_map[k]["lib"] = build_library(
env, v["config"], project_src_dir, prepend_dir
env, v["config"], project_src_dir, prepend_dir, debug_allowed
)
@@ -1232,7 +1283,7 @@ project_lib_includes = get_project_lib_includes(env)
# Compile bootloader
#
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", build_bootloader())
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", build_bootloader(sdk_config))
#
# Target: ESP-IDF menuconfig
+7 -2
View File
@@ -57,6 +57,10 @@ def _get_board_flash_mode(env):
return mode
def _get_board_boot_mode(env):
return env.BoardConfig().get("build.boot", "$BOARD_FLASH_MODE")
def _parse_size(value):
if isinstance(value, int):
return value
@@ -111,8 +115,8 @@ def _update_max_upload_size(env):
if not env.get("PARTITIONS_TABLE_CSV"):
return
sizes = [
_parse_size(p['size']) for p in _parse_partitions(env)
if p['type'] in ("0", "app")
_parse_size(p["size"]) for p in _parse_partitions(env)
if p["type"] in ("0", "app")
]
if sizes:
board.update("upload.maximum_size", max(sizes))
@@ -167,6 +171,7 @@ if mcu == "esp32c3":
toolchain_arch = "riscv32-esp"
env.Replace(
__get_board_boot_mode=_get_board_boot_mode,
__get_board_f_flash=_get_board_f_flash,
__get_board_flash_mode=_get_board_flash_mode,
+10 -2
View File
@@ -28,7 +28,15 @@ framework = arduino
board = lolin32
monitor_speed = 115200
[env:ttgo-lora32-v21]
[env:lolin_c3_mini]
platform = espressif32
framework = arduino
board = ttgo-lora32-v21
board = lolin_c3_mini
monitor_speed = 115200
[env:esp32-s3-devkitc-1]
platform = espressif32
framework = arduino
board = esp32-s3-devkitc-1
monitor_speed = 115200
+3 -1
View File
@@ -7,7 +7,9 @@
#include <Arduino.h>
// Set LED_BUILTIN if it is not defined by Arduino framework
// #define LED_BUILTIN 2
#ifndef LED_BUILTIN
#define LED_BUILTIN 2
#endif
void setup()
{
@@ -0,0 +1,15 @@
#include <unity.h>
void test_dummy(void)
{
TEST_ASSERT_EQUAL(1, 1);
}
void app_main()
{
UNITY_BEGIN();
RUN_TEST(test_dummy);
UNITY_END();
}
+8 -2
View File
@@ -18,7 +18,7 @@
"type": "git",
"url": "https://github.com/platformio/platform-espressif32.git"
},
"version": "4.2.0",
"version": "4.3.0",
"frameworks": {
"arduino": {
"package": "framework-arduinoespressif32",
@@ -43,6 +43,12 @@
"optional": true,
"owner": "espressif",
"version": "8.4.0+2021r2-patch3"
},
"toolchain-xtensa-esp32s3": {
"type": "toolchain",
"optional": true,
"owner": "espressif",
"version": "8.4.0+2021r2-patch3"
},
"toolchain-riscv32-esp": {
"type": "toolchain",
@@ -66,7 +72,7 @@
"type": "framework",
"optional": true,
"owner": "platformio",
"version": "~3.20002.0"
"version": "~3.20003.0"
},
"framework-arduino-mbcwb": {
"type": "framework",
+14 -8
View File
@@ -95,13 +95,18 @@ class Espressif32Platform(PlatformBase):
elif p in ("tool-mconf", "tool-idf") and "windows" in get_systype():
self.packages[p]["optional"] = False
if mcu in ("esp32s2", "esp32c3"):
self.packages.pop("toolchain-xtensa-esp32", None)
for available_mcu in ("esp32", "esp32s2", "esp32s3"):
if available_mcu == mcu:
self.packages["toolchain-xtensa-%s" % mcu]["optional"] = False
else:
self.packages.pop("toolchain-xtensa-%s" % available_mcu, None)
if mcu in ("esp32s2", "esp32s3", "esp32c3"):
self.packages.pop("toolchain-esp32ulp", None)
# RISC-V based toolchain for ESP32C3 and ESP32S2 ULP
if mcu != "esp32s2":
self.packages.pop("toolchain-esp32s2ulp", None)
# RISC-V based toolchain for ESP32C3, ESP32S2, ESP32S3 ULP
self.packages["toolchain-riscv32-esp"]["optional"] = False
if mcu == "esp32s2":
self.packages["toolchain-xtensa-esp32s2"]["optional"] = False
is_legacy_project = (
build_core == "mbcwb"
@@ -113,6 +118,7 @@ class Espressif32Platform(PlatformBase):
for toolchain in (
"toolchain-xtensa-esp32",
"toolchain-xtensa-esp32s2",
"toolchain-xtensa-esp32s3",
"toolchain-riscv32-esp",
):
self.packages.pop(toolchain, None)
@@ -163,6 +169,7 @@ class Espressif32Platform(PlatformBase):
supported_debug_tools = [
"cmsis-dap",
"esp-prog",
"esp_usb_jtag",
"iot-bus-jtag",
"jlink",
"minimodule",
@@ -189,9 +196,7 @@ class Espressif32Platform(PlatformBase):
if link in non_debug_protocols or link in debug["tools"]:
continue
if link == "jlink":
openocd_interface = link
elif link == "cmsis-dap":
if link in ("jlink", "cmsis-dap", "esp_usb_jtag"):
openocd_interface = link
elif link in ("esp-prog", "ftdi"):
if board.id == "esp32-s2-kaluga-1":
@@ -334,6 +339,7 @@ class Espressif32Platform(PlatformBase):
toolchain_remap = {
"xtensa-esp32-elf-gcc": "toolchain-xtensa-esp32",
"xtensa-esp32s2-elf-gcc": "toolchain-xtensa-esp32s2",
"xtensa-esp32s3-elf-gcc": "toolchain-xtensa-esp32s3",
"riscv32-esp-elf-gcc": "toolchain-riscv32-esp",
}