• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Прошивка ESP32 по JTAG единым файлом.

oleg.boicenco

New member
Всем привет!
Стоит следующая задача. Необходимо зашить девайс с ESP32-WROOM-32D модулем на борту на производстве. Посредством JTAG. Необходимо использовать один BIN - файл, который "суммирован" из bootloader.bin, partitions_singleapp.bin и app.bin. Был успешно создан единый файл посредством функции CombineBin из утилиты FLASH DOWNLOAD TOOL V3.6.5. При "визуальном" осмотре файла ничего "необычного" не обнаружилось: с начала файла до смещения 0х1000 были 0xFF. Начиная с адреса 0x8000 расположилась partition_table и с адреса 0x10000 начиналась прикланой код. Как и положено "пустые места" в файле были заполненны 0xFF.
Логично ожидать, что необходимо запустить процедуру прошивки начиная с нуля. Т.е. команда для прошивки должна выглядеть так: "program_esp32 app.bin 0x0000 verify exit". Но не получилось! %)

OpenOCD (Open On-Chip Debugger v0.10.0-esp32-20190313 (2019-03-13-09:57)) выругался следующим образом:

Info : Configured 2 cores
esp32 interrupt mask on
Info : J-Link V10 compiled Jan 7 2020 16:51:47
Info : Hardware version: 10.10
Info : VTarget = 3.322 V
Info : clock speed 1000 kHz
Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : esp32: Debug controller 0 was reset (pwrstat=0x5F, after clear 0x0F).
Info : esp32: Core 0 was reset (pwrstat=0x5F, after clear 0x0F).
Info : Listening on port 3333 for gdb connections
Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Error: Exception reading epc6!

Info : Target halted. PRO_CPU: PC=0x00000000 (active) APP_CPU: PC=0x00000000
Info : esp32: Debug controller 0 was reset (pwrstat=0x5F, after clear 0x0F).
Info : esp32: Core 0 was reset (pwrstat=0x5F, after clear 0x0F).
Info : esp32: Debug controller 1 was reset (pwrstat=0x5F, after clear 0x5F).
Info : esp32: Core 1 was reset (pwrstat=0x5F, after clear 0x5F).
Info : Target halted. PRO_CPU: PC=0x40007BA1 (active) APP_CPU: PC=0x00000000
Info : esp32: Core 0 was reset (pwrstat=0x1F, after clear 0x0F).
Info : Target halted. PRO_CPU: PC=0x40000400 (active) APP_CPU: PC=0x40000400
** Programming Started **
auto erase enabled
Info : Target halted. PRO_CPU: PC=0x4009171A (active) APP_CPU: PC=0x40000400
Warn : Empty flash mapping!
Warn : Failed to get flash mappings (0)!
Info : Target halted. PRO_CPU: PC=0x4009171A (active) APP_CPU: PC=0x40000400
Info : Target halted. PRO_CPU: PC=0x4009171A (active) APP_CPU: PC=0x40000400
Info : Auto-detected flash size 4096 KB
Info : Using flash size 4096 KB
Error: Invalid offset!
Error: failed erasing sectors 0 to 110

** Programming Failed **
shutdown command invoked

Warn : Flash driver of esp32.flash does not support free_driver_priv()
Warn : Flash driver of irom does not support free_driver_priv()
Warn : Flash driver of drom does not support free_driver_priv()

Очевидно, что offset не понравился! А про failed erasing sectors 0 to 110 ничего не могу сказать.. Не знаю..

Прокомментируйте, пожалуйста, кто в теме! Может мы что-то делаем не так?
И еще хотелось бы узнать, был ли у кого опыт запуска в серийное производство девайсов с ESP32? Был бы интересен обмен опытом в этом вопросе(например тестирование радочастотных узлов, граничное сканирование и т.д.)!

Заранее благодарю!
С уважением, Олег.

PS Если понадобится более подробная инфа (например логи OpenOCD) - пишите, все выложу.. (не стал выкладывать сразу, т.к. возможно есть тривиальный ответ на данный вопрос)) )
 

oleg.boicenco

New member
Привет всем!
Проблема, описанная выше, решилась путем ручного редактирования бин-файла (были убраны 0xFF, которые вставляла функция CombineBin из утилиты FLASH DOWNLOAD TOOL V3.6.5 вплоть до адреса 0х1000 ). Далее удалось загрузить полученный бинарник по смещению 0х1000.
Может кто-то столкнется с данной проблемой.. Эта инфа для Вас, Господа! :)
Остается вопрос: есть ли народ, кто сталкивался с запуском изделий с ЕСП-шным "сердцем" в серию? Было бы интересно пообщаться!
 
Сверху Снизу