реклама на сайте
подробности

 
 
> Программирование MC через Ethernet
3.14
сообщение Apr 20 2007, 12:22
Сообщение #1


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Терзаю LPC2378 под управлением NicheLite ...
Есть желание прикрутить механизм смены прошивки "на лету" через эзернет, а конкрктнее используя стек NicheLite, через TCP соединение.
Думаю, вариантов тут не много ... одна версия NicheLite (минимальная) выступает в роли загрузчика (или базовой аварийной версии), другая размещается выше (которая и будет перезаливаться).
Примерный механизм сены прошивки:
1) говорм устройству что нужно обновить фирмварь, та во флешке сохраняет флажек PROGRAM, перезапускает контроллер
2) "базовая" версия при запуске смотрит состояние PROGRAM флага, если не активен, то тупо предает управление "рабочей" версии, если PROGRAM активен то ждет обновления прошивки потом сбрасывает PROGRAM и рестарт

Рассматривал еще вариант с двумя полноценными прошивками, если нужно то одна заменяет другую, но при этом прийдется еще загрузчик клеить чтоб анализировал целостность и передавал управление нужной прошивке.

...


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Apr 24 2007, 15:15
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(3.14 @ Apr 20 2007, 11:22) *
1) говорм устройству что нужно обновить фирмварь, та во флешке сохраняет флажек PROGRAM, перезапускает контроллер
2) "базовая" версия при запуске смотрит состояние PROGRAM флага, если не активен, то тупо предает управление "рабочей" версии, если PROGRAM активен то ждет обновления прошивки потом сбрасывает PROGRAM и рестарт
Какую-либо неиспользуемую ногу (например приснопамятный SSEL с внешней подтяжкой) приложение настраивает на вывод и передает управление загрузчику. Загрузчик проверяет ногу - если настроена на ввод - значит это старт по включению питания, если на вывод - значит это вызов из приложения. Запись флажка во флеш при этом не требуется.
Цитата(zuy @ Apr 20 2007, 12:02) *
В общем-то работает. Хотел узнать может есть какой другой, может более правильный вариант?
Запустить вочдог и дать ему сбросить процессор. Гарантированноо сбросится вся периферия и вы не будете иметь сюрпризов типа какую-то периферию уже настроил загрузчик а приложение об этом не знает и полагается на настройки по умолчанию.
Код
start_sect = floor(page/128) + first_sect;
Зачем тут плавающая точка? start_sect = page / 128 + first_sect;
Код
IENABLE;
  while(Iap.status!=CMD_SUCCESS);
  return TRUE;
Если предыдущий вызов IAP не удался, этот цикл будет крутиться вечно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 25 2007, 00:16
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Apr 24 2007, 15:15) *
Какую-либо неиспользуемую ногу (например приснопамятный SSEL с внешней подтяжкой) ...

Два Scratch Pad регистра в UARTах в твоем полном распоряжении.
А SSEL давно уже полезным стал smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016