Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2743
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Установка инструментария

51

случаев запускаются «из коробки». Однако при оценке данных инструментов необходимо учитывать несколько моментов. Прежде всего, CooCox IDE в настоящее время поддерживает только Windows; напротив, SWSTM32 также поддерживает Linux и MacOS, но в ней отсутствуют некоторые дополнительные функции, описанные в инструментарии, предлагаемом данной книгой. Более того, они уже поставляются со всеми необходимыми инструментами, предустановленными и настроенными. Хоть это может и быть преимуществом, если вы совершенно новичок в процессе разработки на процессорах Cortex-M, однако если вы хотите выполнять серьезную работу – это может быть значительным ограничением. Очень важно иметь полный контроль над инструментами, необходимыми для разработки вашей микропрограммы, особенно при работе с программным обеспечением с открытым исходным кодом (Open Source). Таким образом, лучший выбор – создать полноценный инструментарий с нуля. Это позволяет вам ознакомиться с программами и процедурами их настройки, предоставляя полный контроль над вашей средой разработки. Это может раздражать, особенно в первый раз, но это единственный способ узнать, какая часть программного обеспечения задействована на определенном этапе разработки.

В данной главе я покажу необходимые шаги для установки полноценного инструментария для платформы STM32 в Windows, Mac OSX и Linux. Инструментарий основан на двух основных инструментах: Eclipse и GCC, а также на ряде внешних инструментов и плагинов Eclipse, которые позволяют эффективно создавать программы STM32. Хотя инструкции для данных трех платформ практически одинаковы, я адаптирую их для каждой ОС, показывая скриншоты и команды. Это упростит процедуру установки и позволит настроить полноценный инструментарий за меньшее время. Это также даст нам возможность детально изучить каждый компонент нашего инструментария. В следующей главе я покажу вам, как сконфигурировать простейшее приложение (мигающий светодиод – приложение Hello World в электронике), которое позволит нам протестировать наш инструментарий.

2.1. Почему выбирают Eclipse/GCC в качестве инструментария для STM32

Перед тем, как приступить к установке нашего инструментария, нужно ответить на достаточно распространенный вопрос: какой инструментарий является лучшим для разработки приложений для платформы STM32? К сожалению, на данный вопрос не так просто ответить. Вероятно, лучший ответ заключается в том, что он зависит от типа приложения. Прежде всего, аудиторию следует разделить на профессионалов и любителей. Компании часто предпочитают использовать коммерческие IDE с ежегодными взносами, которые позволяют получать техническую поддержку. Вы должны понять, что в бизнесе время означает деньги, а иногда коммерческая среда IDE может уменьшить кривую обучения (особенно если учесть, что ST явно поддерживает эти среды). Тем не менее, я думаю, что даже компании (особенно небольшие организации) могут получить большие преимущества в использовании инструментария с открытым исходным кодом.

Я думаю, что это наиболее важные причины для использования инструментария Eclipse/GCC для разработки встраиваемых систем с микроконтроллерами STM32:

Он основан на GCC: GCC, вероятно, лучший компилятор в мире, и он дает отличные результаты даже с процессорами на базе ARM. В настоящее время ARM

Установка инструментария

52

является самой распространенной архитектурой (благодаря повсеместному внедрению встроенных систем в последние годы), и многие производители аппаратного и программного обеспечения используют GCC в качестве базового инструмента для своей платформы.

Он кроссплатформенный: если у вас есть ПК с Windows, новейший элегантный Mac или сервер с Linux, вы сможете без каких-либо различий успешно разрабатывать, компилировать и загружать микропрограмму на свою отладочную плату. В настоящее время это обязательное требование.

Распространенность Eclipse: многие коммерческие IDE для STM32 (такие как TrueSTUDIO и другие) также основаны на Eclipse, которая стала своего рода стандартом. Существует множество полезных плагинов для Eclipse, которые вы можете скачать одним щелчком мыши. И это развивающийся день ото дня продукт.

Он с открытым исходным кодом: ну ладно. Я согласен. Для таких огромных программ действительно сложно попытаться понять их внутреннее устройство и изменить код, особенно если вы инженер по аппаратным средствам, приверженный управлению транзисторами и прерываниями. Однако если у вас возникли проблемы с вашим инструментом, проще попытаться понять, что не так с инструментом с открытым исходным кодом, чем с закрытым.

Большое и растущее сообщество: к данным инструментам к настоящему времени присоединилось большое международное сообщество, которое постоянно разрабатывает новые функции и исправляет ошибки. Вы найдете множество примеров и блогов, которые могут помочь вам во время вашей работы. Кроме того, многие компании, которые приняли данное программное обеспечение в качестве официальных инструментов, вносят экономический вклад в основное развитие. Это гарантирует, что программное обеспечение не исчезнет внезапно.

Он бесплатный: ага. Я поставил эту причину в качестве последнего пункта, но это не последняя причина. Как было сказано ранее, коммерческая среда разработки может стоить целое состояние для небольшой компании или любителя/студента. А наличие бесплатных инструментов является одним из ключевых преимуществ платформы STM32.

2.1.1. Два слова о Eclipse…

Eclipse5 является ПО с открытым исходным кодом и бесплатной средой разработки на основе Java. Несмотря на это (к сожалению, программы на Java, как правило, потребляют много ресурсов компьютера и замедляют его работу), Eclipse является одной из наиболее распространенных и готовых сред разработки. Eclipse поставляется в нескольких предварительно сконфигурированных версиях, настроенных для конкретных целей. Например, Eclipse IDE для разработчиков Java поставляется предварительно настроенной для работы с Java и всеми инструментами, используемыми в данной платформе разработки (Ant, Maven и т. д.). В нашем случае Eclipse IDE для разработчиков C/C++ – это то, что нам нужно.

Eclipse разработана с возможностью расширения плагинами. В Eclipse Marketplace доступно несколько плагинов, которые и в самом деле полезны для разработки программного обеспечения для встраиваемых систем. Мы установим и используем большинство из них в данной книге. Кроме того, Eclipse очень персонализируемый. Я настоятельно

5 http://www.eclipse.org

Установка инструментария

53

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

2.1.2. … и о GCC

GNU Compiler Collection6 (GCC) является полноценным и широко распространенным набором компиляторов. Это единственный инструмент разработки, способный скомпилировать несколько языков программирования (верхний уровень, front-end) в десятки аппаратных архитектур, которые представлены в нескольких вариантах. GCC – действительно сложное программное обеспечение. Он предоставляет несколько инструментов для выполнения задач компиляции. К ним, помимо самого компилятора, относятся ассемблер, компоновщик, отладчик (известный как GNU Debugger – GDB), несколько инструментов для исследования, дизассемблирования и оптимизации бинарных файлов. Кроме того, GCC также оснащен средой выполнения для языка Си, настроенной для целевой архитектуры.

В последние годы несколько компаний, даже во встроенном мире, приняли GCC в качестве официального компилятора. Например, ATMEL использует GCC в качестве кросскомпилятора для среды разработки AVR Studio.

Что такое кросс-компилятор?

Обычно мы называем термином «компилятор» инструмент, способный генерировать машинный код для процессора на нашем ПК. Компилятор – это просто «переводчик языка» с определенного языка программирования (в нашем случае Си) на низкоуровневый машинный язык, также известный как язык ассемблера. Например, если мы работаем на компьютере Intel x86, мы используем компилятор для генерации ассемблерного кода x86 из языка программирования Си. Для полноты картины мы должны сказать, что в настоящее время компилятор является более сложным инструментом, который предназначен как для конкретного целевого аппаратного процессора, так и для операционной системы, которую мы используем (например, Windows 7).

Кроссплатформенный компилятор – это компилятор, способный генерировать машинный код для аппаратного обеспечения машины, отличной от той, что мы используем для разработки наших приложений. В нашем случае встроенный компилятор GCC ARM генерирует машинный код для процессоров Cortex-M при компиляции на компьютере x86 с какой-либо ОС (напри-

мер, Windows или Mac OSX).

В мире ARM, GCC является наиболее используемым компилятором, особенно в связи с тем, что он используется основным инструментом разработки для операционных систем на основе Linux для процессоров ARM Cortex-A (микроконтроллеры ARM, которыми оснащены практически каждое мобильное устройство). Инженеры ARM активно сотрудничают в разработке GCC ARM. ST Microelectronics не предоставляет среды разработки, но явно поддерживает инструментарии на основе GCC. По этой причине относительно просто настроить полноценный и работающий инструментарий для разработки встроенных приложений при помощи GCC.

6 https://gcc.gnu.org/