Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Чт мар 09, 2023 03:24:37

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

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

Для разработок ПО микроконтроллеров планирую использовать IDE "SEGGER Embedded Studio"

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

Чт мар 09, 2023 05:57:52

GDB-сервер это программа, которая умеет взаимодействовать с конкретным микроконтроллером через конкретный интерфейс и адаптер отладки. Она создаёт универсальный программный интерфейс, через который программа-отладчик и/или IDE получает доступ к отладке. Это позволяет не писать в каждой IDE и/или программе отладчике код для всего возможного зоопарка контролеров и аппаратных отладчиков. Интерфейс между gdb-сервером и программой-отладчиком устроен так, что они могут быть запущены как на одном компьютере, так и на разных. OpenOCD это одна из программ gdb-серверов. Всё это задумано, чтобы облегчить разработчикам средств отладки охватить весь зоопарк контроллеров и интерфейсов отладки.

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

Чт мар 09, 2023 09:02:00

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

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

Чт мар 09, 2023 09:50:44

В общем случае да. Но продвинутые IDE могу сокращать путь и работать напрямую с драйвером st-link или j-link без GDB-сервера. Так быстрее и стабильнее отладка. А могут и не сокращать, как настроишь...

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

Пт мар 10, 2023 15:21:02

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

Добавлено after 2 minutes 31 second:
OpenOCD это одна из программ gdb-серверов.

gdb-серверов это обобщеннре понятие?
то есть Получается OpenOCD это и есть gdb-сервер?
Ответить