Skip to content
Ada source code and complete sample GNAT projects for selected bare-board platforms supported by GNAT.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
arch arch/svd.mk: fix typo Jan 23, 2019
boards Add NUCLEO-F446ZE board definition Feb 4, 2019
components ST7735R: improve drawing performances in buffer-less mode Oct 26, 2018
docs Update design.md Jul 4, 2018
examples Add NUCLEO-F446ZE board definition Feb 4, 2019
hal/src Add Bezier curve for n points (#297) Feb 22, 2019
middleware/src Fix use of an anonymous access type allocator warnings Apr 8, 2019
scripts
testsuite Fix use of an anonymous access type allocator warnings Apr 8, 2019
.appveyor.yml AppVeyor: only compile examples in production mode Sep 4, 2018
.gitattributes
.gitignore Update HiFive1 example project for new board support projects May 29, 2018
.gitmodules
.travis.yml
CONTRIBUTING.md Create a CONTRIBUTING.md Feb 22, 2017
LICENSE Add a LICENSE file and update the README Nov 8, 2016
README.md

README.md

Gitter chat Linux Build Status Windows Build status

1. Introduction

This repository contains drivers and sample projects to program micro-controllers with the Ada and SPARK languages. The library also provides some middleware services and drivers for external devices such as sensors. We intend this to be a location for both AdaCore and the community in general to contribute support for additional processors, platforms, and vendors.

2. Supported hardware

Ada_Drivers_Library provides support for various devices in the ARM Cortex-M and RISC-V architectures. Some devices are only partially supported. Go to the boards directory for a list of supported hardware.

3. Getting started

To start using the Ada_Drivers_Library, please go to the examples directory where you will find instructions to run your first project.

4. License

All files are provided under a 3-clause Berkeley Software Distribution (BSD) license. As such, and within the conditions required by the license, the files are available both for proprietary ("commercial") and non-proprietary use.

For details, see the LICENSE file in the root directory.

5. Requirements

The software is written in Ada 2012 and uses, for example, preconditions, postconditions, and the high-level iterator form of for-loops.

In addition, a GNAT implementation-defined pragma is used extensively. This pragma makes it possible to avoid explicit temporary copies when assigning components of types representing hardware registers requiring full word or full half-word accesses. The pragma is named Volatile_Full_Access. Those persons wishing to submit additions to the library should see the GNAT Reference Manual for details.

Therefore, building with the sources requires a compiler supporting both Ada 2012 and the GNAT-defined pragma Volatile_Full_Access. For instance a recent GNAT Pro compiler or GNAT Community 2018 for ARM ELF or RISC-V ELF (Download here).

6. Roadmap

Here is a list of projects that we are either dreaming about or already working on. If you are interested by one of those, please contact us on the project's GitHub page.

  • ARM
  • STM32F4/7 USB drivers
  • Components
  • BlueNRG-MS (Bluetooth Low Energy Network Processor)
  • Services
  • Bluetooth Low Energy stack
  • USB stack

7. Project using the Ada_Drivers_Library

(Add yours to the list!)

You can’t perform that action at this time.