Отговори на тема  [ 26 мнения ]  Отиди на страница Предишна  1, 2
Една щурава идея за bootloader STM32.... дали ще стане.... 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Все тая. След рисет винаги ти тръгва бутлоадера. Така, че ако хипотетично той е помазан, няма как да тръгне и юзер кода, целия контролер трябва да се връща при "пройзводителя" физически.

Казвам "хипотетично". С мои устройства досега не съм стигал до там, но веднъж успях да помажа така чужд дивайс при това само с юзерски методи. :) Та като знам аз дето уж внимавам на какво съм способен, ме е страх да си помисля, какво може да сътвори един човек, дето хал хабер понятие от техника си няма.

Най-тривиалната ситуация е да стане нещо със захранването по време, на ъпдейт на флеша. Тогава кой знае какво може да се случи - зависи и от конкретната имплементация на чипа, току виж затрил и страниците със "моя" бутлоадер.

Пак казвам - това са просто хипотетични ситуации, ако нямах друг избор, щях да го направя така. Ама при положение, че пройзводителя ми е сложил "твърд" бутлоадер, що да не го ползвам?

Мастер контролера ще си е с "мек" бутлоадер, щото трябва да е през USB (dfu), т.е. там избор нема :)

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Последна промяна Цецо на Нед Фев 20, 2011 6:48 pm, променена общо 1 път



Нед Фев 20, 2011 6:43 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение 
Dimitar написа:
Цитат:
Идеята на бутлоадера е да код лишен от грешки, защото той не може да се поправи, за разлика от юзерския код.

Аз от бутлоадера сменях потребителския код, а от потребителския код можех да сменям бутлоадера :D .


И какво правим ако по време на "подмяната" на бутлоудера спре тока или процесора се ресетне ? Устройството умира и трябва препрограмиране с програматор или чрез фабричния бутлоудер на процесора ... Май не е много надеждна работа ...

Идеята на бутлоудера е каквото и да се случи при време на бутлоудване - системата винаги да е работоспособна след ресет - поне в бутлоуд режим.

И аз съм правил такива щурави решения като тези за които говориш, но винаги гледам да ги избягвам :-)


Нед Фев 20, 2011 6:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Това което ми се върти в главата е нещо хибридно от всичко предложено до тук. Някаква достатъчно проста схемичка с времеконстатна ще "прави" така, че пина TX (откъм мастера) да имам влияние върху активиращия бутолоадер пин на слейва само за определено време след ресет. След това (да кажем 100мс) пина ще минава в твърдо в неактивно състояние и толкова. Така ще избягам от проблема който emilvtc усети - WDT, Broun out или каквото друго дойде там.

Мастера ще може да командва този пин само за кратко след рисет и то ако е активиран от самия него.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Нед Фев 20, 2011 6:57 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 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
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 06, 2007 8:44 pm
Мнения: 3175
Местоположение: Пловдив
Мнение 
Е, в такъв случай май нямаш нужда от никакви допълнителни схеми и чаркове около слеив-а. Просто ако мастера загуби комуникация със слеив-а го ресетва за да го вкара в пътя.


Нед Фев 20, 2011 8:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 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
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Цецо написа:
Това което ми се върти в главата е нещо хибридно от всичко предложено до тук. Някаква достатъчно проста схемичка с времеконстатна ще "прави" така, че пина TX (откъм мастера) да имам влияние върху активиращия бутолоадер пин на слейва само за определено време след ресет. След това (да кажем 100мс) пина ще минава в твърдо в неактивно състояние и толкова. Така ще избягам от проблема който emilvtc усети - WDT, Broun out или каквото друго дойде там.

Мастера ще може да командва този пин само за кратко след рисет и то ако е активиран от самия него.



И аз нали това казах и аз... Аз проста схемичка викам на PIC10 :D

100 мс след ресет - BOOT пина се командва от идващия TX. След това вече си стои стъбилно...
Програмата на тоя процесор ще е 5 реда, а и как по друг начин ще се направи с по-малко елементи и по-лесно опроводяване и т.н.


Пон Фев 21, 2011 9:27 am
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
juzisound написа:
И аз нали това казах и аз... Аз проста схемичка викам на PIC10 .


По съвсем друг начин щеше да мислиш, ако конструираш нещо за реалния пазар. Един процесор повече, значи допълнителен софтуер, т.е. потенциално място за бъгове. Допълнително тестване и рисков анализ ако се налага сертификация. Допълнителен куплунг за програмиране. И не на последно място - някой трябва да го програмира, процес който обикновенно не подлежи на автоматизация. Ако срещу това има 5 пасивни елемента + 5 активни, дето ги монтира машина и забравяш...... е няма начин да наръгам още един процесор. При пройзводство, това вдига цената и ако правиш дребни серии (между 10 и 1000) такова нещо излиза прекалено скъпо. Оправдава се при под 10 и над 1000 :)

Така, че процесори като PIC10 изглеждат много примамливи за подобни изпълнения, но в реалния живот нещата не са толкова софт.

juzisound написа:
а и как по друг начин ще се направи с по-малко елементи и по-лесно опроводяване и т.н.


Ми например така както в атачмънта. Не претендирам да съм мислил много върху схемата :) Ама това ако работи го пускаш на SMD монтаж и забравяш. Човешкия фактор е сведен почти до 0.


Прикачени файлове:
scan0001.pdf [42.55 KiB]
173 пъти

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
Пон Фев 21, 2011 9:39 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Като поразмислих малко по обстойно се спрях върху два варианта:

1. Първия е по евтин.
2. Втория има удобството, че състоянието на селект пина след ресет си остава твърдо в каквото аз искам. На първия вариант след известно време ще се върне към земя. Не знам дали е проблем де.

Май клоня към втория.


Прикачени файлове:
scan0001.pdf [134.37 KiB]
135 пъти

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
Вто Фев 22, 2011 6:52 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 26 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни