OpenOCD и GDB, помогите разобраться

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

OpenOCD и GDB, помогите разобраться

Сообщение maksimdag0 »

Всех приветствую! Надеюсь в ту тему я пишу. Гуру, нужна ваша помощь в знании OpenOCD и GDB. Я хочу разобраться, что это такое и с чем их едят. После долгих, очень долгих, прогулок по интернету , я что -то понял, но я не могу сложить уверенное представление о том что такое OpenOCD и GBD.
1) Я понял, что GDB это просто отладчик(в виде отдельной программы) управление которым осуществляется через командную строку. А что же такое GDBserver? гугл говорит - это программа, позволяющая отлаживать написанную нами программу отладчиком GDB, который установлен на другом компьютере(то есть через интернет). А зачем это нужно, если можно просто установить GDB отладчик и все?
2) Что такое OpenOCD? Где-то пишут что это отладчик, где что это сервер, в итоге то что это? Его устанавливают на компьютер, как отдельную программу, а потом в IDE его добавляют, правильно ли я понял? Если да, то тогда он нужен для тех IDE, в которых нет встроенного компилятора получается, или в которых нет возможности программирования, например через ST-LINK?

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

Для разработок ПО микроконтроллеров планирую использовать IDE "SEGGER Embedded Studio"
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: OpenOCD и GDB, помогите разобраться

Сообщение VladislavS »

GDB-сервер это программа, которая умеет взаимодействовать с конкретным микроконтроллером через конкретный интерфейс и адаптер отладки. Она создаёт универсальный программный интерфейс, через который программа-отладчик и/или IDE получает доступ к отладке. Это позволяет не писать в каждой IDE и/или программе отладчике код для всего возможного зоопарка контролеров и аппаратных отладчиков. Интерфейс между gdb-сервером и программой-отладчиком устроен так, что они могут быть запущены как на одном компьютере, так и на разных. OpenOCD это одна из программ gdb-серверов. Всё это задумано, чтобы облегчить разработчикам средств отладки охватить весь зоопарк контроллеров и интерфейсов отладки.
Реклама
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

Re: OpenOCD и GDB, помогите разобраться

Сообщение maksimdag0 »

Перекурил, что вы сказали, но до уверенного представления не доходит, тугодумлю. Можете пожалуйста на примере обьянить, например:
есть IDE keil и есть микроконтроллер STM32F401. Я хочу отладить свою программу, которую я написал в keil. В самом keil я запускаю отладку и отлаживаю код (шагаю по строчкам), то есть получается в keil встроен отладчик, а так же встроен GDBserver, и этот отладчик, через GDBserver, передаёт данные в stlink, а stlink в МК. Вот таким образом происходит отладка, правильно ли я понял?
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: OpenOCD и GDB, помогите разобраться

Сообщение VladislavS »

В общем случае да. Но продвинутые IDE могу сокращать путь и работать напрямую с драйвером st-link или j-link без GDB-сервера. Так быстрее и стабильнее отладка. А могут и не сокращать, как настроишь...
Реклама
Эиком - электронные компоненты и радиодетали
maksimdag0
Прорезались зубы
Сообщения: 225
Зарегистрирован: Чт апр 08, 2021 09:46:48

Re: OpenOCD и GDB, помогите разобраться

Сообщение maksimdag0 »

Спасибо, Владислав.

Добавлено after 2 minutes 31 second:
[uquote="VladislavS",url="/forum/viewtopic.php?p=4383085#p4383085"]OpenOCD это одна из программ gdb-серверов.[/uquote]
gdb-серверов это обобщеннре понятие?
то есть Получается OpenOCD это и есть gdb-сервер?
Реклама
Ответить

Вернуться в «ARM»