У мене є плата виявлення 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 всім потрібні різні прапори компілятора, а сценарій посилання буде дещо різним для кожного (хоча тільки насправді через змінені розміри оперативної пам’яті та Flash).
Редагувати: якщо ви хочете почати дійсно швидко, ви також можете подивитися на http://www.espruino.com . Це інтерпретатор JavaScript, який працює на самому STM32, тож після того, як ви встановите "stlink", щоб ви могли спалахнути на дошці, ви можете просто завантажити зображення з цього сайту, пропустити його, а потім підключитися до термінальної програми та почати програмування.
Якщо ви більше використовуєте текстові редактори та Makefiles замість того, щоб використовувати графічний інтерфейс, ви можете зробити:
Поставте свій проект до ради. Або використовувати
Кодуйте в текстовому редакторі та використовуйте інструменти командного рядка. Цей підручник дасть безліч порад.
Насолоджуйтесь
Eclipse , GCC і OpenOCD - це одна ланцюжок інструментів. Це рекомендований EMCU-IT і є додаткова інформація тут . Ці сторінки також рекомендують використовувати RTOS на зразок FreeRTOS.org , але це залежить від вас.
Щоб отримати допомогу у складанні прикладів STM32 в Linux, зверніться сюди . Це посилання вказує на makefile для прикладів, до яких можна викликати
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.
Як рекомендовано, я поєднав шаблон затемнення з тією ж авторською бібліотекою шаблонів libstm32pp C ++ для обладнання STM32. libstm32pp забезпечує напрочуд повну заміну CMSIS та часто критикуваних драйверів STM32 на програмувальну модель, яка дозволяє вам говорити такі речі, як PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
і, PINB::setLow()
або PINB::setHigh()
всі здебільшого компільовані за допомогою шаблонів C ++. Установка дуже приємна.
Можливо, комусь це буде корисно: моя коротка стаття (на російській мові) та простий проект . Все в Linux і без зайвих речей, таких як затемнення.
Бібліотеки взяті з веб-сайту ST, makefile - з одного з багатьох прикладів GPL в Інтернеті.
Ось невеликий, але інноваційний шаблонний проект для швидкого початку використання плати Discovery STM32F0 під Linux або будь-якої іншої ОС:
https://github.com/dobromyslov/stm32f0-chibios-template
Зауважте, що проект використовує ChibiOS - безкоштовну та відкриту операційну систему в режимі реального часу, тому це не зовсім реальна реалізація з нуля.
Розглянемо платформу . Якщо вам зовсім не комфортно з командним рядком, ви побачите, що платформа значно полегшує процес розробки. pio init
може бути використаний для створення проекту. pio run
використовує ланцюжок інструментів для компіляції. pio run --target upload
відправляє код на пристрій. Platformio піклується про завантаження компонентів ланцюжка інструментів, бібліотек тощо за потребою.