zltigo 2 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба Потребовалось залить дополнительную прошивочку для загрузки в 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба Немного не по-сути вопроса. Вы не забыли в опциях проекта J-Flash на закладке ARM прописать два макроса. 1-ый - Reset , 2-ой Write32bit по E01FC040 со значением 1 ? Может вопрос звучит и глупо, но я не сразу до этого дошел, тоже долго мучился :-))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба Немного не по-сути вопроса. Вы не забыли в опциях проекта J-Flash на закладке ARM прописать два макроса. 1-ый - Reset , 2-ой Write32bit по E01FC040 со значением 1 ? AAAAAAA!!!!!!!! Ну и туманно Вы изьяснились! Но это практически наверняка ПО ТЕМЕ!!!!!! Этот $%U^&*%^&$ Philips ISP LPC2000 вроде как на первый взгляд не стирает код НО ГРОБИТ контрольную сумму. Ну а дальше "Boot Loader Mode" и 64 бита ремапинга! Ну дальше J-Flash в ступоре. Полагаю несомненно это ОНО! ISP lpc21isp, напротив, тупо пишет контрольную сумму ВСЕГДА, но стирает все сектора перед этим. Начал грубо латать код lpc21isp - недоработок там вагон и маленькая тележка. Память под прошивку выделяет своеобразно и не оединичивает и прочее.. прочее... Главное он в принципе не может шить никак, кроме как с нуля. Причем все так странно писано, что править и латать и латать придется. Но поскольку главный "глюк" нашел свое объяснение, то работа не пропадет даром. С остальным уже разберусь. Спасибо! О результатах эксперимента доложу. Я вот только одного пока не пойму - ПОЧЕМУ LPC2294 прошился??????? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба Иногда и у меня с первого раза прошивался без этих макросов. Возможно там уже была зашита прога, которая делала remap на user flash. А сам J-Flash кстати reset не делает, если его не попросить. Вобщем допер до этого сам, а потом оказалось что все проще - у них в поставке есть готовые примеры jflash проектов - там так и сделано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 26 февраля, 2006 Опубликовано 26 февраля, 2006 · Жалоба Иногда и у меня с первого раза прошивался без этих макросов. Возможно там уже была зашита прога, которая делала remap на user flash. В том-то и дело, что нет - стерто все начисто! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Velund 0 27 февраля, 2006 Опубликовано 27 февраля, 2006 · Жалоба Похожие фокусы имел в J-Flash с LPC2138. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 27 февраля, 2006 Опубликовано 27 февраля, 2006 · Жалоба Похожие фокусы имел в J-Flash с LPC2138. Это само-собой - ЭТОТ эффект для всех един и теперь понятен и обходим средствами J-Flash. А вот то, что ни одной двух из известных мне ISP утилит нельзя прошить Flash не с 0 сектора это меня поразило. Еще больше поразило, что вроде как 'можно', но дерьмо по полной программе. Да и при штатном прошивании с 0 сектра появляются эффекты - филипс режет в старших сегментах а LPC21ISP оставляет мусор и пачки 0 в хвосте в любом случае. Вчера грубо помахал шашкой и залатал LPC21ISP - теперь шьет с начала любого сектора и без мусора. Все хорошо, но неожиданно потерял время :-(. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться