Работаю над коммерческим продуктом, потому решил использовать функцию шифрования flash памяти. Проект разрабатывается в Arduino IDE. Делал следующее:
1. Сгенерировал ключ шифрования
espsecure generate-flash-encryption-key flash_encryption_key.bin
2. Записал его в eFuse
espefuse --port burn-key BLOCK1 flash_encryption_key.bin
3. Включил шифрование flash памяти
espefuse --port COM3 burn-efuse FLASH_CRYPT_CNT
4. Зашифровал прошивку, которая была сгенерирована в папке проекта Arduino (папка build)
espsecure encrypt-flash-data -k flash_encryption_key.bin -a 0x10000 -o firmware-encrypted.bin firmware.bin
5. Прошил плату Wemos Lolin32 (чип ESP32-D0WD-V3 (revision v3.1))
esptool --port COM3 write_flash 0x10000 firmware-encrypted.bin
Все команды прошли без ошибок и проблем, но плата стала в мониторе Arduino IDE циклически выдавать ошибки.
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
ets Jul 29 2019 12:21:46
При отсутствии шифрования все работало как надо.
6. После этого зашифровал с тем же ключом загрузчик bootloader.bin и таблицу разделов partitions.bin, также взятые из папки проекта.
7. Прошил зашифрованные загрузчик по адресу 0x1000 , а таблицу разделов 0x8000.
8. Затем заново залил зашифрованную прошивку.
Результат остался прежним - циклические ошибки.
Помогите, пожалуйста, исправить ситуацию! Что я сделал неправильно и как вернуть все в рабочее состояние, но с зашифрованной прошивкой.
1. Сгенерировал ключ шифрования
espsecure generate-flash-encryption-key flash_encryption_key.bin
2. Записал его в eFuse
espefuse --port burn-key BLOCK1 flash_encryption_key.bin
3. Включил шифрование flash памяти
espefuse --port COM3 burn-efuse FLASH_CRYPT_CNT
4. Зашифровал прошивку, которая была сгенерирована в папке проекта Arduino (папка build)
espsecure encrypt-flash-data -k flash_encryption_key.bin -a 0x10000 -o firmware-encrypted.bin firmware.bin
5. Прошил плату Wemos Lolin32 (чип ESP32-D0WD-V3 (revision v3.1))
esptool --port COM3 write_flash 0x10000 firmware-encrypted.bin
Все команды прошли без ошибок и проблем, но плата стала в мониторе Arduino IDE циклически выдавать ошибки.
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
invalid header: 0x3bca5efb
ets Jul 29 2019 12:21:46
При отсутствии шифрования все работало как надо.
6. После этого зашифровал с тем же ключом загрузчик bootloader.bin и таблицу разделов partitions.bin, также взятые из папки проекта.
7. Прошил зашифрованные загрузчик по адресу 0x1000 , а таблицу разделов 0x8000.
8. Затем заново залил зашифрованную прошивку.
Результат остался прежним - циклические ошибки.
Помогите, пожалуйста, исправить ситуацию! Что я сделал неправильно и как вернуть все в рабочее состояние, но с зашифрованной прошивкой.