27.09.2017, 19:52
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: stm32 свой bootloader
serb-radio, ну уже ведь говорилось про arduino загрузчик. В его кодах все ответы - он точно работает. Он таки и под STM имеется. А источник получения потока для записи там совсем не важен. Можно подключить внешнюю память или даже flash накопитель и сначала на него с канала загружать, а потом при выполнении всех проверок - прошиваться.
При таком подходе можно даже и сам загрузчик перешить. Собственно такое сплошь и рядом - любая коробочка с мозгами это умеет.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 27.09.2017 в 19:57.
|
|
|
|
27.09.2017, 20:12
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: stm32 свой bootloader
Сообщение от serb-radio
|
поделитесь, кто чем память заливает (записывает основную прогу с бутлоудера), в смысле какой прогой
|
Либо своя прога под usb/bluetooth/wifi, либо c файла на карте памяти. Все просто)
|
|
|
|
27.09.2017, 20:55
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: stm32 свой bootloader
Вариант загрузки с карты памяти действительно пропустил, но ведь ТС изначально вообще про передачу прошивки по CAN шине писал .
В варианте с картой памяти собственно и загрузчик не нужен - компонент для прошивки просто всегда присутствует в коде и получает управление по сочетанию условий: карта, файл, содержимое, контрольная сумма, кнопка,…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
28.09.2017, 10:03
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: stm32 свой bootloader
Сообщение от mike-y-k
|
В варианте с картой памяти собственно и загрузчик не нужен - компонент для прошивки просто всегда присутствует в коде и получает управление по сочетанию условий: карта, файл, содержимое, контрольная сумма, кнопка,…
|
Именно так. Я считаю самый лучший вариант, ни от какой программы извне не зависящий.
|
|
|
|
28.09.2017, 13:29
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: stm32 свой bootloader
serb-radio, кстати из нормальных решений для вариантам развития событий именно с загрузчиком. Формально беспроблемная практика.
Код загрузчика всегда включается в проект и присутствует в прошивке. Этим достигается отсутствие проблем с адресацией. Плюс подпрограммы загрузчика непосредственно и без ошибок доступны в основной части. А там может быть много неизменяемого кода библиотек, например. Что-то типа ядра у взрослых систем.
Программа для прошивки знает где и что лежит в бинарном файле. Это даже скармливанием ей или промежуточному компоненту листинга линкера делается.
При обновлении прошивки на устройстве программа инициализирует по каналу компонент, отвечающий за саму прошивку.
Дальше происходит передача данных с контролем, стирание и запись в память контроллера.
Деление потока на пакеты уже от ресурсов на целевом устройстве зависит.
По завершении операции считается контрольная сумма(в) для записанного и сверяются с переданными данными на обоих сторонах. При совпадении все нормально, иначе обработка ошибок.
При таком сценарии даже отключение питания не убивает устройство - оно должно стартовать в режиме продолжения или повторения прошивки.
Отдельно процедура перепрошивки самого загрузчика. Бывает и там что-то меняется. Тут уже немного сложнее, но тоже есть нормальные практики.
Главное разработать сначала методику обработки исключительных ситуаций, а сам алгоритм весьма прост - перемещение кода в RAM и выполнение его оттуда.
При таком подходе у Вас все нормально получится без лишних вопросов Как и Почему…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:12.
|
|