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

Что у STM32 после таблицы прерываний?

1. Не верно, так как зависит от программиста

Не зависит. Настоящий программист сначала изучит готовые решения.

А все остальные "программисты" - изобретают велосипеды.

 

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


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

Т.е.: если скажем возле устройства сидит программист Вася, и оно в этот момент выполняет сброс, то управление попадает в бутлоадер. А если сидит Петя, то после сброса управление попадает в другое место? :biggrin:

 

 

Хммм... Очевидно Вы работали со всеми возможными STM32 и нынешними и даже будущими? :biggrin:

Я бы не высказывался так категорично.

Не совсем так. Если сидит aaarrr, то думаю будет работать.

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


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

Ставим маркер в ОЗУ и пролетаем мимо, делов-то.

Нет. Не "делов-то". Вы опять как и предыдущий оратор 90% не договариваете.

1) надо позаботиться чтобы этот маркер не попал в область используемую ROM-бутлоадером;

2) надо не забыть снять этот маркер, перед сбросами из основной программы, после которых нужно войти в бутлоадер;

3) если нужен вход в бутлоадер при любом типе сброса, в том числе неожиданных по WDT или BOR из основного ПО, то маркер нужно снять уже при старте основного ПО и зарезервировать место под него, чтобы оно не использовалось в основной программе.

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


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

Не зависит. Настоящий программист сначала изучит готовые решения.

А все остальные "программисты" - изобретают велосипеды.

Настоящий программист даже вопрос такой не будет задавать.

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


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

Даже если сбрасывается периферия, то ОЗУ остается.

Не всё.

В некоторых МК вообще есть биты управления тактированием некоторыми регионами ОЗУ и при сбросе всей периферии (а не только ядра!) эти биты также могут быть сброшены и содержимое ОЗУ станет непредсказуемым.

 

Не совсем так. Если сидит aaarrr, то думаю будет работать.

Я бы вообще не стал бы доверять девайсу, который работает или нет в зависимости от того кто сидит рядом :rolleyes:

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


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

Я тому, кто рядом сидит не доверяю. Тем более девайсу.

Иногда для RM делаю исключение.

Хотя вот SEGGER доверяет STM32F072C8 и делает NVIC_SystemReset.

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


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

Настоящий программист даже вопрос такой не будет задавать.

Вы поняли мою мысль ;)

 

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


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

Нет. Не "делов-то". Вы опять как и предыдущий оратор 90% не договариваете.

Если для кого-то это "90%" не являются очевидными, то ему не стоит пока заниматься написанием загрузчика.

 

1) надо позаботиться...

0) надо озаботится достаточной разрядностью маркера, например.

 

И можно еще пару десятков пунктов добавить, кэп одобрит :)

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


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

Хотя вот SEGGER доверяет STM32F072C8 и делает NVIC_SystemReset.

У Вас САМ segger это делает??? :wacko:

Странно... у меня он делает то, что ему указано в разделе "J-Link/J-Trace\Setup\Reset" свойств проекта IAR.

Какой-то он у Вас больно самостоятельный. :biggrin:

 

Если для кого-то это "90%" не являются очевидными, то ему не стоит пока заниматься написанием загрузчика.

То что вопрос задал именно этот "кто-то", видно уже из первого поста. :)

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


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

У Вас САМ segger это делает??? :wacko:

Странно... у меня он делает то, что ему указано в разделе "J-Link/J-Trace\Setup\Reset" свойств проекта IAR.

Какой-то он у Вас больно самостоятельный. :biggrin:

 

 

То что вопрос задал именно этот "кто-то", видно уже из первого поста. :)

SEGGER это делает в своём коде для JLink-OB.

Для вызова бутлодера, который обновляет прошивку свою.

А так как код их бутлодера неизвестен, то приходится вызывать системный (DFU) и через него менять прошивку на новую.

Но это совсем другая история.

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


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

Ставим маркер в ОЗУ и пролетаем мимо, делов-то.

костыль..

модуль RCC специально для Вас имеет регистр в котором указан источник сброса, как раз для таких случаев.

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


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

модуль RCC специально для Вас имеет регистр в котором указан источник сброса, как раз для таких случаев.

И как он поможет определить, например, был ли вызван сброс из bootloader'а, или из основной части?

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


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

костыль..

модуль RCC специально для Вас имеет регистр в котором указан источник сброса, как раз для таких случаев.

Это универсально для многих архитектур. Тем более, как было отмечено, не покажет конкретно откуда сбросили.

 

В некоторых случаях флаг нужно во Flash выставлять, потому как устройство может сбойнуть по питанию в процессе обновления ПО. И надо как-то знать, что прошивка не вся дозаписана. Контрольные суммым и прочее - это все, конечно, можно, но время старта тоже бывает критичным.

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


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

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

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

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

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

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

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

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

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

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