|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 6:30 pm
In-Application-Programming
| Автор |
Съобщение |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 In-Application-Programming
Налагало ли ви се е да ползвате тази благинка в следната хипотетична схема - имате у-во с ваш софтуер, което е съставено от няколко микроконтролера, но само единия от тях е свързан с някаква външна комуникация? Като искате да актуализирате "свързания" контролер е лесно. Как обаче актуализирате някой от останалите? Ползвате дебъг интерфейса или ползвате неговите възможности сам да си префлашва страници? Имате ли си собствен протокол за комуникация за това нещо или ползвате нещо стандартно разработено от производителя? Въобще какви са стратегиите при такава ситуация?
|
| Пет Окт 02, 2015 12:55 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 Re: In-Application-Programming
Аз винаги обновявам всичко през софтуера си ! Имам продукт с 6 контролера (1xARM, 4xDSP, 1x8bit) - всички се обновяват през интерфейсите с които си комуникират помежду си (USB, SPI, I2C, custom) Например 8битовия се обновява през PC->АРМ->DSP->8бит Всички фирмуери се обновяват автоматично - ако има нужда... Всичко си е мой "стандарт" 
|
| Пет Окт 02, 2015 1:27 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: In-Application-Programming
За комуникацията си имаш собствен протокол, а за същинското записване във флаша използваш вградените функции на bootloader-а ли?
|
| Пет Окт 02, 2015 1:36 pm |
|
 |
|
ps66
Ранг: Форумен бог
Регистриран на: Пет Яну 19, 2007 9:16 am Мнения: 1063 Местоположение: путинофили: "иди н***й"
|
 Re: In-Application-Programming
всичко е мое - никакви "вградени" функции нямам - че да ги ползвам! за всеки контролер имам нещо като "буутлоадер" - който се занимава с флашването, но е съобразен със съотвения контролер (рам, флаш) и използвания протокол за комуникация (прекъсвания и т.н.). като при флашването обновявам и самия "буутлоадер" - защото нищо не е последно.
|
| Пет Окт 02, 2015 1:49 pm |
|
 |
|
tolstolob
Ранг: Ориентиран
Регистриран на: Вто Фев 06, 2007 2:45 am Мнения: 263
|
 Re: In-Application-Programming
Собствен бутлоудър във всяко MCU + прост флаш протокол, общ за всички дивайси. В протокола имам команда 'open gateway' с параметри (примерно) име на дивайс. Всички следващи месиджи до 'close gateway' командата отиват директно в таргет MCU-то, там си отварят флаш сесия, тъпчат данни и т.н.
|
| Пет Окт 02, 2015 4:19 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: In-Application-Programming
Ако всички контролери са на една платка мисля най-лесно и удобно ще е да ги свържеш с по две жици за I2C и си ги програмирай през един конектор. Можеш всички да програмираш едновременно 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Съб Окт 03, 2015 2:47 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: In-Application-Programming
Как го виждаш обикновен юзър да се свърже с платката по I2C ? С какво ще се свърже?!? Юзъра в най-масовия случай ще има USB и ще може да изтегли и пусне програмка под Windows. В някои случаи у-вото е свързано към някаква Ethernet мрежа - тогава може програмката да се пусне на кой-да-е компютър закачен към тази мрежа... На мен ми беше интересно дали някой е използвал дебъг интерфейса за префлашване на микроконтролер или всички ползвате писане във флаша "отвътре" (тоест самия микроконтролер да си се префлашне страница по страница)?
|
| Съб Окт 03, 2015 3:01 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: In-Application-Programming
Сега като се замислих - възможно е и записването на програмата през дебъг интерфейса също да е реализирано "отвътре" 
|
| Съб Окт 03, 2015 3:04 pm |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: In-Application-Programming
Пъхаш всичко в паметта и при стартиране да си чете от там.
|
| Съб Окт 03, 2015 3:46 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: In-Application-Programming
Ко речи ? Който има брада си купува ножица. Най-евтиния процесор с USB и I2C струва около $1, не е никакъв проблем да му се налее софт за USB към I2C конвертор по HID. Сложи времето дето ще отделиш да пишеш отделни протоколи за различни фамилии професори по различни интерфейси, а и ако се наложи през професори посредници, умножи по заплатата ти на час и ще разбереш за какво иде реч.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Съб Окт 03, 2015 4:37 pm |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: In-Application-Programming
В твоя вариант юзъра ще трябва да разполага с 4 отделни неща:
1. устройството което му върши някаква работа, но трябва да се актуализира 2. второ у-во което служи само за актуализация на първото (USB <--> I2C bridge) 3. кабелче между №1 и №2 (като това кабелче може евентуално да е запоено на у-во №2, а не да е отделен компонент) 4. USB кабел между компютъра и у-во №2
Според мен е много по-добре ако му трябва само един USB кабел между у-вото и компютъра. Ако трябва вътре в у-вото ще има специален чип само за актуализациите, но от него навън трябва да има само стандартни и масови интерфейси със стандартни кабели, които могат да се купят във всеки град.
А варианта да не се пише софтуер е възможен само ако има нещо готово стандартно, което да върши същата работа. Има ли такова нещо?!
|
| Съб Окт 03, 2015 5:33 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
 Re: In-Application-Programming
Даниелчо какви са тия "хипотетични" ситуации? Кажи си конкретно какво ти трябва за каква платформа, какъв тип изделие, т.е. дали е мрежово и с достъп до интернет, дали се ползва от човек или е завряно самичко нейде си...
Най-добрият вариант е като излезе нов фърмуер устройството да си го дърпа и да си го сменя самичко, като фърмуерът е желателно да е криптиран и да не може лесно да ти клонират устройството. Отделно ъпгрейда трябва да е надежден, т.е. ако спре тока или ако нещо не се получи както трябва, устройството да си възстановява последната работеща версия и т.н. и т.н.
|
| Съб Окт 03, 2015 9:20 pm |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
 Re: In-Application-Programming
То е близко до акъла, че ако имаш USB на някои от професорите е най-добре да е през USB… Аз ти разправях за случая, когато нямаш USB, а имаш една камара професори (xипотетично де...). Но дори и така да е, пак е най-лесно да ги закачиш всички през I2C и след това USB професора да ги програмира. А стандартни неща готови колкото искаш има, само трябва да можеш да ги виждаш 
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Нед Окт 04, 2015 12:48 am |
|
 |
|
DanielDimov
Ранг: Почетен член
Регистриран на: Нед Фев 16, 2014 3:36 pm Мнения: 953
|
 Re: In-Application-Programming
Всичко е хипотетично защото още нищо не се знае как ще е... Процесора който ще има възможност да се свърже ще е или NXP или ST (Cortex-M4). Другия процесор ще е нещо по-слабо, но изобщо не се знае какъв ще е (избора на този процесор не го правя аз). Устройството ще е преносимо с батерийно захранване - така че мрежови или безжични връзки отпадат - само USB. Питам за стратегията за актуализация защото този проблем трябва да е решен и да работи гладко от ден 1-ви.
|
| Нед Окт 04, 2015 11:21 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 Re: In-Application-Programming
Аз понеже съм газил в точно такива лайна, ето и мойте 5 стинки:
Най-добре е да се ползват вградените бутлоадери, ако ги има налични разбира се. Така си връзваш гащите срещу проблем с твоя бутлоадер. Едно, че може да пропуснеш някакъв бъг при тестовете, другото е, че когато са хардкоднати в чипа, са железни и винаги са си там.
Една примерна конфигурация е STM, който наливаш през DFU (USB), и подчинение процесори накичени на UART и с вградени бутлоадери. Тая комбинация няма как да изпадне в безтегловност, винаги ще може да припали. Важното е само да подсигуриш хардуера още на ниво дизаин (активацията на бутлоадерите).
Напрактика повечето съвременни процесори си имат бутлоадер поне през UART.
Освен всичко друго, ако сертифицираш софтуера, бутлоадера е още една купчина бумаги... А и да не го сертифицираш, пак си трябва да се пишат бумаги ако правиш нещо сериозно, трябва яко да се тества и въобще - ако може без него - по - добре.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Нед Окт 04, 2015 4:03 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|