Название: Плагин, расширяющий отладку BareMetal устройств. Отправлено: kuzulis от Декабрь 23, 2014, 16:41 Всем доброго времени.
Набросал тут (https://bugreports.qt-project.org/browse/QTCREATORBUG-13686) плагин (там есть и скриншоты и более подробное описание) с помощью которого можно создавать/конфигурировать/менять отдельные конфигурации аппаратных GDB серверов для отладки On-Chip систем (MCU). Кто работал с Keil/IAR/CoCox - тот в теме. В настоящее время BareMetal поддерживает только GDB сервера (GDB протокол). Но сейчас неудобно задавать хост/порт для удаленного GDB сервера. Т.е. имею ввиду что если вдруг хочу использовать другой GDB сервер, то надо редактировать эти самые хост/порт. Кроме того, сейчас BareMetal не может автоматом стартануть GDB сервер перед отладкой - приходится ручками запускать сервак отдельно, а потом уже коннектиться к нему и отлаживаться. Конечно, я слукавил: есть небольшой хак чтобы автоматом запускать OpenOCD сервер в Pipe режиме, но это только для OpenOCD (т.к. из известных мне серверов только он нормально поддерживает Pipes). Но в целом, для кастомных серверов невозможно автоматом их стартовать. Поэтому мой патч дает такую возможность, кроме того, он юзер-френдли. Порядок действий такой (на примере OpenOCD): 0. Устанавливаем OpenOCD. 1. Создаем новую OpenOCD конфигурацию: задаем путь к екзешке, нужным конфигам, задаем дополнительные аргументы (если надо). 2. Создаем новое BareMetal устройство и в комбо-боксе выбираем любую конфигурацию GDB сервера (например какую-нить из OpenOCD или прочих других). 3. Создаем BareMetal Kit: указываем компилятор, отладчик, выбираем BareMetal устройство (в общем, как обычно). 4. Создаем или открываем любой QBS проект для голой железки (именно QBS - т.к. это проще всего и предпочтительнее). Далее, компилим и отлаживаем его как хотим. Можем создать еще другие конфигурации GDB серверов и их выбирать вместо OpenOCD.. В общем, если кому интересно - то плюсуйте в баг-трекере.. Если у кого есть другие идеи - тоже пишите.. В любом случае, даже если патч не примут - то может быть, кому-то он пригодится и упростит жизнь. :) Название: Re: Плагин, расширяющий отладку BareMetal устройств. Отправлено: b-s-a от Декабрь 25, 2014, 12:26 А ты случаем не можешь сделать плагин (или изменить имеющийся), чтобы можно было подключаться к gdbserver не только по сети, но и по последовательному порту?
Название: Re: Плагин, расширяющий отладку BareMetal устройств. Отправлено: kuzulis от Декабрь 25, 2014, 14:40 Если честно, то я Х.З. Я даже не знал что такое возможно. Кинь ссылок "на почитать" плз. :)
UPD: Ах, кажется достаточно на хосте делать: Цитировать (gdb) target remote /dev/ttyb вместо:Цитировать (gdb) target remote the-target:2345 Если так - то это должно быть просто. Достаточно менять только поле ввода где вместо хост/порт задавать имя последовательного порта. Но мне не на чем проверить serial режим.. Также я не знаю, будет ли оно работать на Windows (имею ввиду, задавать сериал порт тогда просто как COMxx?). И еще, я не знаю, поддерживает ли GDB-engine из креатора последовательный протокол (хотя, по-идее должно, т.к. протокол один и для TCP/IP и для Serial). Название: Re: Плагин, расширяющий отладку BareMetal устройств. Отправлено: kuzulis от Январь 06, 2015, 21:07 Ура, закоммитили. Выйдет в QtCreator 3.4.0.
Название: Re: Плагин, расширяющий отладку BareMetal устройств. Отправлено: b-s-a от Январь 20, 2015, 11:13 Для работы с последовательным портом еще надо задавать скорость (ключ -b baud).
Цитировать И еще, я не знаю, поддерживает ли GDB-engine из креатора последовательный протокол (хотя, по-идее должно, т.к. протокол один и для TCP/IP и для Serial). Ему должно быть пофиг. Потому что используется собственно gdb.Название: Re: Плагин, расширяющий отладку BareMetal устройств. Отправлено: kuzulis от Январь 20, 2015, 12:24 Проблема в том, что мне проверить не на чем. Ты и сам можешь это "замутить" если оно тебе так надо. ;)
|