Forum: Compiler & IDEs [Announce] AVR-Ada V0.3 released

Autor: Rolf Ebert (Gast)

0 lesenswert
nicht lesenswert
We are proud to announce a new release of AVR-Ada, one of the first
GCC based Ada compilers targeting 8-bit microcontrolers.

You can get the project description and some documentation at


The SF development pages with the download section are at


AVR-Ada is available in source form only.  Binary packages of the
cross compiler hosted on Linux and Windows are expected to appear with

future releases of cdk4avr (cdk4avr.sourceforge.net) and WinAVR

Feel free to join the mailing list at


It has quite low traffic.

Please use SF's bug reporting system for guiding future development
of AVR-Ada.


The goal of the AVR-Ada project is to make the gcc based Ada compiler
available for the AVR microcontrollers.

More specifically the project provides

 -  a GNAT compiler based on the existing AVR and Ada support in gcc
 -  a minimalistic Ada runtime system
 -  a useful AVR specific support library

The current distribution of AVR-Ada is V0.3. It is based on gcc-3.4.4.
In the AVR-Ada project we never had problems with the Ada compiler
itself. It is quite stable.

The Ada run time system (RTS) on the other hand is still not even a
run time system.  It is more a compile time system :-). All files in
the RTS are only needed at compile time.  As a consequence we don't
have support for exceptions nor for tasking (multithreading).

There is a bit of AVR specific support.  Some type and interface
definitions, timing routines, eeprom access, UART, and most
importantly the necessary definitions for most AVR parts.

Some sample programs in the apps/ directory show how to use the
compiler and the library.  This includes the tutorial program from
an older avr-libc distribution and some of Peter Fleury's example
translated to Ada.

The documentation is still low and consists only of the pages at
avr-ada.sourceforge.net.  A copy of the pages is in the directory
AVR-Ada/web/ for offline reading.  Feel free to ask any question on
the mailing list.


0.3 (2005-08-03)

The part description spec files are completely new.  The Ada specs are
now generated directly from Atmel's XML part description files of AVR
Studio 4.11 build 406 SP 2.  In previous versions they were derived
from the C header files of avr-libc.

We changed the syntax for accessing single bits from bit numbering to
masks in AVR.IO.  Simple names in the part description specs now
contain bit masks, the pin number is still available with the name
xxx_Bit.  E.g.:

    --  Port D Data Register bit 3
    PORTD3_Bit               : constant Bit_Number := 3;
    PORTD3                   : constant Byte       := 16#08#;

The previous Set_IO routines in AVR.IO were renamed to simply Put
omitting the _IO, the Get_IO have become Get.  That is more in the
style of other Ada IO packages like Text_IO.

New packages for string handling and accessing constants in program
space.  They are actually a stripped down version of

We build part specific libraries now.  That means that we can provide
specific functionality adapted to a given part.  It is currently used
for the UART and EEPROM access only, though.

The example programs for accessing 1-wire devices and an LCD are not
part of the distribution anymore.  They are only available via CVS.
There is also starting support for the atmega169 based AVR Butterfly
in the CVS repository (UART, LCD, and dataflash).

0.2 (2004-10-28)

We modified the compiler patches to fit cleanly to gcc-3.4.3.  They
probably also fit in previous gcc-3.4.x releases; I never tried.

The "freestanding" patch is now considerably shorter since part of
what it does (avoid some code in the binder file) is now provided
directly in gcc.  The corresponding binder options was previously
called "standalone", but that expression is used elsewhere in GNAT.

You can now use "Library Projects" with AVR-Ada.  I.e. you can
have gpr files with "Library_Name", etc.  The only permitted value
"Library_Kind" is "static".  This feature is used for the Avr

gcc-3.4.3 now fully supports -fdata-sections (PR14064) and
-ffunction-sections for AVR targets in C and Ada.  This
particularily useful for embedded systems where code and static data
must not be wasted.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen

Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.