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

 
 
> LPC2478 IAP
lecko
сообщение Nov 17 2011, 15:54
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 22-08-11
Пользователь №: 66 820



Всем привет!

Имеется устройство на основе LPC2478, которое, в том числе, умеет подключаться как Mass Storage Device и обрабатывать произвольные SCSI-команды с компьютера. Возникла необходимость сделать обновление прошивки через USB. Я узнал, что контроллер поддерживает IAP-функции, позволяющие модифицировать содержимое встроенной памяти. Таким образом, предполагается создать код, который будет либо подгружать прошивку, либо передавать на нее управление. Среда разработки - Keil uVision 4.
Вопросы:
1) как корректно интрепретировать HEХ-файл, создаваемый кейлом? где про это можно прочитать?
2) Как правильно разместить прошивку в памяти?
3) У кого нибудь есть примеры кода с подобным функционалом?
4) Можно ли (если да, то как) скомпилировать кейлом код, который корректно разместится НЕ по нулевому адресу?

Полдня гуглил, ничего не нашел sad.gif

Заранее спасибо!

Сообщение отредактировал lecko - Nov 17 2011, 15:57
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lecko
сообщение Dec 26 2011, 09:51
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 22-08-11
Пользователь №: 66 820



И еще раз всем привет!

Собственно, возник следующий вопрос. Прошивка по USB успешно выполняется. То есть почти успешно...
Уточню детали реализации.
Вся память с помощью scatter-файла разбита на 2 региона: 0x0-0x60000 и 0x60000-0x80000. В первом содержится, собственно, обновляемый код, а во втором - код, вызывающий IAP-функции и отключающий прерывания на время их работы. Основной код (в первом регионе) получает данные по USB и записывает их в RAM, а затем, опять же по команде с USB, управление передается на код, расположенный во второй области памяти, осуществляющий перепрошивку. После перепрошивки предполагается аппаратная перезагрузка.

Утилита для перепрошивки по СОМ (FlashMagic) сравнивает содержимое памяти с исходным хекс файлом и говорит что все ок. Однако контроллер до следующей перепрошивки по кому не работает. Вопрос: почему? Не надо ли помимо собственно перепрошивки дополнительно изменять какие-то служебные области? Или в чем еще может быть дело?



Сообщение отредактировал lecko - Dec 26 2011, 13:47
Go to the top of the page
 
+Quote Post



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

 


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


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