Ada_Ru форум

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

gnat-avr

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

Сообщения

Alexandre Makeev
gnat-avr
2003-04-01 22:36:07

Aloha, forever people

 

Не подскажете, куда дальше двигаться?

 

Сейчас gcc 3.3 (20030324), binutils (030324) вполне себе на автомате собираются, вместе со всеми утилитами (кроме avr-gnatpsys) и даже может что-то компилировать. Разумеется сейчас везде No_Run_Time и adalib из system.ads только состоит. Впрочем avr-gnatmake даже

запускается и что-то компилирует, похоже на рабочий код.

 

Для тестирования используется ACATS 2.5, с модификацией d, оказывается в природе есть acats4gnat, ну и на его основе я себе скрипт сделал, в нем сперва gnatchop преобразует файлы, потом в начало каждого

добавлется pragma No_Run_Time; и это все пытается компилироваться. Сейчас успешно компилируется 280 тестов из 3693, что в целом

обнадеживает, т.к. с компилятором вообще ничего не делалось (да и надеюсь не придется). Остальное либо не должно компилироваться, либо же жалуется на прагму или неполную adalib. Компилятор 66 раз падает, где-то в районе gigi, с одной и той же ошибкой и видимо из-за того, что gigi не расчитан на Integer'Size = 16. В comperr.ads я нашел много ключей для отладки, но вот как быстро найти причину понятия не имею. Насколько вообще можно применять ACATS с No_Run_Time?

 

Я думаю, что сам компилятор вообще мне не нужно править, во-первых потому что я понятия не имею как там все внутри, а во-вторых все же gcc портабельный и с чего бы это front-end должен из-за target'а

становиться неправильным? Однако gigi падает. Если эту ошибку

исправить, то наверное лучше двигатьсяв сторону создания аналога

avr-libc, по-пути делая заплатки gnatmake/gnatbind/gnatlink, что при очень уж очевидно недопустимых ключах правильные сообщения выдавали. Правда для C есть несколько специальных атрибутов, специфичных для AVR, вроде декларации обработчика прерывания или размещения

константных данных в памяти программ, там ведь раздельная память

данных и программ. Это что же, все-таки придется прагмы добавлять и модифичировать gigi?

 

И наверное уже надо думать про железяку, на которой код реально можно запускать и радоваться мигающему светодиоду :)

 

--

Alexandre mailto:sonni@...

Примите мои поздравления!

 

По своей сути ACATS вааще не должен использоваться с No_Run_Time.

 

Изобретение avr-libc на мой взгляд дело бесполезное. Если уж надумал программировать на Ada, так зачем нужны вставки на C?

 

В этом свете (далой C) я бы сперва проверил работоспособность System.Machine_Code. Очень может пригодиться :)

 

Далее можно проверить правильность работы разных правил представления (RM95 13.1 - 13.6).

 

Ну а дальше Вас ждёт приложение C - системное программирование. Собственно два выше лежащих пункта там тоже описываются,а следовательно можно это приложение использовать как план работ. Надо заметить, что здесь придётся писать RTL, устраивающую GNAT.

 

-- Vadim Godunko

hi,

серьезная поделка!

поздравляю!!!

...к комментариям Вадика, правда,

сложно что-либо добавить

Alex

Oleksandr Havva wrote:

...к комментариям Вадика, правда,

сложно что-либо добавить

 

Но можно! Я пропустил то, что реалистичнее найти описание профайла RAVENSCAR и делать приложения C, D в его рамках, а не покушаться на полное соответствие RM (да оно врядли и нужно).

 

 

-- Vadim Godunko

Vadim Godunko wrote:

 

Oleksandr Havva wrote:

...к комментариям Вадика, правда,

сложно что-либо добавить

 

Но можно! Я пропустил то, что реалистичнее найти описание профайла RAVENSCAR и делать приложения C, D в его рамках, а не покушаться на полное соответствие RM (да оно врядли и нужно).

 

 

Во-во. Начать можно с http://www.openravenscar.org/ где есть

открытые реализации под SPARC и Intel x86.

 

А еще есть несколько встраиваемых OS типа http://marte.unican.es/

 

А разве нет под AVR софтового эмулятора? Че сразу железку думать...

 

 

--

Максим

Поиск бумажки, продлившей жизнь ISO 8652:1987 дал неожиданный результат.

 

Было найдено "Guide for use Ada Ravenscar Profile in high integrity systems".

 

Кому интересно, могут скачать:

 

http://anubis.dkuug.dk/JTC1/SC22/WG9/n424.pdf

 

 

-- Vadim Godunko

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

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