* README.md - Add new readme indicating that this host program is only intended for the stream-based demo, and explaining how to use it * host.adb - Add much more comments in the header block explaining how to use this program and why it is needed - Parameterize the host port number instead of hard-coding it * demo_serial_port_blocking.adb - Use normalized (new) procedure names for Send and Receive, for consistency with other versions - Add comments re: baud rate and other settings required * demo_serial_port_nonblocking.adb - Better name for local procedure - Add many more comments re: settings * demo_serial_port_streaming.adb - Replace source code in comment header block with location of the actual code and project file. - Add comment re: serial port settings * peripherals_blocking.ads - Peripheral should be a constant - COM can now reference the designated USART, the component of Peripheral * peripherals_nonblocking.ads - Same as for peripherals_blocking.ads * peripherals_streaming.ads - Same as for peripherals_blocking.ads * serial_io-blocking.ads - Type Serial_Port now designates a USART rather than type Peripheral - No longer provide call through routines for the Serial_IO package's Initialize_Hardware and Configure since client can easily call them. Better separation of concerns as a result. - Change signatures of internal routines to be access-to-USART * serial_io-blocking.adb - Internal simplifications reflecting change to access discriminant now designating type USART - Remove code for Initialize_Hardware and Configure, per removal from package spec * serial_io-nonblocking.ads - Type Serial_Port now designates a USART rather than type Peripheral - No longer provide call through routines for Serial_IO packages Initialize_Hardware and Configure since client can easily do so, and simplifies this package - Change signatures of internal routines to be access-to-USART * serial_io-nonblocking.adb - Internal simplifications reflecting change to access discriminant now designating type USART - Remove code for Initialize_Hardware and Configure, per removal from package spec - Use short-circuit control forms in ISR since don't need to check both conditions, should be a little faster * serial_io-streaming.ads - Type Serial_Port now designates a USART rather than type Peripheral - No longer provide call through routines for Serial_IO packages Initialize_Hardware and Configure since client can easily do so, and simplifies this package - Change signatures of internal routines to be access-to-USART * serial_io-streaming.adb - Internal simplifications reflecting change to access discriminant now designating type USART - Remove code for Initialize_Hardware and Configure, per removal from package spec * serial_io.ads - Procedure Initialize_Hardware's formal parameter is no longer an access parameter - Procedure Configure's first formal parameter is now access to USART * serial_io.adb - Change to prcoedures' signatures as per spec - Procedure Configure now uses distinguished receiver syntax for USART routines, much cleaner
Ada_Drivers_Library examples
In this directory you will find instructions and examples to start your first Ada_Drivers_Library project.
The goals of the examples are:
- Offer a simple way to start a project
- Demonstrate the supported features of the boards
- Demonstrate the supported drivers of a micro-controller family
The examples are sorted by boards but some of them are working on multiple boards, in that case the code is stored in the shared directory.
Getting started
Download and install the tools
Compiler and IDE
Most of the boards/micro-controller supported are based on the ARM Cortex-M architecture. If you have a GNAT Pro subscription, you can download the compiler (GNAT) and IDE (GNAT Programming Studio) from your account. Otherwise, there are GNAT FSF and GPRbuild releases from the Alire project that you can download here.
A public release of GNAT Studio is also available here.
stlink
For the STM32 board we recommend to use the open-source probe interface stlink.
On Windows, you can get it from the Msys2 package manager.
On Linux, you have to download the source and compile the tool:
$ git clone https://github.com/texane/stlink.git
$ cd stlink
$ make release
Miscellaneous
Some boards require a specific tool or configuration, in that case you will find the additional instructions in the example directory dedicated to this board (for instance Micro:bit).
Clone the repository
If you are on Windows, we recommend to use the GitHub Desktop application.
Otherwise, from the command line:
git clone --recursive https://github.com/AdaCore/Ada_Drivers_Library.git
Open an example project
Start GNAT Programming Studio and open one of the project supported by the board you have:
- HiFive1
- MicroBit
- OpenMV2
- STM32F429_Discovery
- STM32F469_Discovery
- STM32F4_DISCO
- STM32F746_Discovery
- STM32F769_Discovery
- stm32f4xx_m
Compile the project
Use the "Build all" button in GNAT Programming Studio tool bar.
Run the project
For the STM32 board, use the "Flash to board" button in the tool bar.
We need your help
If you notice an error in these instructions, or if you want to improve them, please go to Ada_Drivers_Library GitHub repository. Thank you in advance.