Потребовалось залить дополнительную прошивочку для загрузки в 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