{"id":13411182,"url":"https://github.com/AdaCore/Ada_Drivers_Library","last_synced_at":"2025-03-14T16:34:11.488Z","repository":{"id":37821265,"uuid":"43378137","full_name":"AdaCore/Ada_Drivers_Library","owner":"AdaCore","description":"Ada source code and complete sample GNAT projects for selected bare-board platforms supported by GNAT.","archived":false,"fork":false,"pushed_at":"2024-06-27T15:49:40.000Z","size":19358,"stargazers_count":238,"open_issues_count":19,"forks_count":141,"subscribers_count":58,"default_branch":"master","last_synced_at":"2024-07-31T20:45:07.294Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdaCore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-29T16:00:11.000Z","updated_at":"2024-07-31T14:37:54.000Z","dependencies_parsed_at":"2024-05-03T01:54:28.054Z","dependency_job_id":"5379c170-6589-4898-acdc-98dd996412d2","html_url":"https://github.com/AdaCore/Ada_Drivers_Library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdaCore%2FAda_Drivers_Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdaCore%2FAda_Drivers_Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdaCore%2FAda_Drivers_Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdaCore%2FAda_Drivers_Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdaCore","download_url":"https://codeload.github.com/AdaCore/Ada_Drivers_Library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221486919,"owners_count":16830966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T20:01:11.989Z","updated_at":"2024-10-26T02:30:50.531Z","avatar_url":"https://github.com/AdaCore.png","language":"Ada","funding_links":[],"categories":["Hardware and Embedded","Ada","Libraries"],"sub_categories":["Drivers"],"readme":"[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/ada-lang/Ada_Drivers_Library)\n![CI status](https://github.com/AdaCore/Ada_Drivers_Library/actions/workflows/main.yml/badge.svg)\n  \n# 1. Introduction\n\nThis repository contains drivers and sample projects to program\nmicro-controllers with the Ada and SPARK languages. The library also provides\nsome middleware services and drivers for external devices such as sensors. We\nintend this to be a location for both AdaCore and the community in general to\ncontribute support for additional processors, platforms, and vendors.\n\n# 2. Supported hardware\n\nAda_Drivers_Library provides support for various devices in the ARM Cortex-M\nand RISC-V architectures. Some devices are only partially supported. Go to the\n[boards directory](boards/) for a list of supported hardware.\n\n## Board list\n\n| Arch   | Board                 |\n| ------ | --------------------- |\n| ARM    | [STM32F407_Discovery] |\n| ARM    | [STM32F429_Discovery] |\n| ARM    | [STM32F469_Discovery] |\n| ARM    | [STM32F4XX_M]         |\n| ARM    | [STM32_F4VE]          |\n| ARM    | [STM32F746_Discovery] |\n| ARM    | [STM32F769_Discovery] |\n| ARM    | [STM32_H405]          |\n| ARM    | [NUCLEO_F446ZE]       |\n| ARM    | [Crazyflie]           |\n| ARM    | [Feather_STM32F405]   |\n| ARM    | [OpenMV2]             |\n| ARM    | [MicroBit]            |\n| ARM    | [NRF52_DK]            |\n| RISC-V | [HiFive1]             |\n| RISC-V | [HiFive1_rev_B]       |\n| RISC-V | [Unleashed]           |\n|        | [Native]              |\n\n\u003c!-- Examples: --\u003e\n[HiFive1]:             examples/HiFive1/README.md\n[HiFive1_rev_B]:       examples/HiFive1_rev_B/README.md\n[MicroBit]:            examples/MicroBit/README.md\n[NRF52_DK]:            examples/NRF52_DK/README.md\n[OpenMV2]:             examples/OpenMV2/README.md\n[STM32F429_Discovery]: examples/STM32F429_Discovery/README.md\n[STM32F469_Discovery]: examples/STM32F469_Discovery/README.md\n[STM32F407_Discovery]: examples/STM32F4_DISCO/README.md\n[STM32_F4VE]:          examples/stm32_f4ve/README.md\n[STM32F4XX_M]:         examples/stm32f4xx_m/README.md\n[STM32F746_Discovery]: examples/STM32F746_Discovery/README.md\n[STM32F769_Discovery]: examples/STM32F769_Discovery/README.md\n\n\u003c!-- Undocumented: --\u003e\n[STM32_H405]:        examples/stm32_h405/\n[NUCLEO_F446ZE]:     examples/nucleo_f446ze/\n[Feather_STM32F405]: examples/feather_stm32f405\n[Crazyflie]:         boards/crazyflie/\n[Unleashed]:         examples/Unleashed\n[Native]:            boards/native\n\n# 3. Getting started\n\nTo start using the Ada_Drivers_Library, please go to the [examples\ndirectory](examples/) where you will find instructions to run your first\nproject.\n\n# 4. License\n\nAll files are provided under a 3-clause Berkeley Software Distribution (BSD)\nlicense. As such, and within the conditions required by the license, the files\nare available both for proprietary (\"commercial\") and non-proprietary use.\n\nFor details, see the `LICENSE` file in the root directory.\n\n# 5. Requirements\n\nThe software is written in Ada 2012 and uses, for example, preconditions,\npostconditions, and the high-level iterator form of for-loops.\n\nIn addition, a GNAT implementation-defined pragma is used extensively. This\npragma makes it possible to avoid explicit temporary copies when assigning\ncomponents of types representing hardware registers requiring full word or full\nhalf-word accesses. The pragma is named `Volatile_Full_Access`. Those persons\nwishing to submit additions to the library should see the GNAT Reference Manual\nfor details.\n\nTherefore, building with the sources requires a compiler supporting both Ada\n2012 and the GNAT-defined pragma `Volatile_Full_Access`. For instance a recent\nGNAT Pro compiler or GNAT FSF 12 for ARM ELF or RISC-V ELF [(Download\nhere)](https://github.com/alire-project/GNAT-FSF-builds/releases).\n\n# 6. Roadmap\n\nHere is a list of projects that we are either dreaming about or already working\non. If you are interested by one of those, please contact us on the project's\nGitHub page.\n\n* ARM\n * STM32F4/7 USB drivers\n* Components\n * BlueNRG-MS (Bluetooth Low Energy Network Processor)\n* Services\n * Bluetooth Low Energy stack\n * USB stack\n\n# 7. Project using the Ada_Drivers_Library\n\n * [Certyflie: Ada/SPARK flight controller for the Crazyflie 2.0](https://github.com/AdaCore/Certyflie)\n * [ACNC: A Gcode interpreter and CNC controller](https://github.com/Fabien-Chouteau/ACNC)\n * [AMCQ: Multiple Choice Questions candy dispenser](https://github.com/Fabien-Chouteau/AMCQ)\n * [Giza: Giza is trying to be a simple widget tool kit for embedded platforms](https://github.com/Fabien-Chouteau/Giza)\n * [solenoid-engine-controller: Software controller for solenoid engines](https://github.com/Fabien-Chouteau/solenoid-engine-controller)\n * [un_pola: DIY instant camera with OpenMV](https://github.com/Fabien-Chouteau/un_pola)\n * [bare metal demos: Various Ada Demos on STM32*-Disco boards using this library](https://github.com/lambourg/Ada_Bare_Metal_Demos)\n * [SPARK Railway Demo: Simulated railway network in SPARK/Ada](https://github.com/AdaCore/SPARK_Railway_Simulation_Demo)\n * [NXT Lego Robotics: Ada drivers and demos for Lego NXT sensors and motors](https://github.com/AdaCore/Robotics_with_Ada)\n * [Bosch 9DOF IMU demo: Bosch 9DOF IMU driving a 3-D model of a lunar lander](\nhttps://github.com/AdaCore/Lunar_Lander_Rotation_Demo)\n * [Bare metal sudoku solver](https://github.com/stangassinger/sudoku)\n * [Demo of an Ada physics engine](https://github.com/Kidev/DemoAdaPhysics2D)\n * [High Integrity Sumobot: A fully functional sumobot written in Ada/SPARK](https://github.com/bosepchuk/High_Integrity_Sumobot)\n * [RC Car: A remotely-controlled car built without the NXT Brick, written completely in Ada and SPARK](https://github.com/AdaCore/RC_Car_Demo)\n\n(Add yours to the list!)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAdaCore%2FAda_Drivers_Library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAdaCore%2FAda_Drivers_Library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAdaCore%2FAda_Drivers_Library/lists"}