Andry Ogorodnik 67c12835ec Fix for the Si4432 radio module
Fixed Set_Frequency_Deviation and Send to set one bit in registers
properly.

Added Write_FIFO and Read_FIFO for fixed packet length cases.
2026-01-05 00:45:27 +02:00
2023-01-02 11:34:55 +01:00
2021-05-26 12:24:22 +02:00
2017-02-22 18:03:18 +01:00
2023-12-06 16:38:32 +02:00

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.

Board list

Arch Board
ARM STM32F407_Discovery
ARM STM32F429_Discovery
ARM STM32F469_Discovery
ARM STM32F4XX_M
ARM STM32_F4VE
ARM STM32F746_Discovery
ARM STM32F769_Discovery
ARM STM32_H405
ARM NUCLEO_F446ZE
ARM Crazyflie
ARM Feather_STM32F405
ARM OpenMV2
ARM MicroBit
ARM NRF52_DK
RISC-V HiFive1
RISC-V HiFive1_rev_B
RISC-V Unleashed
Native

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!)

Description
No description provided
Readme BSD-3-Clause 21 MiB
Languages
Ada 99%
Python 0.7%
Assembly 0.3%