реклама на сайте
подробности

 
 
6 страниц V  « < 3 4 5 6 >  
Reply to this topicStart new topic
> STM32: сброс всей периферии перед переходом из загрузчика в основную прошивку
Сергей Борщ
сообщение May 22 2014, 07:34
Сообщение #61


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(A. Fig Lee @ May 22 2014, 14:02) *
Нет. Есть комманда, по ней делается програмный ресет.
То есть все-таки ресет?
Цитата(A. Fig Lee @ May 22 2014, 14:02) *
Если кнопка не была нажата при ресете, опять уходим в главную программу.
Ага, то есть цена вашего велосипеда - необходимо присутствие вблизи устройства homo sapiens, нажимающего на кнопку. И необходимость у устройства иметь эту кнопку (снаружи или внутри, в последнем случае еще и корпус вскрывать надо). Понятно.
Цитата(A. Fig Lee @ May 22 2014, 14:02) *
Таймаут это фактически "флэшу кирдык", а значит, микросхеме и устройству.
Нет смысла обрабатывать такую ситуацию.
Везите к нам. Будем разбиратся.
Понятно. У меня перепрошивка на лету, таймаут - сбой связи, он обрабатывается, в случае неудачи можно перепрошить снова и ничего никуда возить не надо.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Allregia
сообщение May 22 2014, 08:01
Сообщение #62


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(A. Fig Lee @ May 21 2014, 16:23) *
Это значит надо писать собственный startup файл.
Тоже можно, конечно.. Но по мне так это уже извращения пошли.


Зачем? Достаточно обьявить переменную как __noinit и по абсолютному адресу.

В Ф4 я через backup SRAM передаю. Для перехода из основной программы в бутлоадер и обратно.


Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение May 22 2014, 13:06
Сообщение #63


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Сергей Борщ @ May 22 2014, 06:44) *
То есть все-таки ресет?

В боотлоадер всегда по ресету, я никогда обратное не утверждал, а в главную программу просто прыжком.

Цитата(Сергей Борщ @ May 22 2014, 06:44) *
Ага, то есть цена вашего велосипеда - необходимо присутствие вблизи устройства homo sapiens, нажимающего на кнопку. И необходимость у устройства иметь эту кнопку (снаружи или внутри, в последнем случае еще и корпус вскрывать надо). Понятно.

Да. Подсоединять то все равно ктото должен к компьютеру.
Кстати, сегодня заказали сделать с переходом в бутлоадер по команде.
Буду в главной программе писать 0xFE в EEPROM на старте, если там 0xFF.
Перед рестартом в бутлоадер сотру на 0xFF.
Бутлоадер при 0xFF прыгать не будет.
При дисконнекте USB будет прыгать в главную.
Но человек там все равно должен быть.

Цитата(Сергей Борщ @ May 22 2014, 06:44) *
Понятно. У меня перепрошивка на лету, таймаут - сбой связи, он обрабатывается, в случае неудачи можно перепрошить снова и ничего никуда возить не надо.

У нас тоже в случае неудачи (удачи тоже) всегда можно перепрошить.
Связь по USB, не вижу смысла обрабатывать обрыв связи.
Таймаут возможен при плохой микросхеме.
Тогда везти придется.


Цитата(Allregia @ May 22 2014, 07:11) *
Зачем? Достаточно обьявить переменную как __noinit и по абсолютному адресу.

В Ф4 я через backup SRAM передаю. Для перехода из основной программы в бутлоадер и обратно.


Ух ты! Класс. Не знал про __no_init.
Да, про SRAM бакапную тоже забыл, но аксесс к ней нетривиальный тоже.


Так, что мы имеем?
STM32 имеет SRAM, то бишь статик RAM.
На триггерах, надо понимать.
Если погуглить на "sram initial state" то выпадает множество статей на тему "Initial SRAM State as a Fingerprint and Source of True Random Numbers..."
из чего можно сделать вывод, что как и следовало ожидать RAM на старте может быть в каком угодно состоянии.
На ней rely нельзя.
Буду делать через EEPROM.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 22 2014, 13:42
Сообщение #64


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну можно же не 8 бит, а 32 бита взять, да и положить не FF - FE , а что-то позаковыристей, например название фирмы в 4 32 битных числа положить, что такое будет случайно - настолько маловероятный факт, что если произойдет будет неплохой рекламой фирмы%)
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение May 22 2014, 14:48
Сообщение #65


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Golikov A. @ May 22 2014, 12:52) *
ну можно же не 8 бит, а 32 бита взять, да и положить не FF - FE , а что-то позаковыристей, например название фирмы в 4 32 битных числа положить, что такое будет случайно - настолько маловероятный факт, что если произойдет будет неплохой рекламой фирмы%)

Можно. И прошивку поставить куда нибудь в пассажирский самолет.
Будет "настолько маловероятный факт", что он грохнется..

"Мы пойдем другим путем" (с)


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 22 2014, 14:51
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(A. Fig Lee @ May 22 2014, 21:16) *
из чего можно сделать вывод, что как и следовало ожидать RAM на старте может быть в каком угодно состоянии.
На ней rely нельзя.

Толстый намёк (уже третий раз в этом топике): есть регистр, показывающий причину сброса.
Совсем-совсем толсто: если сброс программный, то есть гарантия, что в нужной ячейке ОЗУ не мусор, а то, что нужно. Почему? Потому что программа записала туда то, что нужно перед тем, как вызвать программный сброс.
Народ совсем не сообразительный пошёл нынче... Я в печали :-(
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 22 2014, 14:56
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Ну ваще не аргумент,...
то есть если вероятность того что 16 символов по 256 позиций на каждый сложились в правильную фразу для человека возможны (вероятность 1.1479437019748901445007192746311e-41), то где гарантия что не пролетит космической частицы, которая изменит именно этот флаг в вашем регистре... это же событие, тогда по вероятности просто каждый день происходит...

Правда та же причина не дает реально рассчитывать и на достоверную запись в ЕЕПРОМ, но к своим идеям человек относится менее критическиsm.gif))
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение May 22 2014, 16:17
Сообщение #68


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(scifi @ May 22 2014, 14:01) *
Толстый намёк (уже третий раз в этом топике): есть регистр, показывающий причину сброса.
Совсем-совсем толсто: если сброс программный, то есть гарантия, что в нужной ячейке ОЗУ не мусор, а то, что нужно. Почему? Потому что программа записала туда то, что нужно перед тем, как вызвать программный сброс.
Народ совсем не сообразительный пошёл нынче... Я в печали :-(

Да я уже давно ответил: нет смысла ничего писать в РАМ если и так ясно что ресет программный!


Цитата(Golikov A. @ May 22 2014, 14:06) *
Ну ваще не аргумент,...
то есть если вероятность того что 16 символов по 256 позиций на каждый сложились в правильную фразу для человека возможны (вероятность 1.1479437019748901445007192746311e-41), то где гарантия что не пролетит космической частицы, которая изменит именно этот флаг в вашем регистре... это же событие, тогда по вероятности просто каждый день происходит...

Правда та же причина не дает реально рассчитывать и на достоверную запись в ЕЕПРОМ, но к своим идеям человек относится менее критическиsm.gif))

Комиссии попробуйте объяснить, что "скорее всего самолет не грохнется".
2. Это бессмыслица. Если есть програмный ресет, нечего возится с РАМ.

Кстати, Су100 не на таком же принципе сделан?
Думаю что и ракета с которой спутник грохнулся, была спроектирована аналогично


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 22 2014, 17:02
Сообщение #69


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Как вы победили вероятность сбоя из за попадания космических частиц? Мне просто интересно, если вы настолько скрупулезны, то вы наверняка и это учли... Я вот был в германии в институте, там стоит детектор космических частиц, да их толпы летают, как вы защищаете свои устройства?
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение May 22 2014, 19:20
Сообщение #70


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Golikov A. @ May 22 2014, 16:12) *
Как вы победили вероятность сбоя из за попадания космических частиц? Мне просто интересно, если вы настолько скрупулезны, то вы наверняка и это учли... Я вот был в германии в институте, там стоит детектор космических частиц, да их толпы летают, как вы защищаете свои устройства?

А что, у РАМ иммунитет к космическим частицам?
Везде могут быть проблемы, нет смысла искусственно их увеличивать.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 23 2014, 02:53
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



так это ваша позиция что так жить нельзя, и надо быть защищенным даже от вероятности 10^-14 sm.gif
Go to the top of the page
 
+Quote Post
Terminator
сообщение May 23 2014, 02:57
Сообщение #72


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



У меня переход делается если во внешней flash нет новой прошивки. Возможно это сильно сложно. Зато не требует участия человека.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 23 2014, 03:05
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



сильно опасно, можно сделать кирпич из прибора...
Go to the top of the page
 
+Quote Post
Terminator
сообщение May 23 2014, 05:39
Сообщение #74


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Цитата(Golikov A. @ May 23 2014, 14:15) *
сильно опасно, можно сделать кирпич из прибора...

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

Мой алгоритм действий такой:
- если во внешней flash есть валидная прошивка, то сравниваем её с текущей и перешиваем если отличается. Затем запускаем основную прошивку.
- если нет новой прошивки, то сразу запускаем основную прошивку.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 23 2014, 07:08
Сообщение #75


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а... 2 флэшки...
Go to the top of the page
 
+Quote Post

6 страниц V  « < 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016