Отладка Embox на STM32

40016b4660824f82b24531aab0e5f56f.png
Добрый день! Ввиду того, что люди спрашивают как загрузить Embox на отладочные платы на базе STM32, мы решили выпустить этот рецепт. Его можно рассматривать как дополнение к статье.

Описание будет для отладочной платы STM32F7-Discovery, но в целом оно верно и для других серий STM32 (по ходу будут приведены уточнения для STM32F4).

Первым делом нужно склонировать Embox

git clone https://github.com/embox/embox.git embox


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

Далее, вам понадобится кросс-компилятор для arm-а и OpenOCD для прошивки и отладки.

Переходим в директорию c Embox.

Сборка:

  • Загружаем конфиг — make confload-arm/stm32f7cube (или make confload-arm/stm32f4cube для F4)
  • Собираем командой make (или make -j4 и т.д.)


Запуск OpenOCD (лучше в отдельной консоли):

  • sudo openocd -f OPENOCD_PATH/tcl/board/stm32f7discovery.cfg (соответственно stm32f4discovery.cfg для F4)


Подключение по minicom (лучше в отдельной консоли):

  • sudo minicom -D /dev/ttyACM0


Да, для F7, это совсем просто, так как у нее com порт, usb host и отладчик сидят на одном USB. Поэтому воткнули mini-usb, и готово. Для F4 используется специальный провод для COM порта и расширение для отладочной платы. Но принцип остается таким же.

Загрузка образа (лучше в отдельной консоли):

  • arm-none-eabi-gdb build/base/bin/embox


В консоли отладчика выполняем команды:

  • target extended-remote :3333
  • monitor reset halt
  • load


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

После переключения в minicom, мы должны увидеть, что Embox загрузился, и появилась командная строка:

e580ib_czqfeix5ptgrzasfdty0.png

Ну вот и все, готово!

Отладка из Eclipse
Немного добавлю про отладку из популярной IDE Eclipse.
Все вышеперечисленное остается в силе, только вместо консольного gdb будем использовать графический Eclipse.

Нам потребуется установить плагин, который позволяет отлаживаться на аппаратуре, предполагается, что eclipse-cdt уже установлен.

Процесс установки плагина стандарный. В меню выбираем Help → Install New Software

И там добавляем репозиторий, вот список:

  • Eclipse 4.3 (Kepler)
  • Eclipse 4.2 (Juno)
  • Eclipse 3.7 (Indigo)
  • Eclipse 3.6 (Helios)
  • Eclipse 3.5 (Galileo)


Далее выбираем пункт GDB Optional Features → GDB Hardware Debugging

njhmsqzwuo0gkmqvwows4g0ey_4.png

Далее создаем конфигурацию для отладки Run → Debug Configurations. Выбираем образ, который будем отлаживать.

4jywps5pttpxalgnh1c1ucbnmsc.png

Параметры отладчика.

2ewb4tpqv4wbhujcd2ohndenn8w.png

Собственно все, теперь можно запустить и ходить по точкам останова.

cr6nggrw4ybtzetnsoquhd_4ahk.png

Частично приведенная информация есть у нас на странице вики.

На этом все, удачной отладки.

© Habrahabr.ru