Ada_Ru форум

Обсуждение языка Ада

[ada_ru] avr-ada

Оставить новое сообщение

Сообщения

Cyril Sazonov
[ada_ru] avr-ada
2020-03-02 20:33:29

Здравствуйте!

 

Озаботился программированием Arduino, естественно на Аде из под Линукса. Там нужно ставить кучу всякого. Но вся информация оооочень несвежая и версии ПО сильно поменялись с тех пор. Споткнулся на сборке кросс-компилятора arc-gcc.

 

Кто-нибудь занимался такими вещами? А с Raspberry?

Посмотрите есть ли ваша архитектура в LLVM. Если есть, то можно воспользоваться системой GNAT-LLVM.

С уважением и наилучшими пожеланиями,

Сергей Дюков,

Волжский.

Пишут, что поддерживает. Буду пробовать.

 

Спасибо.

C Rasberry Pi всё по другому, ведь там ядро линукс и компилятор

не bare-board. Андрей использует gnat из rasberian и собирает

код прямо на Rasberry, без кросс-компилятора. Там даже GPS

есть.

 

Вадим пробовал портировать GNAT под Ардуино, но с процессором

ARM. Может он что-то посоветует.

 

Я могу попробовать помочь собрать gcc-avr, если скажешь в каком

виде ты хочешь иметь кросс-компилятор. Под Linux? Под какой

дистрибутив? Может Docker образ собрать?

На raspberry в операцирнке Raspbian есть все необходимое для кимпилирования Ада кода с помощю gnat.

 

Надо установить:

GNU Ada compiller (gnat-4.9)

multi-language-extensible build tool (grpbuild-2014dfsg-1)

integrated development environment for C and Ada (gnat-gps-5.3-dfsg-1) in your Raspbian package manager.

 

После этого я обычно делаю X-forwarding over ssh и сижу кодю на ноуте (для удобства) а код компилится на малинке.

 

Как то так, будут вопросы - спраштвайте.

Спасибо за ответы всем. Аж глазки разбегаются от разных вариантов !-).

Только хотел написать, что Raspberry -- это на перспективу, как позвонил сын школьного друга и подкинул задачу как раз для Raspberry. Так что, перспектива сильно приблизилась. Скоро буду спрашивать на эту тему ( создам отдельную ).

 

А пока Arduino и общая стратегия.

 

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

 

Система у меня Linux Slackware64 14.1 ( сразу же проапгрейдил до current января этого года ). Так что нужно ориентироваться на наиболее "ручную" работу по всяким установкам. Установлен gnat-community-2019-20190517-x86_64-linux-bin. Arduino пока один из самых минималистических -- Pro Mini.

 

Глянул краем глаза на LLVM. Идея хороша, но я уже к тому времени успел настроиться на "рассыпуху" avr-*

 

Вопрос к Максиму: что такое Docker образ?

 

По установке ПО.

 

Как я понял нужно стащить к себе и собрать следующие пакеты ( в скобках стащенная версия ): binutils ( 2.33.1 ), gcc ( 9.2.0 ), avr-libc ( 2.0.0 ), avr-ada ( 1.2.2 ). Вроде всё описано достаточно внятно, но, как уже говорил, давно и версии с тех пор сильно поменялись. И при сборке gcc-avr вылезли ошибки.

 

Кроме того, уже позже стащил build-avr-ada-toolchain. Как я понял, этот пакет должен сам загрузить и установить всё сам?

Вот ссылка на дистрибутив gnat-llvm: https://github.com/AdaCore/gnat-llvm . В процессе установки стаскивается полный дистрибутив GCC с GIT-репозитория GNU и из него берётся дистрибутив компилятора ADA и библиотеки времени исполнения ADA. Так что нужен безлимитный доступ в интернет, что в командировке может быть проблематичным.

Что касается использования gnat-llvm -- то этот вопрос активно обсуждается в чате ТЕЛЕГРАМ adalang (https://t.me/adalang) применительно к платформе WASM и Максим является активным участником этого процесса.

С уважением и наилучшими пожеланиями,

Сергей Дюков,

Волжский.

Вопрос к Максиму: что такое Docker образ?

 

Docker это такая программа для запуска контейнеров с линукс. Как виртуальная машина, но быстрее и проще. Например я могу за 10 секунд запустить у себя в терминале пустую машину со Slackware:

 

$ docker run -i -t vbatts/slackware:14.1 /bin/bash

 

Docker позволяет заскриптовать настройку машины, установку пакетов и пр, а затем легко поделиться получившимся образом с другими или сохранить его в интернете.

 

Возвращаясь к AVR, я бы сначала попробовал собрать GNAT (без avr-ada) в надежде,

что там уже всё интегрировано в исходники GNAT. AdaCode выпустила в 2012 кросс-компилятор под Windows. Есть шанс, что заработает.

 

Ещё есть свежая статья/инструкция на близкую тему

 

https://wiki.osdev.org/GNAT_Cross-Compiler

Подправил сборочный скрипт из build-avr-ada-toolchain, как рекомендовано на https://sourceforge.net/p/avr-ada/wiki/BuildCrossCompiler/. И запустил его. Слетел на самом последнем этапе -- на сборке библиотеки avrada_libs. Пытаюсь понять, на чём споткнулся.

 

Для Sergey Dukov: я сейчас рядом в Кап Яре, в командировке.

В телеграм-чате по Аде пролетело сообщение, что репозитории avr-ada перебрались на GitHub:

 

https://github.com/RREE?tab=repositories

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти