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

 
 
> Программирование 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
Ответов
3.14
сообщение Apr 20 2007, 12:48
Сообщение #2


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

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



1)сама себя рабочая прошивка перезалить не сможет, а загрузчик должен знать требуется обновление или нет, тайм-ауты тоже не желательны т.к. затягивают старт системы.
2) TFTP или нет, это пока не принципиально (к тому же NicheLite имеет клиента, ломает рабираться как к этому свои нужны прикручивать).



Вопрос, как в Кейле разместить код по нужному адресу?
Взял адрес 0x20000, указал в свойствах линковщика --entry 0x20000, а мне в ответ: Entry point (0x00020000) lies outside the image.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
zuy
сообщение Apr 20 2007, 13:02
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593



Не совсем в темы, но тоже про бутлоадер.
А каким методом Вы пользуетесь для рестарта процессора после перепрошивки?

Я использую аналог вызова IAP из примера от KEIL.
Код
typedef void (*P_RESET)(void);
P_RESET prog_reset;

В процедуре инициализации:
prog_reset = (P_RESET) 0x00000000;

Ну и где необходим рестарт:
prog_reset();


В общем-то работает. Хотел узнать может есть какой другой, может более правильный вариант?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:41
Рейтинг@Mail.ru


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