Язык Ada на Atmel SAM4 (Cortex-M) — быстрый старт

Евгений Турышев
100
10
(1 голос)
0 0

Аннотация: Евгений Турышев подробно разбирает работу с GNAT для встраиваемых ARM процессоров на примере конкретной платы.Читать книгу Язык Ada на Atmel SAM4 (Cortex-M) — быстрый старт онлайн от автора Евгений Турышев можно на нашем сайте.

Книга добавлена:
20-11-2022, 09:39
0
232
11
Язык Ada на Atmel SAM4 (Cortex-M) — быстрый старт

Читать книгу "Язык Ada на Atmel SAM4 (Cortex-M) — быстрый старт"



Общие модули

Предположим, что все наши проекты будут находиться в каталоге $PROJ.

Условимся складывать вспомогательные файлы для запуска openocd, скрипт с общими функциями GDB, скрипт для запуска консоли и т. п. в $PROJ/utils.

Ещё один каталог $PROJ/xstk-common создадим для хранения общих модулей, пригодных для использования в любом приложении.

В первую очередь туда поместим файл sam4s.ads с описанием аппаратуры процессора. Он позволит для доступа к регистрам различных подсистем MCU пользоваться именами переменных и символическими константами, а не адресами регистров и числовыми значениями.

Этот файл я скопировал из ZFP и дополнил всем, что мне понадобилось. Хотя в реальном приложении его размер должен быть минимально необходимым, для наших экспериментов тем лучше, чем полнее будет описана аппаратура. Это позволит реже перелистывать 1300-страничное руководство по процессору.

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

В Ada вместо этого мы определяем полноценные переменные с указанием их размещения в памяти по физическому адресу регистра и добавлением аспектов Volatile, Import.

Откуда следует, что вся работа с регистрами будет выполняться с обычном для языка строгим контролем типов. При этом, типичные для С в подобных случаях приведения типов указателей, не требуются.

Пример:

  type PIO_Registers is record

    PER    : Word;

    PDR    : Word;

    PSR    : Word;

    Pad0   : Word;

 ...

  end record;

  PIOA: PIO_Registers with Volatile, Import,

  Address => System'To_Address (PIOA_Base);

Одни из самых востребованных операций при работе с MCU — работа с портами ввода-вывода, поэтому следующая полезная вещь — модуль IO_Ports io_ports.ads, io_ports.adb.

И, на базе пакета IO_Ports ещё два тривиальных пакета для работы с кнопками и светодиодами платы процессора и платы расширения Oled1.

Итого в $PROJ/xstk-common у нас:

  io_ports.adb

  io_ports.ads

  sam4s.ads

  xstk_board.adb

  xstk_board.ads

  xstk_oled1_board.adb

  xstk_oled1_board.ads


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


100
10
Оцени книгу:
0 0
Комментарии
Минимальная длина комментария - 7 знаков.
Книжка.орг » Образование » Язык Ada на Atmel SAM4 (Cortex-M) — быстрый старт
Внимание