Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Wiggler RDI Keil IAR путаница!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
zuy
Вообщем из железа есть продукты OLIMEX плата на LPC2148 и их клон wiggler ARM-JTAG.
Все заработало в Crossworks, но в нем я не нашел процессора LPC2148, пришлось использовать LPC2138.

Теперь хотелось бы запустить KEIL и IAR. Я так понял wiggler с ними должен работать посредством RDI драйвера. Первый из них это H-JTAG. Он подсоеденился. В KEIL я указал использовать для отладки RDI, но работать KEIL отказался, хотя в трее иконка H-JTAG показывала активность.
Далее есть вариант через OCD commander. Я его установил, подключение сделал. Но он как бы не включает в себя RDI драйвер, по форуму понял что нужен какой-то еще плагин для KEIL и IAR, но названия не нашел.

Вообщем хотелось бы узнать полные связки софта, которые используются, чтобы подружить Wiggler с Keil и IAR. На форуме часто встречается просто названия типа ставьте RDI потом плагин и все. А чей драйвер конкретно ставить, какой плагин, и где их найти нигде не указано sad.gif
Если кто-нибудь опишет конфигурацию уже работаюшего у себя набора софта, то отдельно скажу спасибо smile.gif

Так же есть вопрос по поводу того, как мне прошить ARM через wiggler если у меня уже есть HEX или ELF файл? Например для PIC я грузил HEX файл в оболочку программатора и он уже прошивал процессор. А с ARM я пока вижу только возможность залить прошивку из среды разработки.
А на каком этапе решается результат для RAM или ROM будет? Т.е. я правильно понял, что после сборки проекта в выходных файлах HEX или ELF уже имеется вся раскладка по каким адресам какие данные должны лежать? судя по map файлу это так.

А какие принципиальные отличия Wiggler JTAG от разных USB-JTAG? пока я нашел только то, что Wiggler не позволяет ставить брекпоинты во FLASH. А почему так? Неужели комп через LPT не может так же ожесточенно ножками дрыгать, как USB вариант через внутренний проц? А если я приобрету MT-LINK или JetLINK проблемы с подключением к KEIL и IAR отпадут и я получу полнофункциональный отладчик?

Вот вроде и все. Вопросы может и детские, но из-за наличия разных сред, драйверов и программаторов возникает путаница, к решению которой даже не знаешь откуда подойти. FAQ что в этой ветке в начале читал, но мало в нем нашел о бодключении.
iit
Цитата(zuy @ Apr 5 2006, 10:57) *
Первый из них это H-JTAG. Он подсоеденился. В KEIL я указал использовать для отладки RDI, но работать KEIL отказался, хотя в трее иконка H-JTAG показывала активность.


А H-JTAG процессор определяет? Т.е. связь с процессором есть? В кейле путь до dll укзан? Когда пользовался виглером и H-JTAG-ом у меня все более менее работало.

Цитата(zuy @ Apr 5 2006, 10:57) *
Так же есть вопрос по поводу того, как мне прошить ARM через wiggler если у меня уже есть HEX или ELF файл?

Через виглер флешку не прошьете, либо ищите что-то помимо H-JTAG, либо через филипковскую утилитку и ком-порт.

Цитата(zuy @ Apr 5 2006, 10:57) *
я правильно понял, что после сборки проекта в выходных файлах HEX или ELF уже имеется вся раскладка по каким адресам какие данные должны лежать? судя по map файлу это так.

Правильно. А куда пихать в РАМ или РОМ вам решать.

Цитата(zuy @ Apr 5 2006, 10:57) *
А какие принципиальные отличия Wiggler JTAG от разных USB-JTAG? пока я нашел только то, что Wiggler не позволяет ставить брекпоинты во FLASH. А почему так? Неужели комп через LPT не может так же ожесточенно ножками дрыгать, как USB вариант через внутренний проц?

Дело не в гусях, драйвер надо писать под виглер, который бы все это позволял.

Цитата(zuy @ Apr 5 2006, 10:57) *
А если я приобрету MT-LINK или JetLINK проблемы с подключением к KEIL и IAR отпадут и я получу полнофункциональный отладчик?

И сможете и прошивать и точки останова во флешь писать и ...
zuy
Цитата(iit @ Apr 5 2006, 11:45) *
А H-JTAG процессор определяет? Т.е. связь с процессором есть? В кейле путь до dll укзан? Когда пользовался виглером и H-JTAG-ом у меня все более менее работало.


Да, H-JTAG определяет какой процессор. В Keil я указываю использовать RDI, и выбираю H-JTAG.dll.
галочки Cache code и Cache memory не ставлю. Стоит галка Load Application at startup. Run to Main не сотит, т.к. с ней сразу ошибка о невозможности поставить брекпоинт, я так понял потому-что wiggler не позволяет в ROM брекпоинты ставить. Но пусть он не ставит там брекпоинты, но он же должен записать мою прогу во флеш и запустить ее. А получается так, что Keil показывает, что код исполняется, иконка H-JTAG дрыгается, но девайс ничего не делает, и после ресета в нем запускается старая программа.

Я так думаю, что через wiggler в средах Keil и IAR я могу получить использую RDI драйвер следующую функциональность:
1. Загрузка программы во флеш и RAM.
2. Пошаговый проход+брекпоинты только в RAM (это основное отличие от USB вариантов JTAG)
3. Весь сопутствующий отладке сервис типа просмотр памяти, регистров и т.д.

Еще хотелось бы узнать про драйвера RDI для Wiggler кроме H-JTAG, есть ли что-нить подходящее для спаривание wiggler с Keil или IAR ?
Edmundo
Несколько тезисов:
1. IAR и Wiggler скрещиваются без RDI, напрямую. Но должен быть установлен драйвер для Wiggler (устанавливается, при инсталляции, например, OCD Commander'а от Macraigor).
2. Насчет прошить флеш с помощью IAR -- я так понял, что это невозможно. Можно прошивать Flash Programmer'ом, который качается с www.macraigor.com и лечится кейгеном, который можно найти на многих тематических (читай хакерских) сайтах.
3. Насчет загрузки программы в RAM, бряков, пошаговой отладки, просмотра памяти/регистров верно.

Keil скрещивать с Wiggler никогда не пробовал, поэтому не знаю. ИМХО не стоит этим заниматься, проще взять ULink уж тогда. Я специально выбрал IAR EWARM только потому, что он поддерживает Wiggler напрямую, а Wiggler можно просто собрать самостоятельно.
zuy
Цитата(Edmundo @ Apr 5 2006, 15:47) *
Несколько тезисов:
1. IAR и Wiggler скрещиваются без RDI, напрямую. Но должен быть установлен драйвер для Wiggler (устанавливается, при инсталляции, например, OCD Commander'а от Macraigor).


Это имеется ввиду в IAR в настройке проекта тип отладчика выбрать Macgraigor, а потом в одноименном пункте OCD interface device выбирать wiggler? Драйвер который с OCD comander ставится IAR сам найдет?
Т.к. обьем RAM много меньше FLASH прокатит ли такая схема, что код не требующий отладки компилится для FLASH, а там где отладка нужна ф-ции помечаются, как требующие расположения в RAM и там отлаживаются. А потом релиз весь компилится для FLASH и туда помещается для уже окончательной работы изделия?

А т.к. crossworks без проблем отлаживает и шьет FLASH можно ли уже итоговый ELF или HEX файл из IAR с его помошью залить во флешку?
Edmundo
Цитата(zuy @ Apr 5 2006, 17:07) *
Это имеется ввиду в IAR в настройке проекта тип отладчика выбрать Macgraigor, а потом в одноименном пункте OCD interface device выбирать wiggler? Драйвер который с OCD comander ставится IAR сам найдет?

Совершенно верно.

Цитата(zuy @ Apr 5 2006, 17:07) *
Т.к. обьем RAM много меньше FLASH прокатит ли такая схема, что код не требующий отладки компилится для FLASH, а там где отладка нужна ф-ции помечаются, как требующие расположения в RAM и там отлаживаются. А потом релиз весь компилится для FLASH и туда помещается для уже окончательной работы изделия?

Так я не пробовал. Я для отладки делаю конфигурацию, по которой все линкуется в RAM; и "релизную" конфигурацию, где все во flash. Комбинированно не пробовал, но думаю, что должно прокатить.

Цитата(zuy @ Apr 5 2006, 17:07) *
А т.к. crossworks без проблем отлаживает и шьет FLASH можно ли уже итоговый ELF или HEX файл из IAR с его помошью залить во флешку?

Crossworks не юзал -- врать не буду smile.gif Но если он кушает ELF и HEX и шьет flash -- то проблем быть не должно. Только в случае использования Crossworks наверное целесообразно его использовать и для отладки, благо с Wiggler он дружит (может, даже лучше, чем EWARM).
iit
Цитата(zuy @ Apr 5 2006, 14:45) *
А получается так, что Keil показывает, что код исполняется, иконка H-JTAG дрыгается, но девайс ничего не делает, и после ресета в нем запускается старая программа.


Залейте программу через филиповскую утилиту (LPC Flash Loader), а опциях Keil'а уберите прошивку программы через RDI (ну не заливает виглер код во флеш через RDI) и все будет в ажуре.
abcdefg
Цитата(zuy @ Apr 5 2006, 10:57) *
Теперь хотелось бы запустить KEIL и IAR. Я так понял wiggler с ними должен работать посредством RDI драйвера. Первый из них это H-JTAG. Он подсоеденился. В KEIL я указал использовать для отладки RDI, но работать KEIL отказался, хотя в трее иконка H-JTAG показывала активность.


Скачай новую версию H-JTAG (02.04.06), у меня отладка заработала, правда постоянно вываливается сообщение "data abort", но на процесс отладки это не влияет.
zuy
Цитата(iit @ Apr 6 2006, 07:50) *
Цитата(zuy @ Apr 5 2006, 14:45) *


А получается так, что Keil показывает, что код исполняется, иконка H-JTAG дрыгается, но девайс ничего не делает, и после ресета в нем запускается старая программа.


Залейте программу через филиповскую утилиту (LPC Flash Loader), а опциях Keil'а уберите прошивку программы через RDI (ну не заливает виглер код во флеш через RDI) и все будет в ажуре.


Да вот с philips утилитой есть проблема. В списке поддерживаемых процов нет 2148, но судя по даташитам, по памяти он аналогичен 2138, так что можно его пробовать.
А что хуже, так то, что я судя по всему слажал, и в процессе экспериментов стер флеш проца. Так что я понимаю, что загрузчика там уже может и не быть sad.gif Проверить точно не могу т.к. нету кабеля.
А если его я действительно стер, есть вариант вернуть назад?

Так а если wiggler не заливает код во флеш, то единственный способ писать проги больше чем обьем ОЗУ, это отлаживать их в симуляторе и потом шить филипсовской утилитой? Т.е. никакой внутрисхемной отладки больших прог? Жаль, придется все таки USB-JTAG покупать.
zuy
А вот например в IAR для того чтобы переключать компиляцию для RAM и ROM, я подставляю для нужного профиля соответствующий файл XCL, где расписано куда какие данные линкеру ложить.
Это правильно? Есть ли какой-нибудь способ такого переключения не указывая явно XCL файл?
А то получается, что для каждого процессора я должен сам писать его ручками, если в IAR можно выбирать для какого процессора компилить, то почему с ним по умолчанию и не выбирается раскладка памяти для нужного процессора?

Я пробовал в настройках линкера не ставить галочку overwrite default, там где выбираешь XCL файл, так при компиляции, если я хочу использовать startup файл, который идет с примерами IAR для LPC, получаю ошибку линкера:
Fatal Error[e72]: Segment ABT_STACK must be defined in a segment definition option (-Z, -b or -P)

Вообшем-то понятно что она говорит, и параметры определяюшие ABT_STACK прописаны в XCL из тех же примеров.

Но как тогда правильно начать проект в IAR? Мастер создает проект без startup. Я должен сам написать его? Если беру из примеров, то и раскладку памяти приходится оттуда же брать.
Что-то мне кажется, я работу мастеров руками делаю, или в IAR по-другому никак?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.