Вместо введения
Микроконтроллер STM32F746 является одним из представителей старшего семейства STM32F7. Помимо стандартной для таких моделей периферии (Ethernet, USB OTG, USART, SPI приемопередатчики), она содержит ядро графического ускорителя, что позволяет разрабатывать с ее помощью UI на манер того, что используется в современных мобильных устройствах - с переходными эффектами, многоточечными жестами и т.п.
Сама отладочная плата STM32F746-GDISCO имеет достаточную программную поддержку со стороны производителя. На рынке существует ряд встраиваемых операционных систем: FreeRTOS, mbed-os; тулкитов для быстрого создания UI: microEJ, STWin.
Подготовка инструментария
В качестве IDE, как и во всех предыдущих случаях, рассмотрим связку GNU ARM Embedded Toolchain+Eclipse+OpenOCD под операционной системой Ubuntu Linux 14.04.
Под другими операционными системами эта связка может быть настроена аналогичным образом, Под Windows и OS X существуют преднастроенные готовые сборки вроде Atollic TrueStudio или CooCox IDE. Подобные сборки позволяют начать быстрее, но скрывают подробности под капотом, что не всегда удобно.
Исторически сложилось так, что в комплекте с дистрибутивом ОС поставляются старые версии нужных нам пакетов, поэтому придется их собрать из исходников. При этом важно не "завалить" систему установкой бинарников без участия пакетного менеджера. Стратегия предлагается следующая - все что можно быстро превратить в пакеты при помощи checkinstall - превращаем, остальное устанавливаем в /opt по отдельным каталогам для каждого компонента.
Для этого сначала установим зависимости
$ sudo apt-get install build-essential libusb-1.0-0-dev git-core checkinstall libtool autoconf p7zip-full
Сборка и установка OpenOCD
Скачаем последнюю версию openocd (в которой появилась поддержка stm32f7xx) и соберем пакет:
$ git clone https://github.com/ntfreak/openocd.git \
&& cd openocd \
&& ./bootstrap \
&& ./configure --enable-stlink \
&& sudo checkinstall
В процессе сборки checkinstall задаст ряд вопросов - в большинстве случаев на них можно ответить просто Enter'ом, кроме выбора версии, которая обычно выглядит как "0.10.0-dev", что не соответствует стандартам пакетов debian, нужно указать, например "0.10.0-1dev" или "0.10.0-1stlink". После успешной сборки пакета можно установить его в системе штатным образом.
$ sudo dpkg -i openocd_0.10.0-1stlink-1_i386.deb
OpenOCD при работе с st-link требует привилегий суперпользователя. Удобнее всего предоставить их ему при помощи SUID-бита:
$ sudo chmod +s /usr/local/bin/openocd
Установка GNU ARM Embedded Toolchain
Этот тулчейн необходимо скачать с сайта arm.com и распаковать в /opt:
$ sudo tar xf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 -C /opt
Установка и настройка Eclipse
Для корректной работы Eclipse лучше использовать java8 от Oracle:
$ sudo add-apt-repository ppa:webupd8team/java \
&& sudo apt-get update \
&& sudo apt-get install oracle-java8-set-default
Установка самого Eclipse:
$ sudo apt-get install eclipse-cdt
По окончании установки среда доступна по команде eclipse , но требует дополнительной настройки на работу с отладчиком GDB. Для этого нужно подключить репозиторий Juno CDT (меню Help -> Install New Software...) :