Потребовалось залить дополнительную прошивочку для загрузки в FPGA в старшую область Flash LPC2124. Казалось-бы какие могут быть проблемы? В распоряжении имеется: 1. J-Flash 3.10D + MT-Link 2. Родной Philips ISP LPC2000 2.2.1 3. Альтернативный ISP lpc21isp 1.31
Что мучаем: - Чип LPC2124 - bootloader 1.63; - тестовый тектстовый файлик размером 16664 байта перегнанный в linear HEX.
1. Вообще-то потребуется в основном заливка через RS-232, но начал с J-Flash. Не залилось! Ругань на сектор 0x12000. К счатью заметил (после многих месяцев использования), что какой-то размер странный индицирует J-Flash для LPC2124 - 120K и 14 секторов. Ошибочка у Segger - подправил описание чипа - порядок. Прошилось все как надо.
2. Переходим к Филипсофской утилите. Загружаем. Зашиваем. Слова худого в ответ не слышим. А что во Flash? Во Flash каша: - Собственно код с 0x00000 стерт, правда с адреса 0 записаны 64 байта мусора. - C адреса 0x10000 располагается залитый файл, но он обрывается на 0x13FFF. Дальше 0xFF
Контролирую через Buffer->Flash Bufer Operation... Все нормально... Но шьет аналогично.
3. Возвращаюсь к J-Flash - Жуть! Он не может стереть те самые 64байта в начале. Не может и все! Весь чип чистится а 64байта нет. Сдох? Включаем-Выключаем-Перегружаем-Опять.. Не помогает. Запускаю ISP LPC2000 - Стереть-Проверить- говорит порядок. Читаем через J-Flash - 64байта на месте. Записать - ну естественно облом.
4. Берем другой чип - ПОВТОРИЛОСЬ!!!!
5. Берем альтернативный ISP - пробуем грузить программу с 0 адреса - загрузилась! Правильно! Запускаем J-Flash - Стирается! Пишется! Повторяю порчу еще несколько раз - СТАБИЛЬНЫЙ эффект.
6. Ну его этот Philips. Беру lpc21isp. Зашиваю с 0x10000 требуемый файл. Уже при загрузке ясно, что lpc21isp шьет с 0 до 0x10000 адреса нули :-(. Смотрим результат - Ой! С нулевого адреса 32байта (не 64) мусора. Далее 0x00. Далее с 0x10000 искомое. НО! после конца забито нулями и еще повторяется кусок текста. Хорошо, что J-Flash без проблем это все стирает.
Теперь собственно вопрос: Как залить через RS232 дополнительную (не одновременно с основной) прошивку по старшим адресам Flash. Кто-то чем-то делал?
P.S. Я конечно буду пробовать в случае чего копаться в исходниках lpc21isp, но сдается мне, что может быть бесполезным и/или изрядно хлопоттым - уж очень похоже на баг в bootloader :-((( На Philips, естественно, тоже напишу...
P.P.S. Повторил эксперимент с LPC2294 - проблем НЕТ! Повтори эксперимент с LPC2124 сказав, что это LPC2294 - проблемы ЕСТЬ!
P.P.P.S. Попробовал заливать одним файлом: - проблема с 32/64 байтами с 0 адреса исчезла у обоих - осталось обрезание файла для филипса и добавление мусора в конце для lpc21isp
--------------------
Feci, quod potui, faciant meliora potentes
|