Установка ST-LINK V2 в MAC OS X для разработки под STM32

в 9:38, , рубрики: diy или сделай сам, eclipse, mac os x, stm32, настройка, Программинг микроконтроллеров, метки: , , , , ,

Недавно наткнулся на замечательную статью, о том, как собрать все инструменты для разработки в среде linux под контроллеры stm32 и я решил вновь вернуться к задаче, которую уже пытался решить, а именно заставить работать все тоже самое по Mac OS X (В моем случае версии 10.9.1 Mavericks), так как работать в CooCox (а он основан именно на Eclipse) в виртуальной машине уже изрядно надоело. В данной статье я опишу пошаговый алгоритм как все тоже самое заставить работать в OS X.

Установка ST LINK V2 в MAC OS X для разработки под STM32

Итак, вы хотите разрабатывать на STM32 в среде Mac OS X, у вас есть ST-LINK V2 отдельно или на макетной плате, тогда добро пожаловать под кат.

Если брать в целом, то за исключением Microchip с их кросс-платформенной MPLAB X для разработки под Pic (по крайней мере мне известна только она), особо никто из производителей не заботится о разработчиках на платформах отличных от Windows, что создает определенный порог вхождения и отпугивает достаточно много разработчиков, если вы, конечно, не пользователь Arduino Development Tools.

Почему же нельзя просто взять и использовать весь алгоритм который описал futurelink в OS X и быть счастливым? Потому что apple заботится о нас, и посему они выпилили из систему все компоненты, которые требуются для установки и сборки пакетов из репозиториев. Отсутствует и сам менеджер пакетов, основная парадигма направлена на то, что все нужно ставить через AppStore или на крайний случай скачивать программу на свой страх и риск из «не установленных источников» =). Однако не все так плохо как может показаться, все эти фатальные недостатки можно успешно устранить, а заодно и познакомиться с мощным инструментом который нам в этом поможет — менеджером пакетов.

Подготовка

Обычно, в этот момент все пишут что нужно установить Xcode из AppStore, а затем установить Command Line Tools (а именно они нам и нужны) и такой способ тоже может быть использован, однако если вы не собираетесь ничего разрабатывать в Xcode (а может вам жалко место на ssd), то можно поставить Command Line Tools отдельно. Все команды которые будут выделены далее нужно исполнять в терминале.

Способ 1:

Просто набрать в терминале:

make

В Maverick сразу вываливается окно вида:
Установка ST LINK V2 в MAC OS X для разработки под STM32
Нажимает Установить и получаем все необходимые утилиты без самого Xcode.

Способ 2:

Скачать и установить образы в ручную:
Образ для Mountain Lion
Образ для Mavericks
После всех этих операций в системе будут установлены такие утилиты как make, gcc, git и другие.

Установка менеджера пакетов

К счастью, мировое open source сообщество не оставило пользователей Mac в беде и выкатило несколько решений на этот счет.
На текущий момент есть два достойных проекта, которые можно использовать для этих целей Macports и Brew. Если у вас стоит какой либо из этих менеджеров, то ставить больше ничего не надо, однако если вы задумываетесь что вам поставить, то лично я рекомендую именно Brew.
Установка Brew проста и незатейлива, копируем строчку в терминал и следуем инструкциям

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Все! Теперь у вас есть возможность устанавливать пакеты из репозиториев!
Например можно поставить себе Midnight Commander:

brew install mc

Или wget (рекомендую поставить, он понадобится позже):

brew install wget

Если у вас уже был установлен Brew, то рекомендую вам обновить его командой:

brew update

А затем запустить:

brew doctor

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

Установка ST-LINK V2

Теперь мы можем установить все необходимые нам пакеты, благо сделать это уже очень просто:

brew install autoconf automake pkg-config libusb libusb-compat

После установки этих пакетов у нас есть все необходимое для сборки проекта от Texane.
Я буду руководстоваться тем, что мы создадим папку в своей домашней директории и назовем ее Embed Tools, но вы можете делать в любой удобной папке.

cd ~
mkdir "Embed Tools" && cd "Embed Tools"
git clone https://github.com/texane/stlink.git && cd stlink/
./autogen.sh
./configure
make

Подключаем нашу плату и запускаем комманду:

./st-util

В случае если все хорошо, то должен быть возвращен ответ вида:

2014-02-08T19:46:24 INFO src/stlink-usb.c: -- exit_dfu_mode
2014-02-08T19:46:24 INFO src/stlink-common.c: Loading device parameters....
2014-02-08T19:46:24 INFO src/stlink-common.c: Device connected is: F4 device, id 0x10016413
2014-02-08T19:46:24 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes
Chip ID is 00000413, Core ID is  2ba01477.
Target voltage is 2876 mV.
Listening at *:4242...

Для сохранение совместимости и исходный тутором, я буду делать теже самые ссылки, но опять же, вы можете делать в удобные для вас места, можно даже не делать никакие ссылки, а в самом эклипсе ссылаться непосредственно на пути установки утилит.
С большой долей вероятности, в вашей системе каталога opt не будет, а значит его нужно создать, а заодно и каталог bin в нем:

cd /
sudo mkdir opt && cd opt
sudo mkdir bin

Теперь создаем ссылку на st-util в каталог /opt/bin/:

sudo ln -s ~/Embed Tools/stlink/st-util /opt/bin/st-util

Установка ARM Toolchain

Качаем GCC ARM TOOLCHAIN 4.8, распаковываем и кладем все в нашу папку Embed Tools. Я качал последний мажорный релиз на сегодняшний день, а именно 4.8-2013-q4-major и моя папка, соответственно, называется gcc-arm-none-eabi-4_8-2013q4. Вы можете скачать несколько разных релизов и вообще разные тулчейны и все их скопировать в нашу Embed Tools, а затем менять ссылку на них в каталоге opt, как это предлагает делать futurelink (очень удобно кстати, не придется менять каждый раз в проектах ссылку в случае замены тулчейна).
Создаем ссылку на тулчейн в каталог /opt/arm-toolchain:

sudo ln -s ~/Embed Tools/gcc-arm-none-eabi-4_8-2013q4/bin /opt/arm-toolchain

А для тех кто ранее установил себе wget, можно использовать вот такую команду:

cd ~/Downloads/ && wget https://launchpad.net/gcc-arm-embedded/4.8/4.8-2013-q4-major/+download/gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2 && tar -xvvjf gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2 -C ~/Embed Tools/ && sudo ln -s ~/Embed Tools/gcc-arm-none-eabi-4_8-2013q4/bin /opt/arm-toolchain

Она скачивает тулчейн, распаковывает в папку Embed Tools и создает ссылку в /opt/arm-toolchain на него.

Заключение

На текущем этапе большинство пользователей может приступить в пункту Среда разработки в оригинальном туторе. Но возможно не все так подробно знакомы c эклипсом, что способны расшифровать фразу про установку плагинов «Для обоих есть апдейт-сайты, ставятся плагины стандартным для клипсы способом из менюшки.», поэтому я решил их описать более подробно.

GNU Arm Eclipse

В Eclipse заходим в Help->Install New Software
Нажимаем Add и вводим
Name: Gnu Arm Eclipse PlugIn
Location: http://gnuarmeclipse.sourceforge.net/updates

Окно добавление репозитория Gnu Arm Eclipse

Установка ST LINK V2 в MAC OS X для разработки под STM32

В списке плагинов репозитория выбираем 2 отмеченных чекбоксами:
Установка ST LINK V2 в MAC OS X для разработки под STM32
Так как J-Link'а у меня нет, то я себе экспериментальный плагин не ставил, но может кто-то попробует и его.

Zylin Embedded CDT

Нажимаем Add и вводим
Name: Zylin Embedded CDT
Location: http://opensource.zylin.com/zylincdt

Окно добавление репозитория Zylin

Установка ST LINK V2 в MAC OS X для разработки под STM32

В данном случае вариант чекбокса единственный, так что отмечаем его.
В процессе установки плагинов, будет выдаваться предупреждение безопасности, на которое отвечаем утвердительно.
Установка ST LINK V2 в MAC OS X для разработки под STM32
Теперь вам осталось создать свой C или C++ проект, и выполнить его настройки как описано в туторе.

На этом все, я надеюсь у вас все получилось. Желаю удачных разработок.

Автор: JekaKey

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js