У меня есть плата обнаружения STM32, и я хотел бы иметь возможность программировать ее на Linux.
Какой самый простой способ сделать это?
У меня есть плата обнаружения STM32, и я хотел бы иметь возможность программировать ее на Linux.
Какой самый простой способ сделать это?
Ответы:
Простой способ программирования и отладки платы обнаружения STM32 (или любого STM32, использующего программатор ST-Link) - использовать проект stlink https://github.com/texane/stlink (однако OpenOCD тоже кажется популярным)
Платы ST Nucleo также выглядят как USB-устройства флэш-памяти, поэтому даже не нужно stlink
- просто скопируйте файл на них.
Есть несколько хороших страниц о том, как разрабатывать для обнаружения STM32 в Linux, таких как http://gpio.kaltpost.de/?page_id=131 и http://torrentula.to.funpic.de/2012/03/22/ Настройка-stm32f4-arm-development-toolchain / и http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
Однако я нашел последнюю ссылку наиболее полезной. В нем показано, как создавать STM32-проекты ST «как есть». Единственное изменение заключается в добавлении его Makefile, который кажется идеальным решением.
В последних версиях Ubuntu вы можете установить пакет, содержащий компилятор ARM:
sudo apt-get install gcc-arm-none-eabi
Обратите внимание, что процессоры все немного разные. Для всех STM32F0..4 потребуются разные флаги компилятора, и скрипт компоновщика будет немного отличаться для каждого (хотя на самом деле только из-за изменения размеров RAM и Flash).
Изменить: если вы хотите начать очень быстро, вы также можете посмотреть на http://www.espruino.com . Это интерпретатор JavaScript, который работает на самом STM32, поэтому, когда вы установили 'stlink', чтобы вы могли перейти на плату, вы можете просто загрузить изображение с этого сайта, включить его, а затем подключиться к терминальному приложению и начать программирование.
Если вам больше нравятся текстовые редакторы и Makefiles вместо использования GUI, вы можете сделать:
Получите ваш проект на доску. Либо использовать
Код в текстовом редакторе и использовать инструменты командной строки. Этот урок будет содержать много советов.
наслаждаться
Eclipse , GCC и OpenOCD - это один набор инструментов. Это рекомендованный EMCU-IT и есть дополнительная информация здесь . На этих страницах также рекомендуется использовать RTOS, например FreeRTOS.org , но это зависит от вас.
А для помощи по компиляции примеров STM32 в Linux перейдите сюда . Эта ссылка указывает на make-файл для примеров, которые могут быть вызваны с
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
Несколько небольших исправлений кода также задокументированы, но большая часть проекта должна работать с
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
У меня был успех с https://github.com/JorgeAparicio/bareCortexM (см. Также связанные сообщения в блоге). Меня беспокоит, что я могу просто пошагово пройти по коду или просмотреть память устройства вместо того, чтобы вставлять отладочные операторы в мой код или гадать, что происходит внутри чипа.
Проект bareCortexM - это шаблон Eclipse для разработки с использованием серии Cortex M, особенно STM32, на C ++ без ОС. Он настроен на использование openocd, gcc и имеет скрипты для прошивки и отладки для нескольких целей, включая некоторые платы обнаружения. Следуя инструкциям и установив рекомендуемые плагины Eclipse, я смог использовать свой STM32VLDISCOVERY в Ubuntu.
В соответствии с рекомендациями, я объединил шаблон eclipse с библиотекой шаблонов C ++ libstm32pp того же автора для оборудования STM32. libstm32pp обеспечивает удивительно полную замену CMSIS и часто критикуется водителей STM32 с моделью программирования , что позволяет говорить такие вещи , как PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
и PINB::setLow()
или PINB::setHigh()
все в основном составленный инлайн из - за шаблонов C ++. Настройка очень хорошая.
Может быть, кому-то это пригодится: моя короткая статья и простой проект . Все в Linux и без лишних вещей, таких как затмение.
Библиотеки были взяты с сайта ST, makefile - из одного из примеров GPL в интернете.
Вот небольшой, но инновационный шаблонный проект для быстрого запуска с использованием платы STM32F0 Discovery под Linux или любой другой ОС:
https://github.com/dobromyslov/stm32f0-chibios-template
Обратите внимание, что в проекте используется ChibiOS - бесплатная операционная система реального времени с открытым исходным кодом, так что это не совсем пустая реализация с нуля.
Рассмотрим Platio . Если вам совсем не по душе командная строка, то вы обнаружите, что platformio значительно облегчает процесс разработки. pio init
может быть использован для настройки проекта. pio run
использует цепочку инструментов для компиляции. pio run --target upload
отправляет код на устройство. Platformio по мере необходимости заботится о загрузке компонентов, библиотек и т. Д.