|
|
  |
удаленное программирование, wavecom & mega32 |
|
|
|
Mar 31 2009, 09:19
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 21-04-06
Из: спб
Пользователь №: 16 353

|
поиском пользовался, помогло мало. я в тему бутлоадера ещё не въехал. то есть как реализовать пока понятия не имею, и вопрос у меня пока ни в контретный строках кода, а в алгоритме по которому это надо сделать. в вэйвкоме памяти достаточно чтоб хранить прошивку для меги32, хотя можно и фрамку прикрутить. сейчас они по и2с общаются но можно и на СПИ перевести. вэйвком опрашивает мегу, та в свою очередь отдает массив 512 байт - это основная работа меги. я думаю следить за валидностью прошивки и за целостностью мне нет необходимости, хотя успешный результат программирования тоже интересен. (это проверить не сложно на вэйвкоме) прошивать буду только по требованию (через СМС) и вот от сюда не знаю как делать дальше. надо ли ресетить мегу, что куда подсовывать, куда писать, от куда читать. гуглил на эту тему по делу мало  вот нашел загрузчик через UART может получиться переделать под себя. помогите советом. Рад буду любой помощи. а может вообще есть человек который поможет это сделать, за вознаграждение. для справки вэйвком забирает прошивку по ФПТ через ГПРС и положит её куда надо будет. здравый смысл подсказывает что в меге должен быть только будлоадер, и каждый раз после ребута приложение будет грузиться из внешней памяти, а если что не так то сказать модему что мол так и так проблема с загрузкой. по требованию мы лишь перепишем содержимое памяти, а после ребута загрузиться новая прошивка. (административное управление на вейвкоме будет, т.е. ресет меги, заливка прошивки в память и т.д.) как такой подход?
|
|
|
|
|
Mar 31 2009, 19:20
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 21-04-06
Из: спб
Пользователь №: 16 353

|
Цитата(SasaVitebsk @ Mar 31 2009, 22:24)  При запуске (ресете) запускается всегда бут. Он проверяет целостность приложения и если оно цело, то запускает его. то есть проверяет целостность прямо у себя во флеши? Цитата(SasaVitebsk @ Mar 31 2009, 22:24)  При работе приложения нужно по какому-то алгоритму инициировать старт бута. этим будет рулить модем, я демаю он будет ресетить мегу, а та при старте начнет искать прошивку. Цитата(SasaVitebsk @ Mar 31 2009, 22:24)  Есть понятие протокола, то есть как формируются пакеты, где команды указываются, как контрольная сумма считается, что делать если она неверна и т.д. ну тут наверно стоит начинать изучать http://www.gaw.ru/html.cgi/txt/doc/micros/...arh128/19_2.htmhttp://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR109.htmя прав? Цитата(SasaVitebsk @ Mar 31 2009, 22:24)  Я бы рекомендовал также предусмотреть команду выдачи текущей версии по запросу. это будет Цитата(SasaVitebsk @ Mar 31 2009, 22:24)  Возможно также прошивку хранить во внешней EEPROM. Например в I2C EEPROMе. То есть грузить туда, а при перестарте перезаливать во флэш. (Обычно это делается "на лету"). чтобы упростить программу бута, картина вырисовывается такая: ресет, старт бута, он по SPI из внешней еепромки качает приложение себе, проверяет, стартует, работает при необходимости ребутим мегу, предварительно залив вовнешнюю еепром программу. логично. но тогда вопрос, а можно ли одним контроллером в еепром писать, а другим из неё читать на примере spi (просто у меня по и2с обмен с модемом сделан, а он слейвом на шине быть отказывается). я это как бы сказать...чайник в этом деле
|
|
|
|
|
Apr 1 2009, 12:58
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 21-04-06
Из: спб
Пользователь №: 16 353

|
Спасибо модераторам, что убрали тему в самую задницу :>[ чайник в смысле создания микроконтроллерных систем с бутлоадером, за плечами 4 серийных проекта, пусть небольшие но серийные, и сделаные мной!!! аналоговая схемотехника, силовая преобразоват техника на ура. вот с МК недавно, но не настолько чтоб задавать глупые вопросы. ВЕРНИТЕ ВЕТКУ НА МЕСТО! судя по соседним темам,здесь мне уж точно не помогут  .
Сообщение отредактировал demon_lee - Apr 1 2009, 13:00
|
|
|
|
|
Apr 1 2009, 14:48
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(demon_lee @ Apr 1 2009, 15:58)  вот с МК недавно, но не настолько чтоб задавать глупые вопросы. ВЕРНИТЕ ВЕТКУ НА МЕСТО! судя по соседним темам,здесь мне уж точно не помогут  . Не нервничайте, задавайте вопросы и сами думайте  Перлам типа "модем сбросит контроллер" без указания, как именно, и "мега будет искать прошивку" именно тут место.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Apr 1 2009, 18:52
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Начну с того, что разработчик (в данном случае вы) волен сам выбирать решения. Их много. Любую задачу можно решить десятками способов. Я буду, для начала приводить общепринятые решения под фишкой "обычно".  Цитата(demon_lee @ Mar 31 2009, 22:20)  то есть проверяет целостность прямо у себя во флеши? Естественно. Этим он контролирует правильность программы, которую планирует выполнять. Кроме того, этим он проверяет была ли закончена операция обновления приложения. Представьте себе, что во время записи приложения у вас произошёл сбой питания. В этом случае ничего страшного не произойдёт, так как при перестарте бут проверит целостность приложения, увидит что не совпадает CRC и будет ждать повторной передачи приложения. Цитата этим будет рулить модем, я демаю он будет ресетить мегу, а та при старте начнет искать прошивку. Обычно делают так: 1) бут записывает приложение сразу себе во флэш. 2) Например работа вашего устройства состоит в выдаче пакета на запрос. (как я понял). Соответственно вы вводите ещё один запрос на выдачу версии. И ещё один запрос на обновление приложения. Внешнего ресета - не требуется. Будет внутренний переход на бут. При этом при ресете обязательно запускается бут анализирует и переходит на прилож, как я писал выше. Цитата 1-ая ссылка совершенно не из той оперы. Это метод программирования контроллера с помощью внешнего контроллера. 2-ая - да. Это по теме. Можно ещё порекомендовать AVR231. Очень многие его брали за основу. Если же говорить о протоколах, то лучше почитайте что-нибудь типа WakeUp. Простой, но дающий общую картину. Цитата это будет
чтобы упростить программу бута, картина вырисовывается такая: ресет, старт бута, он по SPI из внешней еепромки качает приложение себе, проверяет, стартует, работает при необходимости ребутим мегу, предварительно залив вовнешнюю еепром программу. логично. Можно и так. Обычно так: Передаём команду в приложение и по ней мега переходит на бут. Передаём новый код приложения буту. Бут записывает. по финишу бут контролирует и переходит назад на приложение. (новое) Можно и так: Передаём приложению новое приложение и мега складывает его в отдельную eeprom. Контролирует целостность. По завершению передаём команду и переходим на бут. бут переносит приложение из eeprom во флэш. Перестартует. Можно и как ваш случай, тогда надо организовывать совместное использование eeprom. Цитата но тогда вопрос, а можно ли одним контроллером в еепром писать, а другим из неё читать на примере spi (просто у меня по и2с обмен с модемом сделан, а он слейвом на шине быть отказывается). я это как бы сказать...чайник в этом деле Как раз по i2c это вполне возможно. Будет 2 мастера. Один записывает - второй читает. Только не одновременно, а попеременно. С SPI придётся городить аппаратный мультиплексор выбора. В принципе не сложно. И ещё надо организовывать чтото типа признака занятости для каждого из процессоров. Тоже в принципе не сложно. Если это нужно конечно.
|
|
|
|
|
Apr 4 2009, 11:01
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 21-04-06
Из: спб
Пользователь №: 16 353

|
Спасибо! я определился, с вашей помощью, как это будет работать. мультиплекс на спи я уже делал. в курсе. на счет и2ц подумаю. у вейвкома доступа к регистрам нету, только из АТ приложения через драйвер можно управлять шиной, сильно ограничены в функционале  Цитата Перлам типа "модем сбросит контроллер" без указания, как именно, и "мега будет искать прошивку" именно тут место. а вы как то иначе подразумеваете сброс контроллера, нежели специально для этого отведенный вывод из корпуса м/сх, и кстати, модем умеет управлять свободными ногами GPIO как и все другие контроллеры, раз уж вы не знали.  а алгоритм выбора откуда брать более свежую прошивку из своей флеши или из внешней - не претендует на звание "алгоритм года!" и на этой стадии вопроса не является принципиальным с уважением. я уже устал предыдущий пост править. если кого обидел извините.
Сообщение отредактировал demon_lee - Apr 4 2009, 10:58
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|