Перейти к содержанию
    

Для прошивки по i2c я так и делал и не стоит задача прошивать дивайс в Мексике из Владивостока, просто хочется использовать основной интерфейс дивайса для прошивки и не дергать другие разъемы/разбирать корпус

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще такие вещи желательно начинать с осмысленного описания. Оно пригодится и тебе самому в будущем, и тем, кто захочет сопрягаться с твоим девайсом. Я, например, пишу протоколы информационного взаимодействия (ПИВ-ы). Из них понятно, как работать с железкой, не кидая в качестве примера свои исходники (да и хреновая это практика, на самом деле). Приведу выдержку из своего ПИВ-а на один девайс, касательно режимов обновления встроенного ПО МК. Касательно реализации - загрузчик у меня работает из ОЗУ, по определенными причинам. При сбросе стартует загрузчик, проверяет аппаратное условие (DIP-переключатели), проверяет специальный ключ в ОЗУ на предмет того, был ли это запрос с управляющего SoM-модуля (может, это он просил в загрузчик перейти, чтобы обновиться). Если ни одно из этих условий не выполняется, то загрузчик обращается в специальный дескриптор, размещенный в области пользовательской прошивки, чтобы узнать ее размер и контрольную сумму. Если размер вменяемый (в пределах размера Flash за вычетом кода загрузчика), то проверяется CRC образа прошивки, затем сверяется с эталоном. Если совпадает - сбрасывается задействованная периферия и управление передается основной прошивке. Если не совпадает - остаемся в загрузчике и ждем дальнейших указаний. В загрузчике и основном ПО имеются общие команды, что позволяет SoM-модулю в любой момент времени понять, как себя чувствует МК (в каком состоянии он находится). Если он видит, что МК требует прошивку, то либо отдает ее ему, либо (когда ранее не было команды на обновление) соответствующим образом уведомляет пользователя. Но последнее произойдет, разве что, никогда в электрически исправном устройстве.

ПИВ на загрузчик-1.pngПИВ на загрузчик-2.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

45 minutes ago, Arlleex said:

Вообще такие вещи желательно начинать с осмысленного описания.

Так нормальные люди и поступают.

А задавать вопросы в расчете на телепатию - это путь гуру программирования.

А если это нарисовать на бумажке, то ещё понятнее будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так никто не писал что нить подобное для stm32 ? 

47 minutes ago, Arlleex said:

Вообще такие вещи желательно начинать с осмысленного описания

Я все осмысленно описал, это не тз чтобы кто то писал за бабки, конкретная реализация и алгоритмы это моя задача.

Вопроса был в том что есть уже что то более менее готовое которое можно модернизировать под конкретное уст-во. 

2 minutes ago, x893 said:

А задавать вопросы в расчете на телепатию

Что вам не понятно в вопросе без телепатии ?

Изменено пользователем whale

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, x893 сказал:

Не совсем так. Загрузчик может проверить код и если он некорректный, то сразу перейти в режим загрузки и большой брат ещё раз пришлёт ему программу. Зависит от сценария, нарисованного ручкой на бумажке.

Совсем так: сколько чего не проверяй - в какой-то момент придётся начать прошивать. А для того чтобы это сделать сперва нужно стереть старую прошивку. Вот в этот момент и может прилететь сбой питания. И присылать "ещё раз" будет уже некому - старой прошивки уже нет, а новая записаться не успела.

7 часов назад, whale сказал:

Так загрузчик то остается в него не пишут, а при перезагрузке сначала сразу идем в него  и ждем 5-10 сек придет что нить или нет а потом уже в основную, также можно при загрузке сделать проверку кода  программы на crc

Ну если будете и принимать прошивку тем же загрузчиком, тогда да - можно заново переслать.

Но как тогда обновить этот загрузчик?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, jcxz said:

Но как тогда обновить этот загрузчик?

Вручную. Но лучше не менять.

 

7 minutes ago, jcxz said:

Вот в этот момент и может прилететь сбой питания. И присылать "ещё раз" будет уже некому - старой прошивки уже нет, а новая записаться не успела.

Да и хрен с ним - со сбоем. Загрузчик то останется (см. выше). Уже 100500 раз загрузчики обсуждали здесь (и на других). Но гуру программирования не читатели - они задаватели.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, jcxz said:

Но как тогда обновить этот загрузчик

Этого зачем ? Пусть будет всю жизнь старый )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...