Перейти к содержанию
    

Отладка ARM920

Гость impatt

Есть контроллер Samsung S3C2440A, под него надо выбрать JTAG-адаптер и среду отладки/разработки.

Если кто что-то пишет под АРМ, глянте, плз, в своих отладчиках, какие микрухи поддерживаются через JTAG и какие JTAG адаптеры подойдут для этого.

 

Заранее благодарю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть контроллер Samsung S3C2440A, под него надо выбрать JTAG-адаптер и среду отладки/разработки.

Если кто что-то пишет под АРМ, глянте, плз, в своих отладчиках, какие микрухи поддерживаются через JTAG и какие JTAG адаптеры подойдут для этого.

 

Заранее благодарю.

 

Если только для заливки - подойдет любой J-link и его клоны через утилиту J-Flash. Список поддреживаемых микросхем памяти можно посмотреть, скачав диструбитив с Segger.com. В принципе, параметры мк/сх можно забить ручками, но на старой версии драйвера у меня не получилось.

 

Насчет отладки - тут еще до конца не разобрался. Надо определиться - для загрузчика или ядра?!

Для загрузчика подойдет всё тот же MT-Link, а вот для ядра...

В случае Platform Builder'а: у винЦЕ есть встроенные средства отладки через сообщения по "ядро-независимому транспортному уровню" KITL. Если есть "поднятый" драйвер езенета - то это очень легко. Смысл аппаратной отладки вижу, если ведется отладка BSP, для этого нужен драйвер eXDI и соответствующая железка, нашел для самсунга только от Mentor Graphics, но ее пока нет в продаже и стоить, думаю, будет не мало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
Если только для заливки - подойдет любой J-link и его клоны через утилиту J-Flash. Список поддреживаемых микросхем памяти можно посмотреть, скачав диструбитив с Segger.com.

Спасибо, гляну. А то вообще не знал, куда рыть. Правда, заливку в NAND-флэш можно сделать иначе, погляжу ещё.

 

В принципе, параметры мк/сх можно забить ручками, но на старой версии драйвера у меня не получилось.

Хммммм.... Это какие параметры ? Насколько я понимаю, для работы с JTAG нужны чип-специфичные команды JTAG, которые вендоры тщательно прячут от всех ?

 

Насчет отладки - тут еще до конца не разобрался. Надо определиться - для загрузчика или ядра?!

А есть разница ? Впрочем, ответ: для загрузчика. Для ядра буду пользовать ядерный отладчик (расчитываю на это) через UART.

 

Для загрузчика подойдет всё тот же MT-Link, а вот для ядра...

Погляжу. Уже хоть какие-то названия появились :)

 

В случае Platform Builder'а: у винЦЕ есть встроенные средства отладки через сообщения по "ядро-независимому транспортному уровню" KITL.

Что такое Platform Builder ?

winCE в девайсе не будет :) ПлатформБилдер - это связано с виндовсом ?

 

Если есть "поднятый" драйвер езенета - то это очень легко.

Езернета нет вообще.

 

Смысл аппаратной отладки вижу, если ведется отладка BSP, для этого нужен драйвер eXDI и соответствующая железка, нашел для самсунга только от Mentor Graphics, но ее пока нет в продаже и стоить, думаю, будет не мало.

Пожалуйста, подробнее: что такое BSP, eXDI ?

 

Спасибо за ответы, буду глядеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, гляну. А то вообще не знал, куда рыть. Правда, заливку в NAND-флэш можно сделать иначе, погляжу ещё.

 

J-Link (Segger) = MT-Link (DASM) = <еще что-то>

 

Через J-Flash можно прошить только NOR-память.

 

Хммммм.... Это какие параметры ? Насколько я понимаю, для работы с JTAG нужны чип-специфичные команды JTAG, которые вендоры тщательно прячут от всех ?

 

Параметры внешней микросхемы памяти - объем, деление на сектора и проч.

 

Что такое Platform Builder ?

winCE в девайсе не будет :) ПлатформБилдер - это связано с виндовсом ?

Езернета нет вообще.

Пожалуйста, подробнее: что такое BSP, eXDI ?

 

Это всё относилось к WinCE.

 

 

В какой среде разрабатывать планируете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
В какой среде разрабатывать планируете?

В планах:

1. Как-то пободаться с загрузчиком. Он содержится в первых 4-х килобайтах NAND и аппаратно загружается в SRAM контроллера, где выполняется. Эту штуку надо отлаживать, ибо она отвечает за инициализацию всего остального. Хреново, что с АРМ-ами я не дружу почти. Первый опыт... Компилятор и отладчик - предпочёл бы gcc\gdb, но из-за ожидаемых трудностей с отладкой загрузки пойдёт любое, что поможет справиться.

2. Линукс. Тут непаханое поле. Но в нём есть ядерный отладчик (отдельный проект), который начинает работать со стандартным gdb через ком-порт. Ядерный отладчик - для ядра, надеюсь, там не придётся рыть много и глубоко. Ну, а в пользовательском пространстве - просто gdb через тот-же ком-порт.

 

Такие планы. Схема нарисована, надо пробовать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В планах:

1. Как-то пободаться с загрузчиком. Он содержится в первых 4-х килобайтах NAND и аппаратно загружается в SRAM контроллера, где выполняется. Эту штуку надо отлаживать, ибо она отвечает за инициализацию всего остального. Хреново, что с АРМ-ами я не дружу почти. Первый опыт... Компилятор и отладчик - предпочёл бы gcc\gdb, но из-за ожидаемых трудностей с отладкой загрузки пойдёт любое, что поможет справиться.

 

Раз уж компилятор и отладчик - GNU, то может быть стоит и jtag опенсорсный взять? :)

 

Wiggler - вполне подойдёт для первых опытов, собирается на коленке.

OpenOCD для него - имеет поддержку NAND. (в доках про это не написано, но в исходниках присутствует.)

Да и нужна ли поддержка nand в отладчике, если нормальные бутлоадеры могут её писать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
Раз уж компилятор и отладчик - GNU, то может быть стоит и jtag опенсорсный взять? :)

Было бы неплохо. Особенно, если бы он работал под линуксом.

 

Wiggler - вполне подойдёт для первых опытов, собирается на коленке.

Собирать дольше, чем купить :) Пара тыщ для этого - фигня. Начальство даёт карт-бланш тыщ на 25 (на словах пока :)

А ты уверен, что wiggler будет стыковаться с GDB ? И как ?

Чего я опасаюсь: почти все нужные JTAG команды каждый вендор выдумывает в одиночку и тщательно скрывает их спецификации. Соответственно, как поставить точку останова (например) через JTAG - неизвестно. Всё остальное точно так-же в тумане. Потому приходится у третьих лиц покупать JTAG-устройства для отладки.

Но глядя на J-Link и его заявленного сородича MT-Link, складывается впечатление, что ARM-ы через JTAG управляются как-то очень похоже, раз они заявляют поддержку всех ARM-ов поголовно.

Это так, реально ?

 

OpenOCD для него - имеет поддержку NAND. (в доках про это не написано, но в исходниках присутствует.)

NAND я перешью и так, если что: вывел все ножки на PLD16 и буду втыкать в программатор. Это, конечно, неудобно... Но зато железно сработает :)

 

Да и нужна ли поддержка nand в отладчике, если нормальные бутлоадеры могут её писать?

Э-э... В NAND и будет бутлоадер. В самом микроконтроллере никаких флэшей нет, есть только аппаратные механизм чтения первых 4 кило из NAND в имеющуюся для этих целей SRAM (тоже, ессно, 4 кило) и запуск кода в SRAM.

Это и надо поотлаживать, старт с нулевого адреса в SRAM - по шагам :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Было бы неплохо. Особенно, если бы он работал под линуксом.

Собирать дольше, чем купить :) Пара тыщ для этого - фигня. Начальство даёт карт-бланш тыщ на 25 (на словах пока :)

А ты уверен, что wiggler будет стыковаться с GDB ? И как ?

 

Виглер и покупной Олимексовский LPT, и самодел на ls244 работает и в линуксе и в виндовс одинаково.

USB на ftd2xx я не пробовал, но у людей - работает: _http://openhardware.net/Embedded_ARM/OpenOCD_JTAG/

 

OpenOCD - это и есть GDB-сервер, оно открывает TCP-порт, куда GDB и коннектится.

 

Для J-Link (MT-Link) - тоже есть GDB-сервер, логика работы мало отличается от OpenOCD.

 

Как например, и _http://www.ronetix.at/peedi.html - работает похоже, только там GDB-сервер встроен в железку.

 

Чего я опасаюсь: почти все нужные JTAG команды каждый вендор выдумывает в одиночку и тщательно скрывает их спецификации. Соответственно, как поставить точку останова (например) через JTAG - неизвестно. Всё остальное точно так-же в тумане.

Потому приходится у третьих лиц покупать JTAG-устройства для отладки.

Но глядя на J-Link и его заявленного сородича MT-Link, складывается впечатление, что ARM-ы через JTAG управляются как-то очень похоже, раз они заявляют поддержку всех ARM-ов поголовно.

Это так, реально ?

 

Как раз так и есть. Можно запросто отлаживать арм9 имея поддержку в отладчике только лишь для arm7tdmi.

И, через GDB - всё достаточно прозрачно и стандартизировано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
Виглер и покупной Олимексовский LPT, и самодел на ls244 работает и в линуксе и в виндовс одинаково.

USB на ftd2xx я не пробовал, но у людей - работает: _http://openhardware.net/Embedded_ARM/OpenOCD_JTAG/

Гляну, спасибо.

 

OpenOCD - это и есть GDB-сервер, оно открывает TCP-порт, куда GDB и коннектится.

Я про него слышал давно, но тогда он мало чего умел.

Ещё раз погляжу, что он может.

 

Для J-Link (MT-Link) - тоже есть GDB-сервер, логика работы мало отличается от OpenOCD.

Для MT-Link подойдёт GDB-сервер от J-Link ? Я на страничке segger видел этот GDB-сервер.. Виндовый. Про него речь ?

 

И, через GDB - всё достаточно прозрачно и стандартизировано.

Это мне и надо :)

 

Кстати, тут коллеги крутят в руках mIDAS-Link, для Analog Devices ADuc с АРМ-ами внутри. Очень внешне похож на J-Link и MT-Link.

Не знаешь, это не то-же самое ? Ну, типа, клон очередной ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гляну, спасибо.

Я про него слышал давно, но тогда он мало чего умел.

Ещё раз погляжу, что он может.

А что он должен такого особенного мочь? :)

Процессор сбрасывает, точки останова выставляет, память и регистры пишет/читает...

 

Для MT-Link подойдёт GDB-сервер от J-Link ? Я на страничке segger видел этот GDB-сервер.. Виндовый. Про него речь ?

Именно про него. Этот сервер работал с МТ-Линк.

 

Кстати, тут коллеги крутят в руках mIDAS-Link, для Analog Devices ADuc с АРМ-ами внутри. Очень внешне похож на J-Link и MT-Link.

Не знаешь, это не то-же самое ? Ну, типа, клон очередной ?

 

Не видел.

Похоже, AD просто свою лейбу лепят на сеггеровский J-Link:

http://www.edn.com/index.asp?layout=articl...cleid=CA6301710 "Plugging in the Midas-Link emulator reveals that it too is a Segger device - Windows recognised the device, having previously installed the Atmel-badged version, and automatically assigned the same J-Link driver."

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость impatt
А что он должен такого особенного мочь? :)

Железо мочь :)

 

Похоже, AD просто свою лейбу лепят на сеггеровский J-Link:

http://www.edn.com/index.asp?layout=articl...cleid=CA6301710 "Plugging in the Midas-Link emulator reveals that it too is a Segger device - Windows recognised the device, having previously installed the Atmel-badged version, and automatically assigned the same J-Link driver."

Хорошо, спасибо за мысли и ссылки - поразбираюсь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...