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

 
 
> Программирование 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, 13:22
Сообщение #2


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

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



2 zuy
До рестартарт-ов мне пока далеко smile.gif, только я не понял, где в вашем примере IAP (обычная загрузка указателя)? К тому же через IAP вроде можно только принудительно бутлоадер вызвать.

Далее по моему вопросу о размещении, с помощью вот такого файла линковщика получается разместить выше:
Цитата
ROM_LOAD 0x00020000 0x00080000
{
ROM_EXEC 0x00020000
{
Startup.o (vectors,+First)
* (+RO)
}
IRAM 0x40000000
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
Startup.o (Heap)
}
STACKS 0x40008000-0x1800 UNINIT
{
Startup.o (Stacks)
}
}
НО, при этом и таблица векторов тоже в верх уползает, как поправить?


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


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

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



Цитата(3.14 @ Apr 20 2007, 13:22) *
2 zuy
До рестартарт-ов мне пока далеко smile.gif, только я не понял, где в вашем примере IAP (обычная загрузка указателя)? К тому же через IAP вроде можно только принудительно бутлоадер вызвать.

Я имел ввиду, что посмотрел, как в примере вызывают IAP и сделал так же, только адрес заменил на 0, и параметры убрал. В оригинале обьявление выглядело так:

Код
typedef void (*IAP)(struct iap_in *in, unsigned int *result);
#define iap_entry ((IAP) 0x7FFFFFF1)       // IAP Entry Point

И вызов:
iap_entry (&iap, result);
Go to the top of the page
 
+Quote Post



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

 


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


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