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

GDB + ARM + JTAG

Гость impatt

Доброе утро всем.

Есть ARM9** на плате. Хочу поотлаживать линукс на нём.

ARM оснащён JTAG интерфейсом.

Вопрос: если я заведу GDB, то будет ли он корректно отлаживать ядро линукса ? Там ведь всякие режимы адресации: физические, логические, виртуальные.. Как сам JTAG интерфейс манипулирует типом адресов ?

 

В общем, прокомментируйте, плз, кто может.

 

Спасибо.

 

ЗЫ: если это уже есть на форуме, прошу дать линк. Поиск всё равно хламной, искать даже не пробовал в этот раз (хватило прошлых разов).

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


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

Доброе утро всем.

Есть ARM9** на плате. Хочу поотлаживать линукс на нём.

ARM оснащён JTAG интерфейсом.

Вопрос: если я заведу GDB, то будет ли он корректно отлаживать ядро линукса ? Там ведь всякие режимы адресации: физические, логические, виртуальные.. Как сам JTAG интерфейс манипулирует типом адресов ?

 

В общем, прокомментируйте, плз, кто может.

 

Спасибо.

 

ЗЫ: если это уже есть на форуме, прошу дать линк. Поиск всё равно хламной, искать даже не пробовал в этот раз (хватило прошлых разов).

JTAG отлаживает "аппаратно". Т.е. абсолютно все, что происходит в процессоре. Это врядли то что нужно Вам.

GDB может использовать последовательный интерфейс и TCP/IP для отладки.

На таргет платформе запускаете gdbserver. На PC gdb. И отлаживаете спокойно используя тот-же eclipse, например.

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


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

Гость impatt
JTAG отлаживает "аппаратно". Т.е. абсолютно все, что происходит в процессоре.

Не понял.

Адресация при постановке точки останова через JTAG в какой модели адресации ? Физической ?

 

Это врядли то что нужно Вам.

Ну, если работать не будет, как надо - то и впрямь, не нужно :)

 

GDB может использовать последовательный интерфейс и TCP/IP для отладки.

Известно.

 

На таргет платформе запускаете gdbserver. На PC gdb. И отлаживаете спокойно используя тот-же eclipse, например.

Обратите внимание, уважаемый: мне не отладка приложение под линуксом на АРМ-е нужна, а самого линукса.

Отсюда следует:

1. Так как встроенного в linux ядерного отладчика под ARM нет, надо пытаться использовать аппаратный отладчик на микросхеме (JTAG)

2. Пока не работает ОС на целевой платформе (тот-же линукс), то запускать gdbserver на ней не получится, равно как заюзать COM\TCP

 

Вопрос по адресации через JTAG остался актуальным :)

Напоминаю: адресация есть физическая и ещё как минимум виртуальная.

Как JTAG работает с ними ?

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


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

Не понял.

Адресация при постановке точки останова через JTAG в какой модели адресации ? Физической ?

Ну, если работать не будет, как надо - то и впрямь, не нужно :)

Известно.

Обратите внимание, уважаемый: мне не отладка приложение под линуксом на АРМ-е нужна, а самого линукса.

Отсюда следует:

1. Так как встроенного в linux ядерного отладчика под ARM нет, надо пытаться использовать аппаратный отладчик на микросхеме (JTAG)

2. Пока не работает ОС на целевой платформе (тот-же линукс), то запускать gdbserver на ней не получится, равно как заюзать COM\TCP

 

Вопрос по адресации через JTAG остался актуальным :)

Напоминаю: адресация есть физическая и ещё как минимум виртуальная.

Как JTAG работает с ними ?

Ээээ... Я не понял Вашего первого поста.

 

Виртуальный (если MMU уже включен). Физический адрес нужно узнавать через MMU. После включения MMU процессор оперирует только виртуальными, с точки зрения команд и содержимого регистров.

 

Могу лиш порекомендовать исследовать архив ARM Linux Mailing List. Помню, там пробегало такое.

http://www.arm.linux.org.uk/mailinglists/lists.php

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


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

Гость impatt
Виртуальный (если MMU уже включен). Физический адрес нужно узнавать через MMU. После включения MMU процессор оперирует только виртуальными, с точки зрения команд и содержимого регистров.

Могу лиш порекомендовать исследовать архив ARM Linux Mailing List. Помню, там пробегало такое.

http://www.arm.linux.org.uk/mailinglists/lists.php

Спасибо.

Буду глядеть.

 

 

Виртуальный (если MMU уже включен). После включения MMU процессор оперирует только виртуальными, с точки зрения команд и содержимого регистров.

Ещё интересно: если только виртуальные адреса, а у меня, положим, пара процессов с одинаковыми диапазонами виртуальных адресов. Как JTAG выбирает, в каком процесе поставить брекпойнт на определённый виртуальный аддрес, если адреса совпадают ?

Просто любопытно.

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


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

Насколько продвинулось сообщество в этом вопросе за 5 лет ?

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


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

Насколько продвинулось сообщество в этом вопросе за 5 лет ?

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

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


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

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

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

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

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

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

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

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

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

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