;/******************** F r i e n d s h i p E n d e r ********************
; * 本程序隶属于 Readguy 开源项目, 请尊重开源开发者, 也就是我FriendshipEnder.
; * 如果有条件请到 extra/artset/reward 中扫描打赏,否则请在 Bilibili 上支持我.
; * 项目交流QQ群: 926824162 (萌新可以进来问问题的哟)
; * 郑重声明: 未经授权还请不要商用本开源项目编译出的程序.
; * 
; * @file platformio.ini
; * @author FriendshipEnder (f_ender@163.com), Bilibili: FriendshipEnder
; * @version 1.0
; * @date 2023-09-18
; * @brief platformIO项目基础控制文件.
; * 
; * @attention
; * Copyright (c) 2022-2023 FriendshipEnder
; * 
; * Apache License, Version 2.0
; * 
; * Licensed under the Apache License, Version 2.0 (the "License");
; * you may not use this file except in compliance with the License.
; * You may obtain a copy of the License at
; * 
; *     http://www.apache.org/licenses/LICENSE-2.0
; * 
; * Unless required by applicable law or agreed to in writing, software
; * distributed under the License is distributed on an "AS IS" BASIS,
; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; * See the License for the specific language governing permissions and
; * limitations under the License.
;*/

;更改此处来实现ESP32和ESP8266两个版本的编译
;default_envs = esp32dev - ESP32环境
;default_envs = nodemcuv2 - esp8266环境
;default_envs = esp32s3_2m - ESP32S3 2MB PSRAM环境
;default_envs = esp32s3_8m - ESP32S3 8MB PSRAM环境
;default_envs = esp32c3_luatos - ESP32C3环境
;default_envs = esp32s2_dev - ESP32S2环境(我这边只有ESP32S2-Solo, 测试可以编译)

[platformio]
default_envs = nodemcuv2
;lib_deps = 
;lovyan03/LovyanGFX

[env]
board_build.filesystem = littlefs ; SPIFFS mode
upload_speed = 921600 ; If using USB-JTAG, this selection is dummy
monitor_speed = 115200

[env:esp32dev] ; 适用于ESP32的项目配置方案 注意是经典的ESP32...
platform = espressif32
board = esp32dev
board_build.f_cpu = 240000000L
board_build.f_flash = 80000000L
board_build.flash_mode = dio
board_build.partitions = readguy_4MB.csv ; defined
framework = espidf, arduino
monitor_filters = esp32_exception_decoder
;build_type = debug
build_flags = 
    -Wall
    -Wextra
;  -DCORE_DEBUG_LEVEL=4

[env:nodemcuv2] ; 适用于ESP8266的项目配置方案
platform = espressif8266
board = nodemcuv2
framework = arduino
board_build.f_cpu = 160000000L
board_build.ldscript = eagle.flash.4m2m.ld
monitor_filters = esp8266_exception_decoder
;build_type = debug

build_flags = 
    -Wall
    -Wextra
;  -DNON32XFER_HANDLER ;不需要PROGMEM保留字也可以访问flash中的内容
;  -D PIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48 ;增大可用的HEAP内存
;  -fstack-protector ;打开栈溢出保护器


[env:esp32s3_2m] ;适用于ESP32S3:2MB PSRAM 的项目配置方案. for ESP32S3 NxR2 series
; 圆屏, 适用于 flash 任意, PSRAM 2MB 的场景. 范例用的分区表是4M 的
; PSRAM 必须在menuconfig 里改
platform = espressif32
board = esp32-s3-devkitc-1
framework = espidf, arduino
board_build.f_cpu = 240000000L
board_build.f_flash = 80000000L
board_build.flash_mode = dio      ; Running flash config is QIO
board_build.partitions = readguy_4MB.csv ; defined
monitor_filters = esp32_exception_decoder
;build_type = debug

build_flags = 
    -Wall
    -Wextra
    ;-DARDUINO_USB_MODE=1
    ;-DARDUINO_USB_CDC_ON_BOOT=1 ; 是否需要使用USB串口调试，如果需要调试则打开，否则禁用，
                                ; 如果打开了这个选项但是不连接串口，在有串口输出的地方会卡顿1秒左右
    -DBOARD_HAS_PSRAM=1  ;是否使用PSRAM
    -DPSRAM_SIZE_KB=2048
;    -DARDUINO_RUNNING_CORE=1
;    -DARDUINO_EVENT_RUNNING_CORE=1
;    -Werror
;lib_deps_builtin =
;    SPI
;    littlefs
;    SD_MMC


[env:esp32s3_8m] ;适用于ESP32S3:8MB PSRAM 的项目配置方案. for ESP32S3 NxR8 series
; 方屏, 适用于 flash 任意, PSRAM 8MB 的场景. 范例用的分区表是 8M 的
; PSRAM 必须在menuconfig 里改
platform = espressif32
board = lolin_s3
framework = espidf, arduino
board_build.f_cpu = 240000000L
board_build.f_flash = 80000000L
board_build.flash_mode = dio
board_build.partitions = readguy_16MB.csv
monitor_filters = esp32_exception_decoder

build_flags = 
    -Wall
    -Wextra
    ;-DARDUINO_USB_MODE=1
    ;-DARDUINO_USB_CDC_ON_BOOT=1 ; 是否需要使用USB串口调试，如果需要调试则打开，否则禁用，
                                ; 如果打开了这个选项但是不连接串口，在有串口输出的地方会卡顿1秒左右
    -DBOARD_HAS_PSRAM=1  ;是否使用PSRAM
    -DPSRAM_SIZE_KB=8192
;    -DARDUINO_RUNNING_CORE=1
;    -DARDUINO_EVENT_RUNNING_CORE=1
;lib_deps_builtin =
;    SPI
;    littlefs
;    SD_MMC


[env:esp32c3_luatos]        ;适用于ESP32C3 的项目配置方案.
platform = espressif32      ;注意在使用不带串口芯片的ESP32C3时, 尽量不要使用引脚18和19.
board = esp32-c3-devkitm-1  ;那俩是连接的板载USB串口 (USB-CDC, 可以下载程序或是当免驱串口)
framework = espidf, arduino ;合宙你真该死啊出这种没串口芯片的ESP32C3 甚至旧版本arduino无法编程!
board_build.f_cpu = 160000000L ;芯片速率默认160MHz, 不支持高频240MHz.
;board_build.flash_size=2MB ;2MB的芯片就选readguy_2MB_noOTA.csv
board_build.flash_size=4MB ;根据你自己的改, 不得小于4MB. 2MB的芯片就选readguy_2MB_noOTA.csv
board_build.f_flash = 80000000L
board_build.flash_mode = dio
board_build.partitions = readguy_4MB.csv ; 2MB的芯片就选readguy_2MB_noOTA.csv
build_flags = 
    -Wall
    -Wextra
    ;-DARDUINO_USB_MODE=1
    ;-DARDUINO_USB_CDC_ON_BOOT=1 ; 是否需要使用USB串口调试，如果需要调试则打开，否则禁用，
                                ; 如果打开了这个选项但是不连接串口，在有串口输出的地方会卡顿1秒左右
                                ; 合宙无串口开发板请选择此选项为1.
  -DCORE_DEBUG_LEVEL=1 ; None 0, Error 1, Warn 2, Info 3, Debug 4, Verbose 5

[env:esp32c3_no_uart]        ;适用于ESP32C3 的项目配置方案.
platform = espressif32      ;注意在使用不带串口芯片的ESP32C3时, 尽量不要使用引脚18和19.
board = esp32-c3-devkitm-1  ;那俩是连接的板载USB串口 (USB-CDC, 可以下载程序或是当免驱串口)
framework = espidf, arduino ;合宙你真该死啊出这种没串口芯片的ESP32C3 甚至旧版本arduino无法编程!
board_build.f_cpu = 160000000L ;芯片速率默认160MHz, 不支持高频240MHz.
;board_build.flash_size=2MB ;2MB的芯片就选readguy_2MB_noOTA.csv
board_build.flash_size=4MB ;根据你自己的改, 不得小于4MB. 2MB的芯片就选readguy_2MB_noOTA.csv
board_build.f_flash = 80000000L
board_build.flash_mode = dio
board_build.partitions = readguy_4MB.csv ; 2MB的芯片就选readguy_2MB_noOTA.csv
build_flags = 
    -Wall
    -Wextra
    -DARDUINO_USB_MODE=1
    -DARDUINO_USB_CDC_ON_BOOT=1 ; 是否需要使用USB串口调试，如果需要调试则打开，否则禁用，
                                ; 如果打开了这个选项但是不连接串口，在有串口输出的地方会卡顿1秒左右
                                ; 合宙无串口开发板请选择此选项为1.
  -DCORE_DEBUG_LEVEL=1 ; None 0, Error 1, Warn 2, Info 3, Debug 4, Verbose 5


[env:esp32s2_dev] ;适用于ESP32S2 的项目配置方案.
platform = espressif32
board = nodemcu-32s2
framework = espidf, arduino
build_type = debug
board_build.f_cpu = 160000000L
board_build.flash_size=4MB ;根据你自己的改, 不得小于4MB
board_build.f_flash = 80000000L
board_build.flash_mode = dio
board_build.partitions = readguy_4MB.csv ; defined
build_flags = 
    -Wall
    -Wextra
  -DCORE_DEBUG_LEVEL=1 ; None 0, Error 1, Warn 2, Info 3, Debug 4, Verbose 5
monitor_filters = esp32_exception_decoder
