Выложу здесь некоторые советы, которыми пользуюсь сам при обновлении ядра esp32 в Arduino IDE либо самой Arduino IDE.
При обновлении ядра ESP32 необходимо восстановить некоторые файлы, которые будут изменены либо удалены при обновлении ядра.
WiFi и Ethernet
Если вы в своих проектах используете WiFi
и Ethernet
, то необходимо восстановить файл Server.h
. Он лежит по адресу C:\Users\PC\AppData\Local\Arduino15\packages\esp32\hardware\esp32\<номер версии ядра>\cores\esp32\Server.h
Его требуемое содержимое:
#ifndef server_h
#define server_h
#include "Print.h"
class Server: public Print
{
public:
//virtual void begin(uint16_t port=0) =0; //WiFi
virtual void begin() =0; //Ethernet
};
#endif
При использовании в своих проектах WiFi
или Ethernet
нужно будет в зависимости от того, что мы используем, одну из строчек закоментировать, другую оставить открытой.
Partition Schemes
Далее, необходимо восстановить свои Partition схемы
, которых не будет в обновлённом ядре. Для этого в файле boards.txt
, расположенного по адресу c:\Users\PC\AppData\Local\Arduino15\packages\esp32\hardware\esp32\<номер версии ядра>\boards.txt
нужно добавить:
esp32.menu.PartitionScheme.<наша_схема>=<название схемы, отображаемое как пункт меню>
esp32.menu.PartitionScheme.<наша_схема>.build.partitions=<имя файла схемы без расширения>
esp32.menu.PartitionScheme.<наша_схема>.upload.maximum_size=<доступный_размер_приложения>
заменяя то, что указано в угловых скобках, на смысловое содержимое. При этом доступный_размер_приложения
- это доступная память для приложения в Байтах, равная app0 Size - app0 Offset
из файла схемы. Например:
esp32.menu.PartitionScheme.custom_schema=1536k Flash / 768kB LittleFS
esp32.menu.PartitionScheme.custom_schema.build.partitions=custom_schema
esp32.menu.PartitionScheme.custom_schema.upload.maximum_size=1572864
Таких блоков должно быть столько, сколько мы добавим кастомных схем.
При этом в папке c:\Users\PC\AppData\Local\Arduino15\packages\esp32\hardware\esp32\<номер версии ядра>\tools\partitions\
должны лежать файлы наших кастомных схем в формате csv
. Например, файл custom_schema.csv
имеет следующее содержимое:
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x190000,
app1, app, ota_1, 0x1a0000,0x190000,
spiffs, data, spiffs, 0x330000,0xc0000,
coredump, data, coredump,0x3f0000,0x10000,
#Custome schema, where App = 1.536MB, SPIFFS = 768kB
Как делать другие схемы можно посмотреть в файлах уже готовых схем в папке ...\tools\partitions\
, и по аналогии сделать свои. А можно почитать об этом на официальном сайте Espresiff (Partition Tables - ESP32 - — ESP-IDF Programming Guide latest documentation). Если ссылка станет не рабочей, можно поискать по запросу esp32 custom partition table
.
!!! Важный момент. В Arduino IDE версии 2 в меню Tools не появятся новые схемы, пока мы не удалим скешированную папку приложения. Для этого нужно удалить папку c:\Users\<User>\AppData\Roaming\arduino-ide\
. Не переживайте, приложение при этом не удаляется.
Фичи меню Tools
Для того, чтобы у нас в Arduino 1.*
была возможность прошивать LittleSPIFFS
у ESP32
и ESP8266
, в папке c:\Users\<User>\Documents\Arduino\tools\
должны располагаться папки с файлами <Фича>\tools\<фича>.jar
Пример содержимого папки c:\Users\<User>\Documents\Arduino\tools\
\ESP8266LittleFS\tool\esp8266littlefs.jar
\ESP32LittleFS\tool\esp32littlefs.jar
\EspExceptionDecoder\tool\EspExceptionDecoder.jar
При наличии этих файлов в данной папке будет возможность в Arduino 1.*
прошить LittleSPIFFS
у ESP32
и ESP8266
и декодировать Exception, возникающий при panic reboot
системы. Файлы эти можно найти на гитхабе:
esp8266littlefs.jar
esp32littlefs.jar
EspExceptionDecoder.jar
Там же найдёте инструкции к установке плагинов, если у вас появятся вопросы