Сергей Борщ 119 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Нет. Есть комманда, по ней делается програмный ресет.То есть все-таки ресет? Если кнопка не была нажата при ресете, опять уходим в главную программу.Ага, то есть цена вашего велосипеда - необходимо присутствие вблизи устройства homo sapiens, нажимающего на кнопку. И необходимость у устройства иметь эту кнопку (снаружи или внутри, в последнем случае еще и корпус вскрывать надо). Понятно. Таймаут это фактически "флэшу кирдык", а значит, микросхеме и устройству. Нет смысла обрабатывать такую ситуацию. Везите к нам. Будем разбиратся. Понятно. У меня перепрошивка на лету, таймаут - сбой связи, он обрабатывается, в случае неудачи можно перепрошить снова и ничего никуда возить не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Allregia 9 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Это значит надо писать собственный startup файл. Тоже можно, конечно.. Но по мне так это уже извращения пошли. Зачем? Достаточно обьявить переменную как __noinit и по абсолютному адресу. В Ф4 я через backup SRAM передаю. Для перехода из основной программы в бутлоадер и обратно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба То есть все-таки ресет? В боотлоадер всегда по ресету, я никогда обратное не утверждал, а в главную программу просто прыжком. Ага, то есть цена вашего велосипеда - необходимо присутствие вблизи устройства homo sapiens, нажимающего на кнопку. И необходимость у устройства иметь эту кнопку (снаружи или внутри, в последнем случае еще и корпус вскрывать надо). Понятно. Да. Подсоединять то все равно ктото должен к компьютеру. Кстати, сегодня заказали сделать с переходом в бутлоадер по команде. Буду в главной программе писать 0xFE в EEPROM на старте, если там 0xFF. Перед рестартом в бутлоадер сотру на 0xFF. Бутлоадер при 0xFF прыгать не будет. При дисконнекте USB будет прыгать в главную. Но человек там все равно должен быть. Понятно. У меня перепрошивка на лету, таймаут - сбой связи, он обрабатывается, в случае неудачи можно перепрошить снова и ничего никуда возить не надо. У нас тоже в случае неудачи (удачи тоже) всегда можно перепрошить. Связь по USB, не вижу смысла обрабатывать обрыв связи. Таймаут возможен при плохой микросхеме. Тогда везти придется. Зачем? Достаточно обьявить переменную как __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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба ну можно же не 8 бит, а 32 бита взять, да и положить не FF - FE , а что-то позаковыристей, например название фирмы в 4 32 битных числа положить, что такое будет случайно - настолько маловероятный факт, что если произойдет будет неплохой рекламой фирмы%) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба ну можно же не 8 бит, а 32 бита взять, да и положить не FF - FE , а что-то позаковыристей, например название фирмы в 4 32 битных числа положить, что такое будет случайно - настолько маловероятный факт, что если произойдет будет неплохой рекламой фирмы%) Можно. И прошивку поставить куда нибудь в пассажирский самолет. Будет "настолько маловероятный факт", что он грохнется.. "Мы пойдем другим путем" (с) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба из чего можно сделать вывод, что как и следовало ожидать RAM на старте может быть в каком угодно состоянии. На ней rely нельзя. Толстый намёк (уже третий раз в этом топике): есть регистр, показывающий причину сброса. Совсем-совсем толсто: если сброс программный, то есть гарантия, что в нужной ячейке ОЗУ не мусор, а то, что нужно. Почему? Потому что программа записала туда то, что нужно перед тем, как вызвать программный сброс. Народ совсем не сообразительный пошёл нынче... Я в печали :-( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Ну ваще не аргумент,... то есть если вероятность того что 16 символов по 256 позиций на каждый сложились в правильную фразу для человека возможны (вероятность 1.1479437019748901445007192746311e-41), то где гарантия что не пролетит космической частицы, которая изменит именно этот флаг в вашем регистре... это же событие, тогда по вероятности просто каждый день происходит... Правда та же причина не дает реально рассчитывать и на достоверную запись в ЕЕПРОМ, но к своим идеям человек относится менее критически:))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Толстый намёк (уже третий раз в этом топике): есть регистр, показывающий причину сброса. Совсем-совсем толсто: если сброс программный, то есть гарантия, что в нужной ячейке ОЗУ не мусор, а то, что нужно. Почему? Потому что программа записала туда то, что нужно перед тем, как вызвать программный сброс. Народ совсем не сообразительный пошёл нынче... Я в печали :-( Да я уже давно ответил: нет смысла ничего писать в РАМ если и так ясно что ресет программный! Ну ваще не аргумент,... то есть если вероятность того что 16 символов по 256 позиций на каждый сложились в правильную фразу для человека возможны (вероятность 1.1479437019748901445007192746311e-41), то где гарантия что не пролетит космической частицы, которая изменит именно этот флаг в вашем регистре... это же событие, тогда по вероятности просто каждый день происходит... Правда та же причина не дает реально рассчитывать и на достоверную запись в ЕЕПРОМ, но к своим идеям человек относится менее критически:))) Комиссии попробуйте объяснить, что "скорее всего самолет не грохнется". 2. Это бессмыслица. Если есть програмный ресет, нечего возится с РАМ. Кстати, Су100 не на таком же принципе сделан? Думаю что и ракета с которой спутник грохнулся, была спроектирована аналогично Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Как вы победили вероятность сбоя из за попадания космических частиц? Мне просто интересно, если вы настолько скрупулезны, то вы наверняка и это учли... Я вот был в германии в институте, там стоит детектор космических частиц, да их толпы летают, как вы защищаете свои устройства? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Как вы победили вероятность сбоя из за попадания космических частиц? Мне просто интересно, если вы настолько скрупулезны, то вы наверняка и это учли... Я вот был в германии в институте, там стоит детектор космических частиц, да их толпы летают, как вы защищаете свои устройства? А что, у РАМ иммунитет к космическим частицам? Везде могут быть проблемы, нет смысла искусственно их увеличивать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 23 мая, 2014 Опубликовано 23 мая, 2014 · Жалоба так это ваша позиция что так жить нельзя, и надо быть защищенным даже от вероятности 10^-14 :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terminator 0 23 мая, 2014 Опубликовано 23 мая, 2014 · Жалоба У меня переход делается если во внешней flash нет новой прошивки. Возможно это сильно сложно. Зато не требует участия человека. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 23 мая, 2014 Опубликовано 23 мая, 2014 · Жалоба сильно опасно, можно сделать кирпич из прибора... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terminator 0 23 мая, 2014 Опубликовано 23 мая, 2014 · Жалоба сильно опасно, можно сделать кирпич из прибора... Ничего подобного. Кирпич можно сделать только при обновлении загрузчика, если он разрешён. Мой алгоритм действий такой: - если во внешней flash есть валидная прошивка, то сравниваем её с текущей и перешиваем если отличается. Затем запускаем основную прошивку. - если нет новой прошивки, то сразу запускаем основную прошивку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 23 мая, 2014 Опубликовано 23 мая, 2014 · Жалоба а... 2 флэшки... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться