[Home] | [Donate!] [Контакты] |
[<< Введение] | [Минимальное приложение C++ для ARM (Cortex-M3) >>] |
Разработка программ для микроконтроллеров потребует некоторого минимального набора программного и аппаратного обеспечения.
Микроконтроллер | Для работы потребуется печатная плата разрабатываемого устройства с установленным на нём микроконтроллером. Как минимум, для микроконтроллера должно быть обеспечено питающее напряжение. | Можно использовать какую-нибудь оценочную плату, которая объединяет оба компонента. |
Отладочный адаптер | Программирования без отладки не бывает. Адаптер позволяет подключить компьютер к отлаживаемому устройству. | |
Программное обеспечение | Пакет программ для разработки: текстовый редактор для исходного кода, компилятор, ассемблер, линковщик, отладчик, драйвер отладочного адаптера и др. |
Прежде всего нам нужен сам микроконтроллер (точнее говоря, разработанное нами устройство, включающее в себя микроконтроллер, внутрисхемной отладкой которого мы будем заниматься). Выбор микроконтроллера определяется поставленной задачей. Обычно имеет смысл выбрать самый дешёвый микроконтроллер, возможностей и производительности которого будет для нас достаточно (с небольшим запасом на всякий случай и в расчёте на будущие расширения функциональности путем обновления прошивки).
Если же задача - просто поэкспериментировать, то хорошим решением может быть выбор какой-нибудь оценочной платы. На ней мы получаем по выгодной цене сам микроконтроллер, минимальную обвязку (питание, кварцевые резонаторы для тактирования микроконтроллера и часов реального времени), какие-то устройства индикации и ввода-вывода (в зависимости от платы: от нескольких светодиодов и кнопок до графического дисплея с сенсорным экраном), доступ к портам ввода-вывода микроконтроллера (в виде разъёмов или участка для макетирования на плате). И самое главное - тут же будет размещён отладочный адаптер, необходимый для прошивки и отладки нашего микроконтроллера. Опять же, в зависимости от возможностей конкретной платы, бывает предусмотрена работа с внешним отладчиком или наоборот, использование отладчика на оценочной плате для работы с другими микроконтроллерами. После завершения разработки, оценочную плату можно разместить в готовом устройстве.
Начать эксперименты можно даже вообще без микроконтроллера, если воспользоваться эмуляцией, например с помощью эмулятора QEMU для ARM. В эмуляции привлекает также и то, что не требуется каждый раз прошивать flash-память реального устройства, когда обнаружена ошибка в коде. Ресурс flash-памяти хотя и достаточно велик, но конечен и вполне исчерпаем, если разработчик проявит достаточно усердия. Однако, пока что качество эмуляции настолько, как бы сказать помягче, невысокое... Сейчас это скорее игрушка, чем серьёзный инструмент. Так что надо подождать развития проекта или всё же разориться на оценочную плату. Что касается ресурса flash в отношении количества циклов записи, то следует иметь в виду, что ARM-архитектура позволяет запуск из RAM! Конечно, объём RAM невелик, кроме того, при запуске из RAM падает производительность (для Cortex-M3 и выше), но всё же отладка в RAM удобна и может использоваться как для небольших учебных проектов, так и для вполне серьёзных (например, если отлаживать код большого проекта по частям), особенно на начальном этапе, когда ошибок бывает довольно много.
Отладка микроконтроллера осуществляется через интерфейс JTAG или SW (Serial-Wire). Для подключения компьютера к отлаживаемому устройству требуется адаптер отладки, которых выпускается великое множество. При выборе следует учитывать наличие необходимого интерфейса для подключения к микроконтроллеру (JTAG, SW); к компьютеру (USB, Ethernet, LPT). Адаптер должен поддерживать уровень сигналов отлаживаемого микроконтроллера (определяется напряжением питания микроконтроллера: обычно логическому нулю соответствует напряжение, не превышающее величины порядка 1/3 от напряжения питания; единице - напряжение не ниже величины порядка 2/3 от напряжения питания; данные по уровням и допустимому диапазону питающих напряжений микроконтроллера следует уточнять в спецификации на данный микроконтроллер ("datasheet")).
Если ограничиться работой с эмулятором, то отладочный адаптер не потребуется. В случае, если используется оценочная плата, то отладочный адаптер будет уже встроен в эту плату.
Можно обойтись без приобретения адаптера и в том случае, если требуется только прошить готовую программу - обычно в микроконтроллерах предусмотрена прошивка через UASRT (всё равно потребуется преобразование уровней сигналов), USB (в зависимости от конкретного MCU), возможно и через другие интерфейсы.
Обеспечивают небывалый комфорт в использовании. Просты в установке. Удобны в работе. Устанавливаем один пакет разработки и получаем всё, что только может потребоваться. Обеспечивают поддержку множества процессоров (предоставляют Vendor-зависимые части CMSIS библиотеки), могут работать с большим количеством аппаратных отладчиков, включают себя различные библиотеки. Создание нового проекта упрощается благодаря наличию специальных мастеров. Разумеется, содержат редактор исходного кода с полным набором полагающихся возможностей (подсветка синтаксиса, автодополнение, и т.д.). Имеется множество примеров. Имеют качественную справочную систему.
Как правило, платные IDE имеют бесплатную версию с ограничениями на размер компилируемого и отлаживаемого кода.
Из наиболее известных можно назвать IAR; Keil ARM Microcontroller Development Kit (MDK-ARM, пакет также известен по названию одного из компонентов как uVision).
Особенно хочется отметить пакет MDK-ARM (uVision), с 5-й версией которого посчастливилось работать. Не уступая другим по возможностям и удобству, имеет очень скромные требования к системным ресурсам. Прекрасно работал на лабораторном Pentium-III (700МГц). Бесплатный MDK-Lite вариант имеет ограничения на размер компилируемого, линкуемого и отлаживаемого кода.
Нельзя обойти вниманием Atollic TrueSTUDIO for ARM. Как основанная на Eclipse IDE, является тяжеловесной, требует достаточно мощного компьютера для работы. Зато бесплатная Lite-версия с недавних пор не имеет ограничений на размер кода! Для перехода на Pro-версию достаточно приобрести лицензию (переустановка не требуется).
Они не только позволяют сэкономить средства, но и обеспечивают полную свободу. Пользователь не зависит от воли одной компании-разработчика, от её решений в каком направлении развивать проект и от политики лицензирования. У пользователя есть возможность самому решить, из каких компонентов построить свою рабочую среду, какие инструменты установить и как их конфигурировать.
Может показаться, что работа потребует больших усилий. На самом деле, потребуется более глубокое изучение используемых инструментов. Но вряд ли это так плохо.