目录
多环境配置
性能优化
多环境配置
平常的一些platformio的配置是这样的:
[env:esp32dev]
platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200
upload_speed = 921600
lib_deps = ; painlessmesh/painlessMesh@^1.5.0bodmer/TFT_eSPI@^2.5.43moononournation/GFX Library for Arduino@^1.4.6; lorol/LittleFS_esp32@^1.0.6
board_build.filesystem = littlefsbuild_flags = -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE-D CONFIG_ARDUHAL_LOG_COLORS=1
但是事实上,platformio.ini是支持多配置的:
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
monitor_speed = 115200
upload_speed = 921600
board_build.filesystem = littlefs
build_flags = -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE-D CONFIG_ARDUHAL_LOG_COLORS=1
lib_deps = bodmer/TFT_eSPI@^2.5.43moononournation/GFX Library for Arduino@^1.4.6build_type=debug[env:esp32dev]
platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200
upload_speed = 921600
lib_deps = ; painlessmesh/painlessMesh@^1.5.0bodmer/TFT_eSPI@^2.5.43moononournation/GFX Library for Arduino@^1.4.6; lorol/LittleFS_esp32@^1.0.6
board_build.filesystem = littlefsbuild_flags = -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE-D CONFIG_ARDUHAL_LOG_COLORS=1build_type=debug
多配置的意义是方便随时切换不同的硬件,不用再修改配置参数,而且如果你要上传代码到硬件的时候,系统会自动判断和选择:
A fatal error occurred: This chip is ESP32 not ESP8266. Wrong --chip argument?
A fatal error occurred: This chip is ESP8266 not ESP32. Wrong --chip argument?
不是对应型号的单片机会对应报错。
多配置会导致platformio编译两份代码,产生性能损耗,但是这少了一些其他工作,如果你的电脑足够快可能可以接受,看你怎么选择。
以前不知道支持多配置,每次都只保留一个,切换起来实在不方便。
platformio的官方还有一些公共模块配置的方案,个人感觉太复杂不推荐。
性能优化
release编译耗时
debug编译耗时
对platformio.ini的修改后重新编译项目的时候,基本上就是所有项目代码的重新编译,非常耗时,很长;但是platformio.ini是可以开启缓存的:
[platformio]
build_cache_dir = cache
上面这个cache表示一个存放缓存的目录,当然你可以任意指定名称,但是目录最好放在项目内。
这个配置的说明在 : build_cache_dir — PlatformIO latest documentation
开启缓存后,除了第一次需要耗时很长,后续不论你怎么修改platformio.ini都是非常短的时候了:
如果你使用tft_espi,修改了user_setup.h文件,整个项目会完全编译,但是这个cache开启后就是只编译一个文件,项目整体编译的非常快。
一句话,以前可能会完全编译的时候,现在基本都是只编译局部文件了,速度大提升,这个配置很重要不知道为啥不是默认配置。
如下图所示,没有修改过的文件,统统调用了cache。