Litvek - онлайн библиотека >> Евгений Турышев >> Ada и др. >> Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт

Евгений Турышев ЯЗЫК 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. Оценочный комплект

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

Плата SAM4S

Это плата процессора, на которой установлена дополнительная микросхема FLASH-памяти (NAND) на 2 Гб, кварц, переменный резистор для подстройки эталонного напряжения АЦП, кнопка RESET, кнопка общего назначения SW0, светодиод общего назначения LED0, светодиод RESET, светодиод POWER, светодиод STATUS (моргание которого показывает интенсивность обмена по DEBUG USB). Разъём USB для питания и отладки — DEBUG USB, разъём USB общего назначения SAM4S USB, разъём для внешнего LCD — LCD CONNECTOR, три разъёма для плат расширения.


Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт. Иллюстрация № 2
На обратной стороне платы размещён также разъём кардридера SD-Card и чип отладчика EDBG.

Плата может быть запитана подключением USB-кабеля к разъёму DEBUG USB и с другой стороны к источнику питания USB или компьютеру. Также есть отдельный четырёхштырьковый разъём питания. После включения и сброса процессор запускает программу из флэш, если там что-то прошито.

Немаловажной деталью устройства является чип «The Atmel Embedded Debugger (EDBG)» установленный на обратной стороне платы и подключенный к разъёму DEBUG USB. Будучи соединённым через последовательные каналы TWI, SPI, UART с процессором, он позволяет выполнять отладку приложения используя протокол OpenOCD (Open On-Chip Debugger).

Кроме того, EDBG создаёт на хост-компьютере виртуальный ком-порт Virtual COM Port, который может служить приложению в качестве стандартного ввода вывода.

Подробнее см.

SAM4S Datasheet

SAM4S Xplained Pro User Guide

Atmel Embedded Debugger User Guide

SAM4S ARM Cortex-M4 Microcontrollers

Плата Oled1

Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт. Иллюстрация № 3
Содержит LCD-дисплей, размером 128×32 пикселя, три кнопки (BUTTON 1 .. BUTTON 3) и три светодиода (LED1 .. LED3). В примерах подключается к разъёму расширения EXT3.

OLED1 Xplained Pro User Guide

Плата IO1

Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт. Иллюстрация № 4
Содержит фотодиод, датчик температуры и кардридер MicroSD.

IO1 Xplained Pro User Guide

Плата PROTO1

Язык Ada на Atmel SAM4 (Cortex-M) - быстрый</div></main></div><div class='read_navi'><form class='sec_tab' action='/br/544305' method='get'><label>Страница: <input size='3' class='mz5 p5 s09' type='text' name='p' value='1'></label><input class='mz5 fff s11' style='border:0px' type='submit' value='GO'></form><ul style=
  • 1
  • 2