Евгений Турышев - Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт
Название: | Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт | |
Автор: | Евгений Турышев | |
Жанр: | Статьи и рефераты, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Ada | |
Изадано в серии: | неизвестно | |
Издательство: | СИ | |
Год издания: | 2018 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт"
Евгений Турышев подробно разбирает работу с GNAT для встраиваемых ARM процессоров на примере конкретной платы.
Читаем онлайн "Язык Ada на Atmel SAM4 (Cortex-M) - быстрый старт". [Страница - 2]
Плата SAM4S
Это плата процессора, на которой установлена дополнительная микросхема FLASH-памяти (NAND) на 2 Гб, кварц, переменный резистор для подстройки эталонного напряжения АЦП, кнопка RESET, кнопка общего назначения SW0, светодиод общего назначения LED0, светодиод RESET, светодиод POWER, светодиод STATUS (моргание которого показывает интенсивность обмена по DEBUG USB). Разъём USB для питания и отладки — DEBUG USB, разъём USB общего назначения SAM4S USB, разъём для внешнего LCD — LCD CONNECTOR, три разъёма для плат расширения.
На обратной стороне платы размещён также разъём кардридера 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
Содержит LCD-дисплей, размером 128×32 пикселя, три кнопки (BUTTON 1 .. BUTTON 3) и три светодиода (LED1 .. LED3). В примерах подключается к разъёму расширения EXT3.
OLED1 Xplained Pro User Guide
Плата IO1
Содержит фотодиод, датчик температуры и кардридер MicroSD.
IO1 Xplained Pro User Guide
Плата PROTO1
Небольшая макетная плата расширения для сборки своего устройства.
Также в комплект входят два USB-кабеля.
2. Организация среды разработки
Много лет я являюсь пользователем ОС Linux, как для профессиональной работы, так и в домашних целях. Поэтому все дальнейшее также проделывалось в Linux (Fedora Core 21).В качестве среды разработки я использую редактор emacs, для которого существует модуль ada-mode поддерживающий редактирование исходного кода Ada, навигацию по коду, вызов компилятора, переход на ошибки, и др. что обычно требуется разработчику. Поэтому все проекты содержат файлы proj.adp, которые служат в качестве простенького файла проекта для библиотеки ada-mode.
Необходимые пакеты
С сайта компании AdaCore скачиваем бинарную версию компилятора: gnat-gpl-2015-arm-elf-linux-binисходные коды GNAT:
gnat-gpl-2015-src
исходные коды компилятора gcc:
gcc-4.9-gpl-2015-src
и исходные файлы для сборки runtime-библиотек (для «голого железа» — Bare Boards — устройств без ОС):
bb-runtimes-gpl-2015-src
Компилятор устанавливаем в каталог /usr/gnat (там же у меня установлен и native-компилятор для x86 — gnat-gpl-2015-x86_64-linux-bin), для этого достаточно запустить в его каталоге скрипт./doinstall.
Сборка ZFP
Далее собираем runtime-библиотеку для нашей платформы.Здесь необходимо пояснить, что для GNAT существует понятие «профиля компилятора», которое описывает совокупность доступных средств языка, функциональность и объём runtime-библиотеки.
По степени увеличения функциональности существуют предопределённые профили Zero Footprint Profile (ZFP), Cert Profile, Ravenscar Profiles (два варианта профиля — sfp и full), Full Ada Language Support.
Основной мотивацией существования профилей AdaCore называет лёгкость и снижение --">