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

bootloader для Arduino

enjoynering

Well-known member
Стандартное SDK от Espressif использует bootloader для загрузки и две области flash памяти для user кода. А как это происходит в Arduino? Использует ли Arduino Espressif-овский загрузчик? Спасибо.
 

Вложения

Последнее редактирование:

pvvx

Активный участник сообщества
Стандартное SDK от Espressif использует bootloader для загрузки и две области flash памяти для user кода. А как это происходит в Arduino? Использует ли Arduino Espressif-овский загрузчик? Спасибо.
Правильный вопрос - а нужен ли вообще дополнительный Espressif-овский загрузчик (boot_v1.2.bin, boot_v1.6.bin...) на платах и модулях пользователей?

Что разбивается на вопросы:

Какие функции, кроме уменьшения доступного пространства в Flash и увеличения времени старта системы он выполняет?

Когда вы прошиваете модуль, то программа должна знать какие опции для ROM-BIOS установить в заголовке для поддержки типа Flash на вашем модуле. Но программы, которые сделаны для Arduino и прочие прошивальщики не отличаются сообразительностью, что все данные они сами бы могли снять с самого модуля, если уж пытаются его прошить, указав пользователем только номер COM порта :) А аналогично и с дополнительными boot от Espressif – они исправляют ошибки самой же Espressif для поддержки других типов Flash, установленных в их dev-board, а не в ваш и передают информацию, которую вы же указали программе прошивальщика в часть второго, основного загрузчика самой SDK. Т.е. перекладывают установку известных вам параметров, которые вы потом можете получить (используя никчемные функции SDK) указанные на момент выставления их вами-же во время программирования. Это такой вид показа деятельности у Espressif, что они стараются и что-то делают, и, если разобраться глубже, то окажется что это не нужно никому, а только мешает, т.к. увеличивает размер кода SDK и время исполнения. Именно так и построен весь SDK от Espressif и их Arduino. В итоге пичкания Espressif своего SDK ненужными функциями для показа “деятельности” и имеет уже невозможность обновления flash по OTA c малыми размерами Flash.
И это только одна часть из множества веселых извращений у Espressif полученных по системе патча для патча из-за множественных начальных ошибок, допущенных в начальном проектировании всех их проектов (в самих чипах и особенно в ROM-BIOS коде).
По этой причине они и стесняются показывать исходники, т.к. там сплошной бардак, совершенно безграмотно писанный, с более 80% ошибок в самих алгоритмах... Коррекция которых осуществляется за счет пользователей. На вас у них и одна надежда - пришлите им правильно сформированный bootloader c нормальной функциональностью и программу программатора, которую они сами не смогли написать, а взяли стороннюю, от разобравшего их чип энтузиаста...:)
 
Последнее редактирование:

enjoynering

Well-known member
те по сути в ардуино bootloader выполняет функцию только за выбор Bootloader Modes (сотояние пинов GPIO0, 2, 15)? Все остальные его плюшки никем не используются? или он каждый раз перезаписывается Arduino IDE?
 
Последнее редактирование:

enjoynering

Well-known member
немножко покопался в хаосе документации и выудил интересную картинку. похоже что кажды раз при заливке скеча перезаливается boot. такое впечатление, что он интегрируется в скеч на стадии компиляции.

я так понял что область с 0x00000 и 0x01000 которая используеся в SDK для boot.bin и user.bin превращается в arduino в область для скеча.

и где-то между 0x01000 и 0xfe000 превращается в arduino в область для обновления кода по воздуху, OTA update. В SDK по адресу 0xfe000 пишется пустой blank.bin.

область 0xfc000 которая используеся в SDK для init.bin остается в arduino не изменной. в ней хранятся настоики WiFi Config SDK.
 

Вложения

  • Like
Реакции: kab
Сверху Снизу