pico_xbsp 1.8.0 (#1979)

* pico_xbsp-1.8.0 and adacl_embedded

* pico_xbsp 1.8.0 (via `alr publish`)
This commit is contained in:
Martin Krischik
2026-06-22 11:36:25 +02:00
committed by GitHub
parent 4d5f8f874a
commit 4e91b54059
2 changed files with 164 additions and 0 deletions
@@ -0,0 +1,77 @@
name = "adacl_embedded"
description = "Ada Embedded Library"
long-description = """
## AdaCL Embedded - Lightweight Embedded Ada Library
AdaCL-Embedded focuses on embedded and real-time programming on the Raspberry Pi and similar platforms.
It favours predictability, minimal runtime overhead, and static data structures. Object-oriented programming, unbounded
strings, and wide strings are avoided or kept to an absolute minimum.
### Current Features
* **AdaCL.Embedded.Trace** - Interrupt-safe, lightweight tracing facility using a ring buffer.
### Configuration Options
* `Variant`
* `no_tasking` - for the lightest runtimes (no protected objects). Also works well with interrupt-driven runtimes.
* `tasking` - for runtimes with tasking support.
* `Event_Log_Buffer_Length` - maximum length of each trace line (default: 200, min: 1, max: 1024)
* `Event_Log_Buffer_Size` - number of entries in the ring buffer (default: 0, max: 1024, min: 0 (buffer disabled))
A text length of 200 is the standart minimum used in the Ada Standart (i.E. `Ada.Text_IO.Get_Line`, exception messages,
etc.pp).
Memory needed is approximately `(Event_Log_Buffer_Length + 4) * Event_Log_Buffer_Size` bytes, plus some overhead for the
buffer management. For example: 1024 buffer size with 200 line lenght is about the maximum size that can be used with
the static memory of Raspberry Pi Pico. The buffer size can be set to 0 to disable the trace buffer and the related code
completely.
Source: [SourceForge](https://sourceforge.net/p/adacl/git/ci/master/tree/adacl-embedded/src/)
Documentation: [GNATdoc](https://adacl-embedded.sourceforge.net/gnatdoc/adael/index.html)
"""
version = "7.1.1"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://sourceforge.net/projects/adacl/"
tags = ["library", "embedded", "trace", "logging", "raspberry-pi", "ada2022"]
[build-switches]
"*".ada_version = "Ada2022"
"*".source_encoding = "UTF_8"
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.debug_info = "Yes"
development.optimization = "Debug"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.debug_info = "No"
release.optimization = "Performance"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.debug_info = "Yes"
validation.optimization = "Debug"
validation.runtime_checks = "Everything"
[configuration.variables]
Variant = {type = "Enum", values = ["tasking", "no_tasking"], default = "no_tasking" }
Event_Log_Buffer_Length = {type = "Integer", first = 1, last = 1024, default = 200 }
Event_Log_Buffer_Size = {type = "Integer", first = 0, last = 1024, default = 0 }
# vim: set textwidth=120 wrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:4feddadbc5e900b65ccfa3bed4a4becb9afb9cc89ac3d865e0ea0ecf9477eee6",
"sha512:e611feee8b969e7bf3ca61033a70660ae389f06264ed94027d5d12a55ded8f2e9f44088155740182e627431f12b66753745faba18016f431490ce64f6868e43b",
]
url = "https://sourceforge.net/projects/adacl/files/Alire/adacl_embedded-7.1.1.tgz"
+87
View File
@@ -0,0 +1,87 @@
name = "pico_xbsp"
description = "Extended board support package for Raspberry Pi Pico"
long-description = """Extended board support package (XBSP) for the Raspberry Pi Pico.
This crate builds upon Jeremy Grosser's official pico_bsp and adds a growing set of clean, reusable components for Ada
developers targeting the RP2040. It is developed alongside the [Pi Ada
Tutorial](https://pi-ada-tutorial.sourceforge.io/) but is equally suitable for any standalone embedded Ada project.
Current components:
* Pico.Analog - Analogue GPIO using PWM
* Pico.Analog.RGB_LED - Analogue RGB LED control using PWM
* Pico.Debug_IO - Multi output interface for debug output
* Pico.Tone - Square-wave tone generation using PWM
* Pico.UART_IO - Simple UART text I/O for the Debug Probe (115200 8N1 on GP0/GP1)
* Pico.USB_IO - Simple USB text I/O for direct connection to a PC terminal
* Pico.Utils - Miscellaneous utilities
The crate is available in two variants:
* `no_tasking` (default) - small, fast, and compatible with the light runtime
* `tasking` - thread-safe using protected objects (requires a tasking runtime)
* Event_Log_Output
* "none" - deactivate output entirely.
* "swd" - use Ada.Text_IO which uses semihosting to output to GDB. Don't forget to activate with
`arm semihosting enable`.
* "usb" - use `Pico.USB_IO` which in turn uses `USB.Device.Serial` for output. You will need a serial terminal
to read the output.
* "uart" - use `Pico.UART_IO` which in turn uses `RP.UART` for output. You will need a Debug Probe or a RS232C to
USB interface as well as a serial terminal to read the output.
* USB_TX_Buffer_Size & USB_RX_Buffer_Size
Read and write buffers can be configured separately for greater flexibility.
The default value of 128 bytes equals two USB block sizes and enables reliable bulk transfers.
The minimum supported size is 64 bytes (one USB block). Larger multi-block transfers may fail if the buffer
is set too small.
All packages include full GNATdoc annotations.
Useful links:
* [GNATdoc documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc)
* [SourceForge repository](https://sourceforge.net/projects/pi-ada-tutorial/)
* [Tutorial homepage](https://pi-ada-tutorial.sourceforge.io/)
The library will continue to grow with each new tutorial chapter while remaining a clean, independent crate.
"""
version = "1.8.0"
licenses = "GPL-3.0-or-later"
authors = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers = ["Martin Krischik <krischik@users.sourceforge.net>"]
maintainers-logins = ["krischik"]
website = "https://pi-ada-tutorial.sourceforge.io/"
tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"]
[build-switches]
"*".ada_version = ["-gnat2022"]
development.compile_checks = "Warnings"
development.contracts = "Yes"
development.runtime_checks = "Overflow"
release.compile_checks = "Warnings"
release.contracts = "No"
release.runtime_checks = "Default"
validation.compile_checks = "Warnings"
validation.contracts = "Yes"
validation.runtime_checks = "Everything"
[[depends-on]]
adacl_embedded = "^7.1.2"
pico_bsp = "^2.2"
usb_embedded = "^1.0.0"
[configuration.variables]
Variant = {type = "Enum", values = ["tasking", "no_tasking"], default = "no_tasking"}
Event_Log_Output = {type = "Enum", values = ["none", "swd", "usb", "uart"], default = "none"}
USB_TX_Buffer_Size = {type = "Integer", first = 64, last = 1024 , default = 128}
USB_RX_Buffer_Size = {type = "Integer", first = 64, last = 1024 , default = 128}
# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab :
# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff :
# vim: set spell spelllang=en_gb :
[origin]
hashes = [
"sha256:bde7b8601f37d7002f7929fd003682941aa42c582e8cf268ba9139500d440c19",
"sha512:5807b90337e323729bc985ace234dfe51d2af190631c9829e0d7d3255c395d4dc7150b466caf9e8b845d098dd03bea2c3b90c9cea4dfe020da670ee84cc14c2c",
]
url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_xbsp-1.8.0.tgz"