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

Писал ответ в соседнюю тему и пришла в голову такая мысль: запустить загрузчик на Cortex-M3/M4 очень просто.

Я поспешил со своим ответом. У них так и написано:

In addition to patterns described below, user can execute bootloader by performing a jump

to system memory from user code. Befor jumping to Bootloader user must :

• Disable all peripheral clocks

• Disable used PLL

• Disable interrupts

• Clear pending interrupts

System memory boot mode can be exited by getting out from bootloader activation

condition and generating hardware reset or using Go command to execute user code.

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


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

А если с ресетом, то вроде и так запустится штатный загрузчик?
Возможно хочется обновляться штатным, но по возможности не добираясь до ноги BOOT, по команде приложению?

 

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


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

Возможно хочется обновляться штатным, но по возможности не добираясь до ноги BOOT, по команде приложению?

Только не приложению, а бутлоадеру.

Приложение может работать, а может не работать.

А свой бутлоадер может запускатся не от кнопки, или от кнопки, но от другой.

Но пользовать стандартный механизм загрузки..

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


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

Ну то есть у нас штатный запуск проца на прошивку пользователя. Которая в самом начале имеет ветвления

свой бут

стандартный бут

рабочая прошивка

 

и мы не трогая ножку бут имеем возможность обновить прошивку через UART?

 

Ну да, наверное это интересная мысль. Главное не затереть начальный разветвитель, а то придем к кирпичу:)

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


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

Так же можно потерять и самопальный загрузчик. Вероятность, конечно, меньше, чем основную программу (судя по размерам), но... терять, так терять. И тогда остается только встроенный системный загрузчик, или специально предназначенные для программирования средства.

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


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

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

А вот если в ходе ветвления можно войти и в штатный процовый, то тогда он потенциально под угрозой.

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


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

ну как можно потерять самопальный загрузчик?

Так же, как и основную программу. С помощью электромагнитного импульса, например, как в "Матрице".

То есть, если принимать меры к тому, чтобы входить в самодельный загрузчик сразу после сброса, из опасения, что основная программа может глючить, и из нее уже не войти, то тогда надо думать и о том, что и сам этот загрузчик может заглючить. А если не думать, то не думать. :rolleyes: Поэтому я и хочу по простому перескочить во встроенный загрузчик. Для начала. А там видно будет.

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


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

Так же, как и основную программу. С помощью электромагнитного импульса, например, как в "Матрице".

То есть, если принимать меры к тому, чтобы входить в самодельный загрузчик сразу после сброса, из опасения, что основная программа может глючить, и из нее уже не войти, то тогда надо думать и о том, что и сам этот загрузчик может заглючить. А если не думать, то не думать. :rolleyes: Поэтому я и хочу по простому перескочить во встроенный загрузчик. Для начала. А там видно будет.

Встроенный загрузчик тоже может глючить. Изза электромагнитного импульса, например.

Предлагаю делать резервирование - как для космоса делали: 3 одинаковых канала,

решение принимается голосованием, если 2 сказали 1, значит 1.

Так меньше вероятность глюков.

3 одинаковых СТМ, на всякий случай - а вдруг заглючит?

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


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

И 3 ФигЛи, несомненно, лучше одного. Не зря соображают на троих.

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


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

Вижу о космосе вы знаете по наслышке:)

2 из 3 - это для ближнего космоса, до луны край! Нормальный режим 3 из 5!

 

Глюк нормальной программы я больше отношу к пользователю. Найдет какую-то фигню, от другого продукта, и зальет как обновление. И здрасьте вам Кирпичь Иваныч! На эти случаи всегда даю пользователю еще попытку:)

 

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


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

На эти случаи всегда даю пользователю еще попытку:)

Дык для этого нужно купюроприёмник добавлять. Одна надежда на Национальную Платёжную Систему: должно попроще стать. Хотя, зная наших чиновников, не очень надеюсь :-)

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


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

Вижу о космосе вы знаете по наслышке:)

2 из 3 - это для ближнего космоса, до луны край! Нормальный режим 3 из 5!

 

Глюк нормальной программы я больше отношу к пользователю. Найдет какую-то фигню, от другого продукта, и зальет как обновление. И здрасьте вам Кирпичь Иваныч! На эти случаи всегда даю пользователю еще попытку:)

Дык для этого бутлоадер и делают отдельным без всякой зависимости на главной программе.

Заливай что хочешь, все равно бутлодырем можно будет переписать

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


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

А я для каждого изделия использую уникальные ключи шифрования. Загрузчик зальет в изделие только его родную прошивку. Но все равно остается шанс, что родная прошивка сделает из изделия кирпич из-за того, что я не предусмотрел какой-то нюанс.

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


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

А я для каждого изделия использую уникальные ключи шифрования. Загрузчик зальет в изделие только его родную прошивку. Но все равно остается шанс, что родная прошивка сделает из изделия кирпич из-за того, что я не предусмотрел какой-то нюанс.

 

Че-то я не понял, если бут находится в своей выделенной области флеша, пользовательская прога во флеш не пишет что-попало, то какого рожна что-то должно превратить камень в кирпич?? Ну зашил он туда хрень, потом рестартанет проц в режиме бута и прошьет что надо. Уже дофига такого было, пока прошивки шифровать не начал, теперь хрень не шьют :biggrin:

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


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

Для этого нужно оставить механизм старта бута. Если прошили хрень с правильными кодами, которая запускается и виснит. А кнопочки перейти в бут нету, вот вам и кирпич...

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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