|
|
  |
LPC2368, (AT200 - Terminal/ISP for LPC2xxx/LPC1xxx) |
|
|
|
Feb 6 2010, 15:45
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(IgorKossak @ Feb 6 2010, 14:45)  zltigo, не сложно ли будет добавить семейство LPC17xx? Полагаю, что не сложно, только живьем нет, но теоретически могу. Для младших с 32K Flash, можно подобный LPC джокером -LPC2xxx задать. А так вообще, забью вечерком табличку и для LPC13/17 Теоретически добавил 19 чипов LPC11xx/LPC13xx/LPC17xx полный список, как обычно, при запуске с ключем `-list` За IgorKossak - проверка и логи, если что  Внимание! Облом - с Cortex пока работать не будет  - через несколько часов подправлю еще несколько мест. Кроме банального изменения таблиц надо еще место контрольной суммы менять, начальный адрес RAM, команды отличаются, может и что еще найду...
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 7 2010, 14:21
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Версия 0.31.1 - можно пробовать на кортексах. - области RAM под буфера соответствует LPC1xxx - запуск загруженного в LPC1xxx приложения в THUMB режиме - контрольная сумма векторов для LPC1xxx в правильном месте - до кучи еще LPC2109 и несколько экзотических romless добавлены.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 27 2010, 08:36
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Версия 0.31.3. Так не знаю  , пробовал-ли кто-то на Cortex-ах предыдущую. Добавлено: - отображение версии Windows; - увеличение буферов за COM портом терминала; - ключик для изменения Code Read Protect Level `-crp <0|1|2>` с контролем содержимого (не запишет поверх кода, как это делает родная утилита) контроль производится на значения 0x00000000, 0xFFFFFFFF, CRP1, CRP2, CRP3 по адресу 0x1FC. CRP3 от греха подальше не устанавливатся - только отключается, или меняется; - в ожидании нажатия 'AnyKey' убрана безумная загрузка процессора.
Причина редактирования: Удалено устаревшее приложение
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2010, 06:46
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
Попробовал, наконец, сегодня на Cortex-е LPC1758. Прошить не смог. Использовал следующую командную строку: Цитата at200 COM6 -baud 115200 -osc 24000 -ctrl 1 -l log.txt -crp 2 -flash AutosndLPC1758.hex Лог-файл отсутствует (не нашел нигде), поэтому привожу вывод командной строки: Цитата at200 COM6 -baud 115200 -osc 24000 -ctrl 1 -l log.txt -crp 2 -flash AutosndLPC1758.hex AT200/AES ISP/Terminal for LPC2/1000 V0.31.3 by I.Zalts. Windows 6.1 Set Boot Control mode: 1 Log output to:`log.txt` Set CRP Level: 2 HEX file: [Ctrl+F9] AutosndLPC1758.hex Serial Port: COM6 Baud: 115200 Oscilator: 24000KHz Entering to LPCxxxx Bootloader -Ok Bootcode: 4.1.0 Chip ID: LPC1758 512KB ROM/64KB SRAM (ID:620838711/0x25013F37) File : 'AutosndLPC1758.hex' -Loaded Load Address: 00000000 Run Address Found: 000052A5 End of File Image size: 28884. Data Aligned to 4096 Bytes (28884->32768) Code Protect: CRP2 Enabled Sector 00 Wrong answer on Erase-Command (Sector 0) Error: Press AnyKey to Exit При указании директивы -detect сигнатура успешно считывается. В момент запуска уровень crp2 уже стоял на чипе, возможно, в этом-то и заключается проблема. На "чистом" чипе пока проверить не могу. Помимо прочего, еще один непрятный момент. Выполнение идет слишком долго, между стадиями "вхождение в бутлоадер", "чтение ID чипа" и, собственно, "начала прошивки" наблиюдаются паузы от 15 до 25 секунд. ОС: Windows 7 P.S. Благодарю за программку. Прошивку с помощью ком. строки нахожу весьма удобным. Вот только довести бы ее до ума. Update: Указал директиву -fullerase - прошивка налалась. Но шьет ооооочень долго, в час по чайной ложке.  Ячейка CRP размеслилась неверно, для lpc17xx адрес - 2FC.
Сообщение отредактировал bseyur - May 30 2010, 06:56
|
|
|
|
|
May 30 2010, 07:57
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(bseyur @ May 30 2010, 08:46)  При указании директивы -detect сигнатура успешно считывается. В момент запуска уровень crp2 уже стоял на чипе, возможно, в этом-то и заключается проблема. Да в этом. Надо стирать перед программированием. Цитата Update: Указал директиву -fullerase - прошивка налалась. Так и задумывалось  Цитата Но шьет ооооочень долго, в час по чайной ложке.  Для начала уберите указание частоты кварца - оно неверное - загрузчик LPC1xxx работает на внутреннем 14.746MHz она и стоит по умолчанию. -ctrl и боды тоже по умолчанию указанным Вами соответствуют. На Win7 не работаю, но вроде никто на скорость не жаловался. Завтра на работе возьму ноутбук с семеркой и посмотрю сам. Вообще там голый WinAPI - трудно что-нибудь неправильно написать. Есть только маленький прибамбасик с увеличением размеров буферов (это не для целей LPC загрузчика ) который идет только на NT-образных Win - для этого введено определение версии Win. Цитата Ячейка CRP размеслилась неверно, для lpc17xx адрес - 2FC. Ой! Прсмотрел  в документации. Исправленная версия в приложении. Цитата(bseyur @ May 30 2010, 08:46)  Лог-файл отсутствует (не нашел нигде), поэтому привожу вывод командной строки: Лог файл это терминальный и он таки создается в текущей директории, или где укажете, но лога загрузки в нем нет. Надо  переназначить вывод.
Причина редактирования: Удалено приложение
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2010, 09:18
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
Цитата(zltigo @ May 30 2010, 14:57)  Для начала уберите указание частоты кварца - оно неверное - загрузчик LPC1xxx работает на внутреннем 14.746MHz она и стоит по умолчанию. -ctrl и боды тоже по умолчанию указанным Вами соответствуют. Сделал в соответствии с Вашими рекомендациями. Проблема со скоростью осталась... Картина такая. На платке-программаторе стоят светодиоды, которые загораются во время передачи данных. Во время отправки очередной порции светодиоды моргнут, затем пауза в примерно пол-минуты, затем снова и т.д. Не поленился проделать те же дейтвия на ноутбуке с WinXP - прошивается так же медленно.  Может, это как-то связано с типом процессора? Прошивается программа верно, CRP заработал. После завершения прошивки команда запуска выполняется с ошибкой: Цитата Now launching <0052a5> the brand new code....Failed: Error: Press AnyKey to Exit И еще, Win7 определяется как версия 6.1.  Думаю, что это неправильно, т.к. обычно эти номером обозначается Vista. WinXP - 5.x соответственно. Цитата(zltigo @ May 30 2010, 14:57)  Лог файл это терминальный и он таки создается в текущей директории, или где укажете, но лога загрузки в нем нет. Надо  переназначить вывод. Увы, лога нет ни в текущей директории (где находится hex-файл), ни в папке с at200.exe (к приложению обращаюсь через path), ни в корне... Цитата(vallav @ May 30 2010, 15:25)  ...
Сообщение отредактировал bseyur - May 30 2010, 09:23
|
|
|
|
|
May 30 2010, 10:04
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(bseyur @ May 30 2010, 11:18)  ноутбуке с WinXP - прошивается так же медленно.  Ну тогда совсем не ведаю, что творится. Может кто еще попробует. Тогда хоть какое-то направление для мыслей появится. Цитата Тем не менее, прошивается программа верно. После завершения прошивки команда запуска выполняется с ошибкой: А программа при этом запускается, или только после reset? Что-то там со строкой ответа в этом загрузчике не то  Давайте включим отладку. Делаем так: Код at200 COM6 -debug 4 -flash AutosndLPC1758.hex > debug.txt Ждем.... ждем... сколько там у Вас все шьется и запускается. Прерываем и выкладываем сюда результат debug.txt Цитата И еще, Win7 определяется как версия 6.1.  Думаю, что это неправильно, т.к. обычно эти номером обозначается Vista. WinXP - 5.x соответственно. Нет. Vista 6.0 http://msdn.microsoft.com/en-us/library/ms...3(v=VS.85).aspxЦитата Увы, лога нет ни... Повторяю еще раз - лог для ТЕРМИНАЛЬНОГО ввда/вывода. Не для загрузчика. Для лога загрузчика переназначить вывод в файл, как показано выше. В приложении немножко подправленный AT200 P.S. А вообще-то команду 'G' для Corteх после загрузки надо херить  . Указатель стека некому устанавливать,так что только в общем случае только через сброс. Для сброса, если нет доступа можно попробовать watchdog недокументированной командой 'T' запустить. Но пока жду лога.
Причина редактирования: Убрана устаревшая версия
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2010, 11:16
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
Вот, пожалуйста...
debug.txt ( 65.7 килобайт )
Кол-во скачиваний: 228
Сообщение отредактировал bseyur - May 30 2010, 11:26
|
|
|
|
|
May 30 2010, 11:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(bseyur @ May 30 2010, 13:16)  Вот, пожалуйста... Отличный лог. Ругается ошибкой номер 13 (разборку ошибок совершенствую - будет показывать ) 13: "Address is not on word boundary (ADDR_ERROR)" Таки и действительно адрес для Corteх странный - нечетный. Сейчас сделаю - сброс младшего бита адреса, похоже он лишний, ибо в команде "G" уже передаю ключик "Thumb" - ключик для отключения команды "G" и замены ее на попытку сбросить (причины в предыдущем письме) - допишу разборку ошибок, дабы ответы этого загрузчика тоже понимала и расшифровывала. И попробуем....
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2010, 12:03
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
Можно ведь просто ножкой DTR дернуть для сброса, как делается в FlashMagic... или это не вариант?
Сообщение отредактировал bseyur - May 30 2010, 12:04
|
|
|
|
|
May 30 2010, 12:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Сделано. Версия 0.31.6 - Добавлен ключик `-reset`. Отменяет после загрузки переход по стартовому адресу указанному в HEX файле и делает аппаратный сброс. Если нет поддержки апаратного сброса ( не -ctrl 1|3 ) то пытается задействовать watchdog (не документированная команда). - Корректная разборка строк с кодами ошибок, и в том случае, если в строке отсутствуют пары CR/LF - Обнуление младшего бита адреса в команде 'G' для Cortex Цитата(bseyur @ May 30 2010, 14:03)  Можно ведь просто ножкой DTR дернуть для сброса, как делается в FlashMagic... или это не вариант? Вариант, если есть этот проводок  . Лично я обычно уже не использую - в пустой заливается свой загрузчик и все. Если что, то из вторичного загрузчика есть запуcк родного. Собственно по ключу -reset пытается сбросить всеми способами.
Причина редактирования: Удалена промежуточная версия
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2010, 13:04
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
Прошил. Собственно сброс состоялся, видел, как DTR дернулся.
debug.txt ( 65.79 килобайт )
Кол-во скачиваний: 228
|
|
|
|
|
May 30 2010, 13:11
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(bseyur @ May 30 2010, 15:04)  Прошил. Собственно сброс состоялся, видел, как DTR дернулся. Дык самое итересное глянуть реакцию на G. Что будет без -reset. Цитата(bseyur @ May 30 2010, 15:14)  Знаю, сейчас пытаюсь создать эту ситуацию. Ну если ситуация ушла, и G тоже заработало, то все относительно нормально, только надо помнить, что по G Вы до, например, старта приложения своим загрузчиком, или до установки стеков, например, операционной системой, работаете в стеке оставшемся от первичного загрузчика. Так-то сейчас хочу просто глянуть на исполнение команды и, пожалуй, надо закрыть это дело для Cortex.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 30 2010, 13:42
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 8-01-07
Из: Томск
Пользователь №: 24 208

|
Цитата(zltigo @ May 30 2010, 20:27)  Ну если ситуация ушла, и G тоже заработало, то все относительно нормально, только надо помнить, что по G Вы до, например, старта приложения своим загрузчиком, или до установки стеков, например, операционной системой, работаете в стеке оставшемся от первичного загрузчика. Так-то сейчас хочу просто глянуть на исполнение команды и, пожалуй, надо закрыть это дело для Cortex. Да, G заработало, отсоединил аппаратный reset для надежности. Но для меня (при наличии сброса через DTR) это было не главное. Все же основная проблема в большом времени прошивки, непонятными паузами после каждой транзакции...  Попробую завтра замутить тест на ARM7 - сообщу результат.
debug.txt ( 65.67 килобайт )
Кол-во скачиваний: 244
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|