Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ARM-USB-OCD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
segment
Собсно есть ARM-USB-OCD, есть макетка от Олимекса с LPC2129. Пытаюсь дебажить, точнее залить во флеш программу, но не выходит crying.gif
Запускаю openOCD с обычным cfg, он видит JTAG, все ок тут.
Открываю свойства проекта в IAR, выбираю GDB Server, localhost, ставлю чтобы Verify after download, и нажимаю залить и отладить. В итоге ошибка что не верный выходной файл проекта - мол
Код
Fri Mar 27 23:21:40 2009: ELF/DWARF Error: Unknown


В пункте Build converter выбираю Intel Extended и генерю hex, но он видимо идет не как основной и дебагер его не цепляет.. помогите, я наверно чтото не так делаю
KRS
в IAR flash loader берет файлы simple code (IAR ровский формат). Надо что бы он генерировался

причем этот файл должен быть в дополнение к обычному для IAR (elf для 5ки),
но насколько я помню в 5ке по умолчанию настроено все что бы симплкод генерировался...
segment
просто по умолчанию всегда генерируется файл( его имя указывается в Linker ) к примеру project.out и рядом с ним разные форматы которые я могу настроить в Build Conventer.. собсно а как подменить то файлы? чего мне делать то теперь?

Или все это решается покупкой J-Link ?
KRS
Цитата(Сега @ Mar 28 2009, 00:15) *
просто по умолчанию всегда генерируется файл( его имя указывается в Linker ) к примеру project.out и рядом с ним разные форматы которые я могу настроить в Build Conventer..

правильно!
у IAR flashloader - это специальная прога, которая используя фичи IARовского отладчика с компа счтитывает файл и шьет его. Т.е. запрос и парсирование файла осуществляется в АРМ.
Файл нужен в формате IAR Simple code.
Создайте чистый проект, в настройках по умолчанию для дебаг будут нужные параметры, что бы получить simple code.
я отлаживал разными отладчиками, все ок!
segment
Как я отлаживаю сейчас, после пары половых актов с отладчиком и заменой паленого кварца изза которого я мучался в недоумении в течение нескольких дней:
- загружаю программу через lpc21isp.exe
- запускаю openOCD
- Run without downloading

Всетаки не смог понять почему не хочет грузить через жтаг.. сделал новый чистый проект - посмотрел настройки - сделал такие же, не катит..
Конечно по сути я быстро гружу софтину, но вот каждый раз запускать заного openOCD бесит.. хелп
KRS
А какая ошибка то?
FlashLoader загружается? он уже ошибку выдает?
Вы лог дебагера вставте сюда.
segment
Лог openOCD
Код
Open On-Chip Debugger (2008-06-19 19:00) svn: 717
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk
Info:    options.c:50 configuration_output_handler(): jtag_speed: 3, 3
Info:    options.c:50 configuration_output_handler(): Open On-Chip Debugger (2008-06-19 19:00) svn: 717
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f (Manufacturer: 0x787, Part: 0xf1f0, Version: 0x4)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f (Manufacturer: 0x787, Part: 0xf1f0, Version: 0x4)

А лог дебагера
Код
Sun Mar 29 00:28:09 2009: ELF/DWARF Error: Unknown
Sun Mar 29 00:28:09 2009: 0 bytes verified (0.00 Kbytes/sec)
Sun Mar 29 00:28:09 2009: Failed to load debugee: G:\Work\IAR\Debug\Exe\project.out


Если ставлю галку " Use flash loader(s) " в настройках Debuger->Download, а потом жму Download and run то IAR чото виснет, отрубаю ARM-USB-OCD - после этого IAR очухивается ну и само собой говорит что error просто, типа отрубили..
KRS
А что лог дебагера всего 3 строчки?
( у меня сейчас IAR нет под рукой, могу только в понедельник посмотреть живьем)
но насколько я помню там побольше всего должно быть.
Flash Loader туда много чего пишет, что он стартанул например....

А у вас с настройках flashloader включен? конфигурация для LPC2129
там еще в параметрах flashloader нужно частоту кварца указатьв khz
(но если 12 Mhz кварц и так работает)
segment
Я настройки частоты вообще не увидел.. вот то что есть

а, вот, если поставить так как на скриншоте то лог
Код
Sun Mar 29 00:40:02 2009: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\LPC21xx22xx.mac
Sun Mar 29 00:40:03 2009: 2048 bytes downloaded and verified (3.21 Kbytes/sec)
Sun Mar 29 00:40:03 2009: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\FlashLayout2RAM16K.out
Sun Mar 29 00:40:03 2009: Target reset
KRS
Цитата(Сега @ Mar 29 2009, 01:42) *
Я настройки частоты вообще не увидел.. вот то что есть

А частота это параметр бутлоадера
там где ,,,,default - это парамтеры бутлоадера, насколько я помню там надо дописать, что то типа clock_freq=xxx ( но точно не помню), обычно и так шьет.
Судя по логу у вас IAR все прошивает!! А дебагер не стартует потому что ему файл не нравится уже основной!

Хотя нет, опять лог дебагера не полный, там должно быть больше строк!
Код
Sun Mar 29 00:40:03 2009: 2048 bytes downloaded and verified (3.21 Kbytes/sec)

вот эта строчка странная к чему она относится не понятно,
вот если бы она после загрузки flashloaderа стояла...
segment
То что 2048 прошивает - это фигня какаято, у меня размер всегда меняется и в тот момент был 9кб, так что неизвестно что и куда он заливает...


У кого есть ARM-USB-OCD под рукой и IAR - прошу, проверьте или скажите по пунктам как прошивать( во флеш и в рам ), очень нужно, я уже все перепробовал!
KRS
IAR еще сам загрузчик ( FLashLoader) грузит, он может и занимает 2 кб, но почему запись в логе раньше.
Хотя судя по следующей строке, что загружен FlashLoader (Loaded) это относится к нему.
В общем судя пол логу сам FlashLoader у вас загружен и проверен!
Но почему на этом лог обрывается непонятно.

Вам надо посмотреть макро файл флеш лоадера
C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\LPC21xx22xx.mac

мне, когда я шил через wiggler приходилось это файл менять ( я отключал запись в регистры, отключение pll и т.д. но шить можно было только после hardware reset, но это и так делалось).
segment
Вот он.. что с ним не так?
Код
execUserFlashInit()
{  
    // Disable the PLL.
    __writeMemory32(0x00000000, 0xE01FC080, "Memory"); // PLLCON = 0
    // Qualify the PLL change.
    __writeMemory32(0x000000AA, 0xE01FC08C, "Memory"); // PLLFEED = 0xAA
    __writeMemory32(0x00000055, 0xE01FC08C, "Memory"); // PLLFEED = 0x55

    // Make sure that the flash memory system is correctly setup.
    __writeMemory32(0x00000000, 0xE01FC000, "Memory"); // MAMCR = 0
    __writeMemory32(0x00000007, 0xE01FC004, "Memory"); // MAMTIM = 7
    __writeMemory32(0x00000002, 0xE01FC000, "Memory"); // MAMCR = 2

    // If the MAM values was wrong, a dummy read is necessary to get the flash memory in sync.
    __writeMemory32(0x00000001, 0xE01FC040, "Memory"); // MEMMAP = 1
    __readMemory32(0x00000000, "Memory");
}
KRS
А вы закомментируйте там все!
А лучше поставьте вывод сообщений в начале и в конце
типа
Код
    __message "-----START flash init";


    __message "-----END flash init";

тогда они должны в логе появится!
segment
Так, вставил, вот лог. Ошибка выдается такаяже - что неверный формат project.out (см в скриншоте выше)
Код
Sun Mar 29 20:44:51 2009: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\LPC21xx22xx.mac
Sun Mar 29 20:44:51 2009: START flash init
Sun Mar 29 20:44:51 2009: END flash init
Sun Mar 29 20:44:51 2009: 2048 bytes downloaded and verified (3.21 Kbytes/sec)
Sun Mar 29 20:44:51 2009: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\FlashLayout2RAM16K.out
Sun Mar 29 20:44:51 2009: Target reset
segment
Так, в каком то варианте у меня проскользнуло что все нормально загружено, но слетел при этом openocd. Тогда я понял что у меня старая версия ocd и скачал 0.1.0 версию, теперь понадежнее и не зависает.. пытаюсь добиться той конфигурации при которой у меня однажды залилась прога

С новым openocd лог выглядит более логичным. Теперь ясно что трабла не в генерируемом коде а в том что принять пакет не может, что это может быть?
Код
Sun Mar 29 22:09:25 2009: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\LPC21xx22xx.mac
Sun Mar 29 22:09:25 2009: START flash init
Sun Mar 29 22:09:25 2009: END flash init
Sun Mar 29 22:09:34 2009: Fatal error: Failed to receive packet  

Session aborted!
Sun Mar 29 22:09:35 2009: Failed to load flash loader: C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\config\flashloader\NXP\FlashLayout2RAM16K.out


Спустя некоторое время вот такой лог я узрел
Код
Sun Mar 29 22:26:26 2009: 9264 bytes with download suppressed
Sun Mar 29 22:26:26 2009: Loaded debugee: G:\Work\IAR\Debug\Exe\project.out
Sun Mar 29 22:26:35 2009: Fatal error: Failed to receive packet  

Session aborted!
Sun Mar 29 22:27:08 2009: Target reset
Sun Mar 29 22:27:08 2009: Failed to load debugee: G:\Work\IAR\Debug\Exe\project.out
KRS
Вообще у IAR кривая поддержка GDB server! Там ошибки причем их не исправить у них в идеологии ошибки они не правильно понимают GDB протокол, например. И у них похоже прием и отправка данных в разных нитях происходит, что для полудуплексного протокола криво ( обычная ситуация когда они не могут понять на какую посылку пришел ответ). Я об этом говорю потому что я пытался прицепить GDB сервер к IAR. И модифицированный OpenOCD тоже, когда подключал кортекс по SWD. Например по идеологии GDB на приянтый пакет с начала идет подтверждение, а потом, если надо ответ с данными, так вот в IAR если будет задержка между подтверждением и пакетом крыша съезжает! (например они в разных пакетах TCP прийдут).
Да и вообще на сайте IAR написано что GDB сервер только для отладочной платы .... ( не помню точно какой) в общем работает криво!
segment
Ясно. Ну я тогда продолжу работать вполне терпимым вариантом - lpc21isp -> openOCD -> Debug without downloading
KRS
А OpenOCD вроде можно настроить что бы он Flash шил. ( но это лучше в GNU/OpenSource спросить или посомтреть)

А вообще IAR отлично работает через RDI и с родным для нее JLINK ( но полноценного описания протокола нет, то что есть сильно обрезано).
Предлагаю просто собраться и написать аналог H-JTAG ( к сожалению он не open source ) для устройств на FTDI, а то принтерные порты умирают...


Я проверил у себя, для LPC2129 - примерно та же фигня! В общем не работает IAR нормально с GDB server. Но если пару дней поплясать с бубном, подправить OpenOcd... то... Но лучше RDI написать!
segment
Ясно, пасиб что проверил! Да, написать можно, но наверно не раньше лета..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.