Pull to refresh

Comments 16

А в чем вообще смысл использования подобных загрузчиков? Он требует тех же двух пинов, что и программатор, все равно требуется устанавливать какой-то специальный софт на компьютер, вместо программатора все равно требуется специальное устройство (преобразователь USB/UART). Из за всего этого, неподготовленный пользователь не сможет самостоятельно обновить прошивку, в отличие от загрузчика по USB. Так в чем смысл?
Конечно же к загрузчику пришлось писать софт (использовался C#).
Загрузчик имеет доступ ко всему адресному пространству.
Устройство залито компаундом(используется оптоканал).
Устройство имеет повышенный потенциал(используется оптоканал).
Загрузчик дополнительно выполняет функции терминала…
используется оптоканал

если не секрет, какой конвертер/разъем/патч-корд используется?
На входе оптоприемник с несуей 38кГц. На выходе ИК светодиод.
А какой смысл делать загрузчик размером 18 байт, если размер независима стираемого блока флэша — 128 байт? Если загрузчик во флэше стереть при перепрошивке, и в этот момент отключится питание — загрузчик в RAM пропадёт, и залитую компаундом плату можно будет выбросить. Получается это не загрузчик, а одна из функций прошивки — загружать загрузчик в RAM и передавать ему управление
FLASH память в STM8 пишется/стирается байтами, словами(4 байта), блоками(64 байта). При прошивке FLASH памяти нет необходимости перезаписывать код загрузчика.
Поражаюсь вашей изобретательности. Я бы ещё на первом этапе забил, ибо 65 байт из 8кБ — это очень мало.
Кому то может не хватить как раз этих байтов.
К тому же хорошая практика по оптимизации кода на ассемблере.
Если память программ занята под завязку, то возможности по модификации программы сильно ограничены. А если так, то и загрузчик для новых прошивок не сильно актуален.
Насчет практики по ассемблеру — Вы, безусловно, правы.

С таким подходом и требуется всё больше и больше ресурсов для программ...

Повезло просто, что SТМ8 умеет исполнять из RАМ.

Очень полезная возможность. При отладке участков кода не требуется перезаписывать ячейки FLASH памяти. Плюс есть возможность хранить код в EEPROM памяти.
Вы, конечно, извините, но
; отправляем по UART1 содержимое региста RST_SR
boot_FLASH_RST_SR_tx:
mov UART1_DR, RST_SR

это из тех комментариев, за которые Каин убил Авеля.
Вы правы. На всех не угодишь. Идея отправлять хост программе на начальном этапе загрузки
содержимое этого регистра оказалась тупиковой. В «зрелых» версиях загрузчика отправляется байт с номером версии. Содержимое любого регистра хост программа сможет прочитать, после того, как отправит на выполнение соответствующий дамп в RAM память STM8.
Примите мои соболезнования. Надеюсь Каин понесет заслуженное наказание.
По-моему, имелось в виду другое. Что происходит понятно из текста программы, а вот зачем — знает только автор.
Добавил в конце статьи исходный файл одной из актуальных версий. Там есть код образа начального загрузчика и более развернутые комментарии.
Only those users with full accounts are able to leave comments. Log in, please.