Даний цикл статей присвячений швидкому старту роботи з мікроконтролерами STM32 на базі ядра ARM Cortex-M3. У кількох наступних частинах я збираюся розповісти про те, як:
- зробити дешеву отладочную хустці для вивчення STM32;
- встановити крос-платформенне програмне забезпечення, необхідне для складання виконуваних файлів;
- встановити і налаштувати зручну крос-платформену середу розробки на базі eclipse, для швидкої розробки, побудови та налагодження написаних програм;
- створити простий проект у встановленій середовищі розробки;
- налаштувати зв'язку eclipse + OpenOCD + Versaloon для налагодження програм.
- так як багато читачів використовують свою отладочную плату STM32VLDiscovery, я також розповім про її налаштування в настроюється середовищі
Моя мета дати інструкції для різних ОС. Windows (я буду все проробляти на Windows 7 32bit), Linux Ubuntu (перевірю на 13.04 32bit), а також на ArchLinux 64bit. на якій я зараз працюю. Різні дистрибутиви / архітектури / версії можуть зажадати індивідуальних дій.
Завантажити проект Eagle, а також pdf з платою тут. Схема являє собою дешевий контролер STM32F100C4T6B (16 Kb flash, 4 Kb SRAM - представник лінійки Low-Density Value Line). П іни виведені на штирі, прикручений високочастотний кварцом на 8 MHz, пара кнопок і світлодіодів:
Підписи до пінам:
Лутітся досить просто:
Для прошивки плати використовуємо інтерфейс SWD (що до чого підключати дивіться тут), живити хустці будемо відразу від Versaloon:
BOOT0 потрібно посадити на GND (джампер на фотке).
З інструментарію для збирання та налагодження програм під ARM є два популярних рішення (не рахуючи вбудованих в IDE на зразок IAR EWARM):
Обидва пакети повністю крос-платформні (працюють під win і linux), і обидва підтримує стандарт бінарного інтерфейсу вбудованих додатків (Embedded Application Binary Interface, EABI), що означає універсальність генерується об'єктного коду. Прийнято вважати, що комерційне рішення Sourcery CodeBench дає більш оптимальний об'єктний код, крім того CodeBench супроводжується відмінним пакетом документації, з цього я вибрав саме його.
Обидва пакети містять програми arm-none-eabi- *. Слово none в імені означає "no operating-system", тобто компілятор генерує код під чисте залізо (bare metal). У той же час, існує наприклад arm-linux-gnueaby- *, який генерує код під ОС Linux, розгорнутої на ARM-процесорі.
Лінуховий інсталятор написаний на java, але чому то йому заважає що в Ubunt-e / bin / sh посилається на dash а не на bash (О_о), ну що ж, поміняємо на bash. Для цього виконуємо те, що просять ці раки з mentor =):
І в інтерактивному вікні відповімо <нет>. В Arch швидше за все у вас sh вже і так cсилается на bash (А якщо немає то ви знаєте як це поміняти =)) Тепер з апускаем інсталятор:
У кватирках windows інсталятор запускається за допомогою даблклік.
Виконуємо інсталятор: Next, "I Accept the terms of ...", Next, Next, "Typycal", Next, Next, "Modify PATH for current user", Next, Next, Install. Чекаємо. "No, I.", Next, Next, Done. Що б шлях до інструментів в PATH додався, Ubuntu довелося перезавантажити. В Arch навіть після перезавантаження PATH не змінився, довелося редагувати / etc / profile:
До речі, якщо у вас windows, то раджу зайти в змінні середовища і перевірити чи правильно інсталятор додав шлях. Особисто у мене шлях був такий:
не знаю що його надоумило вписати туди папку bin_cache, якої взагалі не існує. Коротше довелося поправити на:
Після завершення установки запустіть консоль (або командного рядка) і перевірте наявність певної компілятор в PATH, запустивши:
Повинна відобразиться версія.
Також можна створити ярлик для зручного запуску на файлeclipse (для linux) або на eclipse.exe (для win). Наприклад, в xfce значок буде виглядати так:
Далі eclipse потрібно запустити і поставити на нього пару плагінів:
Для тих, хто не знає як встановлюється плагіни, коротко поясню: заходимо в Help-> Install New Software. У рядку Work with вписуємо репозитарій плагіна. Шукаємо потрібний компонент і ставимо галочку на ньому. Натискаємо Next, Next, приймаємо угоду (Accept), Next, OK.
У eclipse існує багато різних опцій, що дозволяють гнучко налаштувати роботу під себе. Наприклад раджу включити автозбереження всіх файлів перед складанням. Для потрібно зайти в Window -> Preferences і вибрати General -> Workspace, і потім поставити галочку "Save automatically build"
Якщо ви плануєте використовувати готову отладочную плату STM32VLDiscovery з вбудованим програматором ST-LINKv1, то в цій частині ви можете прочитати, як встановити програмне забезпечення для даного програматора.
Я раджу скористатися набором утиліт texane / stlink. У цей набір входить утиліта st-flash, для звичайної прошивки hex-файлів в контролер, а також debug-server st-util.
texane / stlink в linux
Спочатку потрібно встановити інструментарій для збірки ПЗ:
Потім можна завантажувати вихідні, і збирати:
На цьому установка закінчена.