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

 
 
> Организация USB перепрошивщика...
Gizma
сообщение Aug 24 2009, 16:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 3-09-08
Пользователь №: 39 972



Привет!

Значит нужно реализавать следующую штуку...
Есть некий девайс в который пользователь вставляет флешку, выбирает функцию смены прошивки, девайс находит *.hex в roote и себя перешивает, причем он должен перешиваться полностью, вместе с лодером с помощью которого он перешиваеться (лодер также должен уметь сгружаться с флешки некие параметры для проги...)... это все на LPC2468...

Как я себе это представляю... в начале в память зашит лодер потом прога...

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

Но это все мои измышления, наверняка сея проблема распространена и есть какие либо классические решения...
Может чего присоветуете?

П.С. Как можно програмно переустанавливать точки старта в LPC? Можно ли вообще?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Guest_@Ark_*
сообщение Aug 27 2009, 14:56
Сообщение #2





Guests






Цитата
...наверняка сея проблема распространена и есть какие либо классические решения...


Классические решения есть - это загрузка операционных систем в PC с внешнего носителя (диска например).
Всегда имеется аппаратный ("железный") загрузчик, которому передается управление после включения питания и успешной отработки тестов (POST-процедур). На самом деле он, конечно, программный по сути, но находится в BIOS и поэтому всегда изначально присутствует в памяти.
Вся задача аппаратного загрузчика - считать с выбранного носителя начальный загрузчик. Про организацию носителя он ничего не знает (какая там FAT и пр.), просто читает начальную область носителя (512 байт), где должен находится начальный загрузчик, в фиксированную область памяти и передает ей управление. Начальный загрузчик тоже много сделать не может, так как должен укладываться в эти фиксированные 512 байт. Его задача - "вытащить" с диска основной загрузчик и передать ему управление. Вот тот уже может быть любого размера, умеет обращаться со структурой носителя, работать с файловой системой, загружать и выполнять программы и так далее... Вот, примерно так, в первом приближении...
Go to the top of the page
 
+Quote Post



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

 


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


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