Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт [Евгений Турышев] (fb2) читать постранично


 [Настройки текста]  [Cбросить фильтры]

Евгений Турышев ЯЗЫК ADA НА ATMEL SAM4 (CORTEX-M) — БЫСТРЫЙ СТАРТ

Введение

Недавно мне в руки попал оценочный комплект Atmel® SAM4S Xplained Pro evaluation kit производства компании Atmel. Ядром этого комплекта является мощный микроконтроллер на базе современной архитектуры Cortex-M. AVR-контроллеры фирмы Atmel весьма популярны в России ввиду невысокой цены и хорошей функциональности. Было тем более интересно познакомиться с их более мощным и современным собратом.

Имея опыт, на предыдущих местах работы, программирования встроенных устройств на Си и Ассемблере, в том числе AVR-контроллеров и некоторых других процессоров RISC-архитектуры с одной стороны, и, опыт в совсем другой области — программировании сетевых приложений на языке Ada, мне было также интересно попробовать совместить то и другое — программировать микроконтроллер на Ada.

Тем более, что одной из главных сфер применения Ada как раз и является создание встроенных приложений, систем реального времени повышенной надёжности.

Вероятно, самой известной реализацией компилятора языка Ada является реализация компании AdaCore, выпускаемая под маркой GNAT. Существует как профессиональная платная версия — GNAT Pro, так бесплатная версия — GNAT GPL, предоставляемая в целях обучения и для разработки приложений под лицензией GPL и имеющая ту же функциональность, но без поддержки.

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

Язык Ada используется много десятилетий прежде всего для построения больших систем, работающих на серьёзном оборудовании, в том числе, в авиации, железнодорожном транспорте и телекоммуникациях (www.adacore.com/customers). Однако, в последние годы, разработчики AdaCore повернулись лицом к младшим братьям — микроконтроллерам, и компания выпустила ряд продуктов для разработки программного обеспечения для микроконтроллеров AVR и ARM.

Выбирая микропроцессорную платформу для разработки оборудования, разработчик «железа» в значительной степени руководствуется тем, какие средства разработки ПО существуют для данного микропроцессора, какова их функциональность и стоимость.

Если со стоимостью обычно всё более-менее понятно, то чтобы хотя бы примерно представить функциональные возможности средств разработки, языка, среды разработки и существующих библиотек, приходится пробовать самому, и тратить немало времени и сил на организацию рабочего места (сборку кросс-компилятора, отладчика и библиотек), обучение языку, изучение спецификации процессора и т. п… Реклама в данной сфере, так же как в любой другой, заслуживает лишь относительного доверия.

Поэтому, в первую очередь, цель данной статьи — обеспечить быстрый старт желающим опробовать разработку на языке Ada для платформы Cortex-M. Это ни в коем случае не учебник по языку Ada, ни руководство по применению микроконтроллера SAM4, то и другое даже в отдельности слишком объёмный предмет. Все примеры носят характер экспериментов, и могут лишь служить исходным пунктом для написания «настоящих» приложений.

Статья может быть полезна и начинающим разработку для аналогичной платформы STM32F на базе Cortex-M c помощью компилятора GNAT или для AVR тем же компилятором. И, в какой-то степени, на языке Си для SAM4S (или близкого контроллера от Atmel).

Все файлы примеров и утилит можно взять здесь.

1. Оценочный комплект


Использование демонстрационной (оценочной) платы микропроцессора (microprocessor development board, evaluation board) несомненно самый простой путь для разработчика оборудования ознакомиться с архитектурой, и оценить возможность её применения для решения собственных задач. Во-первых, в этом случае ему нет необходимости нечто подобное проектировать и изготавливать (принципиальная схема, разводка платы, фотошаблоны, травление, пайка элементов) прежде, чем решит, что данный микропроцессор ему подходит. А во-вторых, с такой платой обычно поставляются (выкладывается в открытый доступ) файлы заголовков, библиотеки функций, примеры приложений, которые избавляют программиста от тривиальной, но нудной работы и ускоряют старт. В данном случае мы имеем не только плату микропроцессора, но целый kit с некоторыми дополнительными устройствами, которые могут быть также полезны для встроенного применения.

Плата SAM4S

Это плата процессора, на которой установлена дополнительная микросхема FLASH-памяти (NAND) на 2 Гб, кварц, переменный резистор для подстройки эталонного напряжения АЦП, кнопка RESET, кнопка общего назначения SW0, светодиод общего