Debug

MailHog

MailHog Ловит все письма отправленные ему и позволяет просматривать их во встроенном веб-интерфейсе.

LPC-Link

Как многим заинтересованным лицам известно, хитрые платы LPCXpresso снабжены мега-дебаггером LPC-Link. Выпуск среды разработки code red в нативном виде под Linux позволил нам, сирым и убогим, познать радость пользования этим самым LPC-link’ом. В общих и целых чертах мы имеем следующее: Микроконтроллер задействованный в LPC-link начисто лишен какой бы то ни было долговременной памяти. Фирмварь в него надо грузить каждый раз после перетыкания и перед тем как начать шить target контроллер нам надо проверить, что там вообще на usb шине творится, в плане девайсов.

Отладка с помощью GDB

Для отладки микроконтроллерных устройств обычно применяются программно-аппаратные решения. К примеру для МК с ядром ARM это может быть связка J-Link((аппаратный отладчик по интерфейсу JTAG)) - OpenOCD((программная прослойка, между отладчиком и GDB)) - собственно сам ARM-GDB.

Segger J-Link

Распространённое аппаратное средство для отладки МК с ядром ARM по интерфейсу JTAG и SWD((В openocd так и нет нормальной поддержки этого интерфейса)). Оригинальный J-Link стоит достаточно дорого - более трёхсот долларов, что достаточно ощутимо для радиолюбительского кошелька. Но китайские товарищи расстарались, и наклепали вполне приличных клонов за небольшие деньги. Возможно, это мне попался такой экземпляр китайского клона, но в условиях производство с обилием силовых агрегатов вокруг, отладчик подвисал каждые несколько минут.

Изучение разделяемых библиотек (so)

Для того что бы выяснить какие функции экспортирует закрытая разделяемая библиотека (.so) и на основе этого написать свой C/C++ хидер (.h) воспользуемся двумя командами из пакета binutils. Поскольку формат ELF файлов не отличается для разных архитектур, то можно даже не устанавливать кросс утилиты.

OpenOCD

OpenOCD Приведённая ниже информация скорее всего безнадёжно устарела. Поддерживаемое железо ST-Link Для сборки свежего OpenOCD Устанавливаем необходимые для сборки пакеты: sudo apt-get install build-essential libftdi-dev sudo apt-get build-dep openocd Забираем свежий OpenOCD из репозитория: git clone git://git.code.sf.net/p/openocd/code openocd-code cd openocd-code Собираем: ./bootstrap ./configure --enable-ftdi --enable-jlink --enable-stlink --enable-ulink --enable-vsllink --enable-usb-blaster-2 --enable-buspirate --enable-rlink --enable-maintainer-mode --prefix=/opt/openocd make -j5 sudo make install J-Link Создаём файл конфигурации jlink_swd.cfg: interface jlink transport select swd Теперь можно запустить дебаггер: