Go to file
Maxim Reznik fd4e628835 Drop unused type (Orientation_Mode) from HAL.Bitmap 2023-12-06 16:38:32 +02:00
.github/workflows Limit Python version to 3.11 in the GitHub Action 2023-12-01 14:45:54 +02:00
arch Add SD card to stm32f4xx_m board 2023-12-06 16:38:32 +02:00
boards Move STM32.Board package for stm32f4xx_m 2023-12-06 16:38:32 +02:00
components Add more READMEs 2023-12-06 16:38:32 +02:00
docs Switch to GNAT FSF 12 support (#418) 2023-01-02 11:34:55 +01:00
examples Add SD card examples for `stm32f4xx_m`. 2023-12-06 16:38:32 +02:00
hal/src Drop unused type (Orientation_Mode) from HAL.Bitmap 2023-12-06 16:38:32 +02:00
middleware/src Community 2021 (#386) 2021-05-26 12:24:22 +02:00
scripts Add SD card examples for `stm32f4xx_m`. 2023-12-06 16:38:32 +02:00
testsuite Migration to GNAT Community 2020 2020-05-29 18:56:37 +02:00
.gitattributes .gitattributes: Add .fs and .bmp to the list of binary files 2018-03-09 12:05:18 +01:00
.gitignore Update HiFive1 example project for new board support projects 2018-05-29 15:59:40 -04:00
.gitmodules Remove the dependency over embedded-runtimes. 2017-06-26 18:16:05 +02:00
CONTRIBUTING.md
LICENSE
README.md Switch to GNAT FSF 12 support (#418) 2023-01-02 11:34:55 +01:00

README.md

Gitter chat CI 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 FSF 12 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!)