Альтернативный загрузчик от Richard Antony Burton

CHERTS

Moderator
Команда форума
Собственно серия интересных статей Richard Antony Burton по поводу реверса процесса загрузки ESP и написанный им альтернативный загрузчик rBoot

1. ESP8266 BOOT PROCESS
2. DECOMPILING THE ESP8266 BOOT LOADER V1.3(B3)
3. RBOOT – A NEW BOOT LOADER FOR ESP8266
4. A BOOT LOADER TUTORIAL FOR ESP8266 USING RBOOT
5. A SAMPLE RBOOT PROJECT
6. RBOOT TUTORIAL FOR ESP8266 – OTA UPDATES
7. ESPTOOL2 – A ROM CREATION TOOL FOR ESP8266
8. MEMORY MAP LIMITATION AFFECTING RBOOT

Репозитарий с исходниками
 

pvvx

Активный участник сообщества
Ничего нового.
MEMORY MAP LIMITATION: The problem comes if you try to put an irom section beyond 8 MBit (i.e. from address 0x40300000) – code there won’t be accessible at run time!
:)

Uses 144 bytes of stack space, which cannot then be used by user code.
Ничего не использует loader. Можно поставить перед исполнением завершающей все загрузчики вызовом ets_run() инициализацию стека в 0x40000000. ets_run() всё равно не имеет выхода.
Код:
ROM:40000380     a_BIOS_40000000 .int BIOS_40000000 ; int tab
...
ROM:4000042C     _start:                                 ; CODE XREF: ROM:40000149j
ROM:4000042C                     movi.n          a0, 0
ROM:4000042E                     l32r            a1, a_BIOS_40000000
вот из этой строки https://github.com/raburton/esp8266/blob/master/rboot/rboot.c#L286 никогда возврата не будет. В конце лоадера SDK стоит ets_run().

raburton лоадер работает на 52MHz (тормоз) и не корректирует задержку на QSPI flash (могут не работать китай-flash, устанавливаемые в модули ESP)
Недоработок пока очень много...
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Недоработок пока очень много...
Нет ничего совершенного в этом мире, может автор исправит это дело, а может нет.
Ссылки на его проект я для информации опубликовал, вдруг кому пригодятся.
 

pvvx

Активный участник сообщества
Нет ничего совершенного в этом мире, может автор исправит это дело
Хорошо-бы. Но перезапись flash каждый запуск и дополнительная задержка старта SDK в более 2 сек - это нехорошо.
В указанном месте, где ets_delay_us(2 000 000), модуль будет потреблять от 100 mA, т.к. в данном моменте RF оборудование уже включено и работает не на правильной частоте + никаких оптимизаций по потреблению у автора не рассматривается...
А пока эти ссылки похожи на блог школьника "как я провел лето" :(
 
Последнее редактирование:
Сверху Снизу