STM32: OpenOCD semihosting

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

  • В Makefile меняем параметры линкера: вместо -specs=nano.specs пишем -specs=rdimon.specs, вместо -lnosys пишем -lrdimon. Мне также пришлось добавить -Wl,—no-wchar-size-warning, т. к. размерность wchar где-то не совпала.
  • В коде до main объявляем функцию extern void initialise_monitor_handles(void) и вызываем её в начале main. Важный момент — при отсутствии принимающей стороны на хосте этот вызов приведёт к HardFault, т. е. система сможет работать только под отладчиком.
  • Запускаем OpenOCD с командой arm semihosting enable и в его выводе увидим сообщения от printf. Ещё один важный момент — вывод будет в отладочных сообщениях, по telnet его не видно.
  • Для младших контроллеров может стать проблемой увеличение размера прошивки. В STM32F030 пришлось уменьшить размер Min_Heap_Size в LD-скрипте.

Видоизменённый углерод

Прослушал аудиокнигу, про сериал знаю, но пока не смотрел. По книге могу сказать следующее: интересно, картинка будущего мне очень нравится. Могущественные мафы, биотехнологии, перегрузка сознания между телами и виртуальными мирами. На фоне всего этого великолепия разворачивается очень странное расследование странной смерти странным детективом. В этой книге нет философских откровений, но сюжет здорово закручен, есть немало ситуаций, которые заставляют задуматься. Так что смело рекомендую любителям фантастики.

Также могу рекомендовать Схизматрицу Брюса Стерлинга. По-моему, миры этих книг довольно похожи — люди (немногие) получили возможность растянуть жизнь на столетия, вживлять себе разную электронику, но не слишком изменились — интриги, убийства и прочие не слишком приятные способы достижения цели.