Недавно наткнулся на замечательную статью, о том, как собрать все инструменты для разработки в среде linux под контроллеры stm32 и я решил вновь вернуться к задаче, которую уже пытался решить, а именно заставить работать все тоже самое по Mac OS X (В моем случае версии 10.9.1 Mavericks), так как работать в CooCox (а он основан именно на Eclipse) в виртуальной машине уже изрядно надоело. В данной статье я опишу пошаговый алгоритм как все тоже самое заставить работать в OS X.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/934/7e8/bb3/9347e8bb33195efee2fa1eaf25ddc3d4.jpg)
Итак, вы хотите разрабатывать на 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 отдельно. Все команды которые будут выделены далее нужно исполнять в терминале.
Просто набрать в терминале:
В Maverick сразу вываливается окно вида:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/af2/894/71c/af289471c617191c0282bfc94adf6bbe.png)
Нажимает Установить и получаем все необходимые утилиты без самого Xcode.
Скачать и установить образы в ручную:
Образ для Mountain Lion
Образ для Mavericks
После всех этих операций в системе будут установлены такие утилиты как make, gcc, git и другие.
К счастью, мировое open source сообщество не оставило пользователей Mac в беде и выкатило несколько решений на этот счет.
На текущий момент есть два достойных проекта, которые можно использовать для этих целей Macports и Brew. Если у вас стоит какой либо из этих менеджеров, то ставить больше ничего не надо, однако если вы задумываетесь что вам поставить, то лично я рекомендую именно Brew.
Установка Brew проста и незатейлива, копируем строчку в терминал и следуем инструкциям
Все! Теперь у вас есть возможность устанавливать пакеты из репозиториев!
Например можно поставить себе Midnight Commander:
Или wget (рекомендую поставить, он понадобится позже):
Если у вас уже был установлен Brew, то рекомендую вам обновить его командой:
А затем запустить:
Но не будем отвлекаться от нашей основной задачи, а именно подружить наш программатор с системой.
Теперь мы можем установить все необходимые нам пакеты, благо сделать это уже очень просто:
После установки этих пакетов у нас есть все необходимое для сборки проекта от Texane.
Я буду руководстоваться тем, что мы создадим папку в своей домашней директории и назовем ее Embed Tools, но вы можете делать в любой удобной папке.
Подключаем нашу плату и запускаем комманду:
В случае если все хорошо, то должен быть возвращен ответ вида:
Для сохранение совместимости и исходный тутором, я буду делать теже самые ссылки, но опять же, вы можете делать в удобные для вас места, можно даже не делать никакие ссылки, а в самом эклипсе ссылаться непосредственно на пути установки утилит.
С большой долей вероятности, в вашей системе каталога opt не будет, а значит его нужно создать, а заодно и каталог bin в нем:
Теперь создаем ссылку на st-util в каталог /opt/bin/:
Качаем 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:
А для тех кто ранее установил себе wget, можно использовать вот такую команду:
Она скачивает тулчейн, распаковывает в папку Embed Tools и создает ссылку в /opt/arm-toolchain на него.
На текущем этапе большинство пользователей может приступить в пункту Среда разработки в оригинальном туторе. Но возможно не все так подробно знакомы c эклипсом, что способны расшифровать фразу про установку плагинов «Для обоих есть апдейт-сайты, ставятся плагины стандартным для клипсы способом из менюшки.», поэтому я решил их описать более подробно.
В Eclipse заходим в Help->Install New Software
Нажимаем Add и вводим
Name: Gnu Arm Eclipse PlugIn
Location: http://gnuarmeclipse.sourceforge.net/updates
В списке плагинов репозитория выбираем 2 отмеченных чекбоксами:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/331/667/078/33166707838133a4471240836c70628c.png)
Так как J-Link'а у меня нет, то я себе экспериментальный плагин не ставил, но может кто-то попробует и его.
Нажимаем Add и вводим
Name: Zylin Embedded CDT
Location: http://opensource.zylin.com/zylincdt
В данном случае вариант чекбокса единственный, так что отмечаем его.
В процессе установки плагинов, будет выдаваться предупреждение безопасности, на которое отвечаем утвердительно.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/893/8a5/d6a/8938a5d6a6e096ae96fff98ba7f9d1a6.png)
Теперь вам осталось создать свой C или C++ проект, и выполнить его настройки как описано в туторе.
На этом все, я надеюсь у вас все получилось. Желаю удачных разработок.
![](https://habrastorage.org/getpro/habr/post_images/934/7e8/bb3/9347e8bb33195efee2fa1eaf25ddc3d4.jpg)
Итак, вы хотите разрабатывать на 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 сразу вываливается окно вида:
![](https://habrastorage.org/getpro/habr/post_images/af2/894/71c/af289471c617191c0282bfc94adf6bbe.png)
Нажимает Установить и получаем все необходимые утилиты без самого Xcode.
Способ 2:
Скачать и установить образы в ручную:
Образ для Mountain Lion
Образ для Mavericks
После всех этих операций в системе будут установлены такие утилиты как make, gcc, git и другие.
Установка менеджера пакетов
К счастью, мировое open source сообщество не оставило пользователей Mac в беде и выкатило несколько решений на этот счет.
На текущий момент есть два достойных проекта, которые можно использовать для этих целей Macports и Brew. Если у вас стоит какой либо из этих менеджеров, то ставить больше ничего не надо, однако если вы задумываетесь что вам поставить, то лично я рекомендую именно Brew.
Установка Brew проста и незатейлива, копируем строчку в терминал и следуем инструкциям
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/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![](https://habrastorage.org/r/w1560/getpro/habr/post_images/940/eac/62a/940eac62a512d48eb27df32689fb7179.png)
![](https://habrastorage.org/getpro/habr/post_images/940/eac/62a/940eac62a512d48eb27df32689fb7179.png)
В списке плагинов репозитория выбираем 2 отмеченных чекбоксами:
![](https://habrastorage.org/getpro/habr/post_images/331/667/078/33166707838133a4471240836c70628c.png)
Так как J-Link'а у меня нет, то я себе экспериментальный плагин не ставил, но может кто-то попробует и его.
Zylin Embedded CDT
Нажимаем Add и вводим
Name: Zylin Embedded CDT
Location: http://opensource.zylin.com/zylincdt
Окно добавление репозитория Zylin![](https://habrastorage.org/r/w1560/getpro/habr/post_images/005/7de/800/0057de8005fad11d9bc12e2ff5de8b97.png)
![](https://habrastorage.org/getpro/habr/post_images/005/7de/800/0057de8005fad11d9bc12e2ff5de8b97.png)
В данном случае вариант чекбокса единственный, так что отмечаем его.
В процессе установки плагинов, будет выдаваться предупреждение безопасности, на которое отвечаем утвердительно.
![](https://habrastorage.org/getpro/habr/post_images/893/8a5/d6a/8938a5d6a6e096ae96fff98ba7f9d1a6.png)
Теперь вам осталось создать свой C или C++ проект, и выполнить его настройки как описано в туторе.
На этом все, я надеюсь у вас все получилось. Желаю удачных разработок.