|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:27 am
Една щурава идея за bootloader STM32.... дали ще стане....
| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Все тая. След рисет винаги ти тръгва бутлоадера. Така, че ако хипотетично той е помазан, няма как да тръгне и юзер кода, целия контролер трябва да се връща при "пройзводителя" физически.
Казвам "хипотетично". С мои устройства досега не съм стигал до там, но веднъж успях да помажа така чужд дивайс при това само с юзерски методи.  Та като знам аз дето уж внимавам на какво съм способен, ме е страх да си помисля, какво може да сътвори един човек, дето хал хабер понятие от техника си няма.
Най-тривиалната ситуация е да стане нещо със захранването по време, на ъпдейт на флеша. Тогава кой знае какво може да се случи - зависи и от конкретната имплементация на чипа, току виж затрил и страниците със "моя" бутлоадер.
Пак казвам - това са просто хипотетични ситуации, ако нямах друг избор, щях да го направя така. Ама при положение, че пройзводителя ми е сложил "твърд" бутлоадер, що да не го ползвам?
Мастер контролера ще си е с "мек" бутлоадер, щото трябва да е през USB (dfu), т.е. там избор нема 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
Последна промяна Цецо на Нед Фев 20, 2011 6:48 pm, променена общо 1 път
|
| Нед Фев 20, 2011 6:43 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
И какво правим ако по време на "подмяната" на бутлоудера спре тока или процесора се ресетне ? Устройството умира и трябва препрограмиране с програматор или чрез фабричния бутлоудер на процесора ... Май не е много надеждна работа ...
Идеята на бутлоудера е каквото и да се случи при време на бутлоудване - системата винаги да е работоспособна след ресет - поне в бутлоуд режим.
И аз съм правил такива щурави решения като тези за които говориш, но винаги гледам да ги избягвам 
|
| Нед Фев 20, 2011 6:47 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Това което ми се върти в главата е нещо хибридно от всичко предложено до тук. Някаква достатъчно проста схемичка с времеконстатна ще "прави" така, че пина TX (откъм мастера) да имам влияние върху активиращия бутолоадер пин на слейва само за определено време след ресет. След това (да кажем 100мс) пина ще минава в твърдо в неактивно състояние и толкова. Така ще избягам от проблема който emilvtc усети - WDT, Broun out или каквото друго дойде там.
Мастера ще може да командва този пин само за кратко след рисет и то ако е активиран от самия него.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Нед Фев 20, 2011 6:57 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
Шом е допустимо да слагаш допълнителни чаркове от страната на слеив проца - сложи един външен WDT чип, който да се опреснява от 2 места : От пин на самия слеив проц, а също и от РЕСЕТ сигнала генериран от мастер проц-а (това е необходимо само при тръгване на системата). Изхода на този WDT го направи да забива Tx линията на слеив-а (Rx линията на мастера) към "0" при изтичане на този таймер.
Така ако слеив проца се ресетне и тръгне след това в Boot режим - въпросния външен WDT чип няма да се опреснява и изхода му ще забие към "0" Rx на мастер процесора. Това ще доведе до генериране на фрейминг ерор в уарт-а на мастер-а и така по-бързо да хванеш въпросната ситуация. Така можеш да избегнеш полирането на слейв-а.
Изхода на външния WDT не управлява РЕСЕТ-а на слеив-а.
"WDT" може да е проста закъснителна RC верига, която управлява транзистор ... Варианти много ...
|
| Нед Фев 20, 2011 7:33 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ами виж сега, то приложението е такова, че мастера много лесно ще разбера ако слейва е изпаднал в някакво грешно състояние (WDT, broun out, наврял се е самосиндикално bootloader).
Идеята е че слейва е отделен модул, който по принцип е изключен. Когато на мастера му потрябва слейва - той му пуска захранването и почват комуникация. Като напрактика докато слейва е активен тече нонстоп комуникация. Слейва събира данни през цялото време и мастера тия данни му трябват непрекъснато. Така че в момента в който слейва се помаже, мастера ще го научи, даже и да не му се иска  Когато слейва не е необходим - мастера така или иначе му спира тока
Та каквото и непредвидено да се случи със слейва - мастера ще го научи. Въпроса е какво ще прави след това, ама то това си е вечен въпрос....
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Нед Фев 20, 2011 7:46 pm |
|
 |
|
emilvtc
Ранг: Форумен бог
Регистриран на: Вто Фев 06, 2007 8:44 pm Мнения: 3175 Местоположение: Пловдив
|
Е, в такъв случай май нямаш нужда от никакви допълнителни схеми и чаркове около слеив-а. Просто ако мастера загуби комуникация със слеив-а го ресетва за да го вкара в пътя.
|
| Нед Фев 20, 2011 8:00 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
А какво правим ако някой удари устройството с чук  .
Устройствата ми имаха и 4амперчаса батерия и ако тя не е на поне 80% заредена не почваше никаква подмяна на каквото и да било. Т.е. винаги има опастност нещо да стане, но когато това се сведе до приемливи нива няма никакви грижи. За 3 години нямаше никаква грижа с нито едно устройство, която да е свързана с ъпдейт на софтуера. Бяха някъде около 10к устройства  .
Не вярвам някой тук да се самозалъгва, че може да проектира устройство 100% защитено от грешки. Дори и да може да го направи няма как да се защити от грешките на производителя на чипа  .
|
| Нед Фев 20, 2011 11:54 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Това което казваш е така, никой не може да направи 100% защитена срещу проблеми система.
Аз затова и казах - мога да го направя по няколко начина, от които използването на вградения ми се струва хем най-сигурно, хем най-мързеливо , което е рядко срещана комбинация 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Фев 21, 2011 12:13 am |
|
 |
|
juzisound
Ранг: Почетен член
Регистриран на: Съб Май 27, 2006 12:37 pm Мнения: 647 Местоположение: с. Згалево
|
И аз нали това казах и аз... Аз проста схемичка викам на PIC10
100 мс след ресет - BOOT пина се командва от идващия TX. След това вече си стои стъбилно...
Програмата на тоя процесор ще е 5 реда, а и как по друг начин ще се направи с по-малко елементи и по-лесно опроводяване и т.н.
|
| Пон Фев 21, 2011 9:27 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
По съвсем друг начин щеше да мислиш, ако конструираш нещо за реалния пазар. Един процесор повече, значи допълнителен софтуер, т.е. потенциално място за бъгове. Допълнително тестване и рисков анализ ако се налага сертификация. Допълнителен куплунг за програмиране. И не на последно място - някой трябва да го програмира, процес който обикновенно не подлежи на автоматизация. Ако срещу това има 5 пасивни елемента + 5 активни, дето ги монтира машина и забравяш...... е няма начин да наръгам още един процесор. При пройзводство, това вдига цената и ако правиш дребни серии (между 10 и 1000) такова нещо излиза прекалено скъпо. Оправдава се при под 10 и над 1000  Така, че процесори като PIC10 изглеждат много примамливи за подобни изпълнения, но в реалния живот нещата не са толкова софт.
Ми например така както в атачмънта. Не претендирам да съм мислил много върху схемата  Ама това ако работи го пускаш на SMD монтаж и забравяш. Човешкия фактор е сведен почти до 0.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Фев 21, 2011 9:39 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Като поразмислих малко по обстойно се спрях върху два варианта:
1. Първия е по евтин.
2. Втория има удобството, че състоянието на селект пина след ресет си остава твърдо в каквото аз искам. На първия вариант след известно време ще се върне към земя. Не знам дали е проблем де.
Май клоня към втория.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Вто Фев 22, 2011 6:52 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|