community-bb-runtimes 15.4.0 (#1908)

This commit is contained in:
Daniel King
2026-05-11 11:34:46 +01:00
committed by GitHub
parent f02e58e864
commit 75537c14bb
27 changed files with 2520 additions and 0 deletions
@@ -0,0 +1,59 @@
name = "embedded_nrf52832"
description = "embedded runtime for the NRF52832 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_nrf52832` in the dependency list:
```toml
[[depends-on]]
embedded_nrf52832 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:83c2fb73dc72afd36500d84afb9948d02b0b04f8816477b46c47e181082efca9",
"sha512:61afce85625961f6c36c1a3f459a71bb40cc26c57b07020de7600a5aa4c96caf141fdd37bddf9948321e14cbb9f59d0223e98c460e62e894aa4d422d4b150f4e",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-nrf52832-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "embedded_nrf52833"
description = "embedded runtime for the NRF52833 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_nrf52833` in the dependency list:
```toml
[[depends-on]]
embedded_nrf52833 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:3c34302871b00649cfd07a37f077403d01999abce16b81c0de6939294dd2faec",
"sha512:949a741f02af53565e003bd3ff3c9cdcb3e805646c0224c50b8833a1e9aa0f0d049ecd523b4cf973749f5ad92fbc62ee5346d851a0e1726b00d8a817e0d1d233",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-nrf52833-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "embedded_nrf52840"
description = "embedded runtime for the NRF52840 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_nrf52840` in the dependency list:
```toml
[[depends-on]]
embedded_nrf52840 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:3ed9d5d5a9964673ac0978c72ca333213a07f3e7efc4bd3f8d0d5561da2af31b",
"sha512:4b40f1494f779111293dfdcb0d257ebc7d21c8723d4a14c5b1ecf510b62fcbf503c341e1d97254a31f5eda1b4f09829ca79cabe270fb335270c1752c6cb793f6",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-nrf52840-15.4.0.tar.gz"
@@ -0,0 +1,73 @@
name = "embedded_nrf54l_app"
description = "embedded runtime for the nRF54L series"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_nrf54l_app` in the dependency list:
```toml
[[depends-on]]
embedded_nrf54l_app = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files:
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use Runtime_Build'Target;
for Runtime ("Ada") use Runtime_Build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that the linker switch `-Wl,--gc-sections` is optional, but its use is
recommended since it reduces the final size of the executable by removing
unused code.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
Device = { type = "Enum", values = ["nRF54L05", "nRF54L10", "nRF54L15", "nRF54LS05A", "nRF54LS05B", "nRF54LV10A", "nRF54LM20A", "nRF54LM20B"], default = "nRF54L15" }
MCU_Domain_Speed = { type = "Enum", values = ["CK64M", "CK128M"], default = "CK64M" }
Time_Base_GRTC_IRQ = { type = "Integer", first = 0, last = 3, default = 3 }
Time_Base_GRTC_CCn = { type = "Integer", first = 0, last = 11, default = 11}
Security_Level = { type = "Enum", values = [ "Secure", "Non_Secure" ], default = "Secure" }
LFCLK_Src = { type = "Enum", values = ["LFXO", "LFRC", "LFSYNT"], default = "LFXO" }
Enable_SWO = { type = "Boolean", default = true }
Enable_Trace = { type = "Boolean", default = false }
Enable_Glitch_Detector = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:ae83d53d7660d5a6fe9be95d60979a8e78b882cdf107a63a4814dbbcbd390232",
"sha512:fc1030019943bc23ca897dd10927b5963d8dc98447aa50c26e870201e0e14803a85b5a8047d84df80b01fed2aedd648d4d1216cd7cc1fda95f5ada94d3735bd8",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-nrf54l_app-15.4.0.tar.gz"
@@ -0,0 +1,92 @@
name = "embedded_rp2040"
description = "embedded runtime for the RP2040 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_rp2040` in the dependency list:
```toml
[[depends-on]]
embedded_rp2040 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that `--gc-switches` is recommended as it reduces flash and RAM usage
by removing unused code and data, but it is not mandatory.
See the project website for details on configuring the runtime.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
# Configures how many of the two cores the runtime uses
Max_CPUs = { type = "Integer", first = 1, last = 2, default = 2 }
# Configures which ALARM the runtime uses to implement the semantics of
# Ada.Real_Time
Time_Base = { type = "Enum", values = ["ALARM0", "ALARM1", "ALARM2", "ALARM3"], default = "ALARM3" }
# Configures the runtime for a specific board.
# For "generic" boards, the board characteristics (flash chip, XOSC frequency)
# can be configured manually.
Board = { type = "Enum", values = [ "generic_board", "rpi_pico", "adafruit_feather_rp2040", "adafruit_itsybitsy_rp2040", "adafruit_macropad_rp2040", "adafruit_qt2040_trinkey", "adafruit_qtpy_rp2040", "arduino_nano_rp2040_connect", "pimoroni_interstate75", "pimoroni_keybow2040", "pimoroni_pga2040", "pimoroni_picolipo_4m", "pimoroni_picolipo_16m", "pimoroni_picosystem", "pimoroni_plasma2040", "pimoroni_tiny2040", "sparkfun_micromod", "sparkfun_promicro", "sparkfun_thingplus" ], default = "rpi_pico" }
# These configure the board parameters for when Board is "generic_board".
# These are ignored when Board is not "generic_board".
XOSC_Frequency = { type = "Integer", first = 0, default = 12000000 }
XOSC_Startup_Delay_Mult = { type = "Integer", first = 1, last = 16383, default = 64 }
Flash_Chip = { type = "Enum", values = [ "generic_qspi_128", "at25sf128a", "gd25q64c", "w25q16jv", "w25q32jv", "w25q64jv", "w25q128jv"], default = "generic_qspi_128" }
# Clock configuration
PLL_Sys_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_Sys_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 125 }
PLL_Sys_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 6 }
PLL_Sys_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
PLL_USB_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_USB_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 40 }
PLL_USB_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_USB_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:191471815a0470a4e6310e7549c19f4c8a26fffbe61c8c5f39b6d52f53ed2338",
"sha512:92c3475040ba85514e2b519a028cce72f743158752f50ba9b95465201492b6ea8ae3fa7cf721bfb8893b8655de2cb0f60fb76ff63de5d5982cbbdaac4650b8fe",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-rp2040-15.4.0.tar.gz"
@@ -0,0 +1,96 @@
name = "embedded_rp2350"
description = "embedded runtime for the RP2350 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_rp2350` in the dependency list:
```toml
[[depends-on]]
embedded_rp2350 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that `--gc-switches` is recommended as it reduces flash and RAM usage
by removing unused code and data, but it is not mandatory.
See the project website for details on configuring the runtime.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
# Configures how many of the two cores the runtime uses
Max_CPUs = { type = "Integer", first = 1, last = 2, default = 2 }
# Configures the Arm security level that the partition will run at (Secure or Non-Secure)
Security_Level = { type = "Enum", values = [ "Secure", "Non_Secure" ], default = "Secure" }
# Configures which ALARM the runtime uses to implement the semantics of
# Ada.Real_Time
Time_Base_Timer = { type = "Enum", values = [ "TIMER0", "TIMER1" ], default = "TIMER0" }
Time_Base_Alarm = { type = "Enum", values = [ "ALARM0", "ALARM1", "ALARM2", "ALARM3" ], default = "ALARM3" }
# Configures the runtime for a specific board.
# For "generic" boards, the board characteristics (flash chip, XOSC frequency)
# can be configured manually.
Board = { type = "Enum", values = [ "generic_board", "rpi_pico2", "pimoroni_pico_lipo_2_xl_w", "pimoroni_pico_plus_2", "pimoroni_plasma_2350", "pimoroni_tiny_2350", "pimoroni_rp2350_stamp_xl", "pimoroni_rp2350_stamp", "pimoroni_pga2350", "adafruit_feather_rp2350", "adafruit_metro_rp2350", "adafruit_fruit_jam" ], default = "rpi_pico2" }
# These configure the board parameters for when Board is "generic_board".
# These are ignored when Board is not "generic_board".
XOSC_Frequency = { type = "Integer", first = 0, default = 12000000 }
XOSC_Startup_Delay_Mult = { type = "Integer", first = 1, last = 16383, default = 64 }
Flash_Size = { type = "Integer", first = 2, last = 16, default = 2 }
# Clock configuration
PLL_Sys_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_Sys_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 125 }
PLL_Sys_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_Sys_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
PLL_USB_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_USB_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 40 }
PLL_USB_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_USB_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:68793f131710b9ed067da02d704dd8e8fda0c3c1a8da3b9d9fef0015be8f5fc5",
"sha512:6efd40eac8e71868712e20564328c280d5a3f6ee49143c8661026bb801f00f8c93a5c515bab7356639bb02d7931c8fb66e7190aa4efa8e17072b24f72620667d",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-rp2350-15.4.0.tar.gz"
@@ -0,0 +1,115 @@
name = "embedded_stm32f0xx"
description = "embedded runtime for the STM32F0XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_stm32f0xx` in the dependency list:
```toml
[[depends-on]]
embedded_stm32f0xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32F072RB. If your board has
a different MCU, then you will need to specify which MCU you are using via
the crate configuration. For example, to configure the runtime for the
STM32F030F4, add the following to your `alire.toml`:
```toml
[configuration.values]
embedded_stm32f0xx.MCU_Sub_Family = "F030"
embedded_stm32f0xx.MCU_Pin_Count = "F"
embedded_stm32f0xx.MCU_User_Code_Memory_Size = "4"
```
By default, the runtime configures the clock tree for a 48 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 32 MHz system clock from a 16 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 16 MHz HSE crystal oscillator
embedded_stm32f0xx.HSE_Clock_Frequency = 16000000
embedded_stm32f0xx.HSE_Bypass = false
# Use the PLL as the SYSCLK source
embedded_stm32f0xx.SYSCLK_Src = "PLL"
# Configure the PLL input for a 16 MHz input from the HSE
embedded_stm32f0xx.PLL_Src = "HSE_PREDIV"
embedded_stm32f0xx.PREDIV = 1
# Configure the PLL to output 32 MHz (16 MHz * 2)
embedded_stm32f0xx.PLLMUL = 2
# Configure the AHB an APB to also run at 32 MHz
embedded_stm32f0xx.AHB_Pre = "DIV1"
embedded_stm32f0xx.APB_Pre = "DIV1"
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32f0"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["F030", "F031", "F038", "F042", "F048", "F051", "F058", "F070", "F071", "F072", "F078", "F091", "F098"], default = "F072" }
MCU_Pin_Count = { type = "Enum", values = ["C", "E", "F", "G", "K", "R", "V"], default = "R" }
MCU_User_Code_Memory_Size = { type = "String", default = "B" }
LSI_Enabled = { type = "Boolean", default = true }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 1, last = 32000000, default = 8000000 }
SYSCLK_Src = { type = "Enum", values = ["HSI", "HSE", "PLL", "HSI48"], default = "PLL" }
PLL_Src = { type = "Enum", values = ["HSI_2", "HSI_PREDIV", "HSE_PREDIV", "HSI48_PREDIV"], default = "HSI_2"}
PREDIV = { type = "Integer", first = 1, last = 16, default = 2 }
PLLMUL = { type = "Integer", first = 2, last = 16, default = 12 }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV2" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:63329b342125eba1b9fcb0ffbe2800340388bfb00c509ec9fa802043dda2fc1d",
"sha512:9b3e857612150bd7568164f39f0b37f1b5c71c20c74d42cd4ff0461a7b3cbf022355b5b90ad6d84cd1f206208918be40d5f5be423218441e9c2f0778ff0b7fb5",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-stm32f0xx-15.4.0.tar.gz"
@@ -0,0 +1,145 @@
name = "embedded_stm32g0xx"
description = "embedded runtime for the STM32G0XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_stm32g0xx` in the dependency list:
```toml
[[depends-on]]
embedded_stm32g0xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32G0B1RE. If your board has
a different MCU, then you will need to specify which MCU you are using via
the crate configuration. For example, to configure the runtime for the
STM32G031J4, add the following to your `alire.toml`:
```toml
[configuration.values]
embedded_stm32g0xx.MCU_Sub_Family = "G031"
embedded_stm32g0xx.MCU_Flash_Memory_Size = "4"
```
By default, the runtime configures the clock tree for a 64 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 64 MHz system clock from a 24 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 24 MHz HSE crystal oscillator
light_tasking_stm32g0xx.HSE_Clock_Frequency = 24000000
light_tasking_stm32g0xx.HSE_Bypass = false
# Select PLLRCLK as the SYSCLK source
light_tasking_stm32g0xx.SYSCLK_Src = "PLLRCLK"
# Configure the PLL VCO to run at 128 MHz from the 24 MHz HSE (fVCO = fHSE * (N/M))
light_tasking_stm32g0xx.PLL_Src = "HSE"
light_tasking_stm32g0xx.PLL_N_Mul = 10
light_tasking_stm32g0xx.PLL_M_Div = 2
# Configure the PLLRCLK to run at 64 MHz from the 128 MHz VCO.
light_tasking_stm32g0xx.PLL_R_Div = 2
# Configure the AHB an APB to also run at 64 MHz
light_tasking_stm32g0xx.AHB_Pre = "DIV1"
light_tasking_stm32g0xx.APB_Pre = "DIV1"
```
The runtime will generate a compile time error when an invalid PLL configuration
is set.
By default the PLL's Q and P clocks are enabled. If you don't need them, then you
can disable them via the crate configuration:
```toml
[configuration.values]
embedded_stm32g0xx.PLL_Q_Enable = false
embedded_stm32g0xx.PLL_P_Enable = false
```
The runtime will enable the PLL only when either `PLL_Q_Enable` or `PLL_P_Enable`
is `true`, or when `SYSCLK_Src = "PLLRCLK"`.
The interrupt stack sizes are also configurable:
```toml
[configuration.values]
embedded_stm32g0xx.Interrupt_Stack_Size = 1024
embedded_stm32g0xx.Interrupt_Secondary_Stack_Size = 128
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32g0"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["G030", "G031", "G041", "G050", "G051", "G061", "G070", "G071", "G081", "G0B0", "G0B1", "G0C1"], default = "G0B1" }
MCU_Flash_Memory_Size = { type = "String", default = "B" }
RAM_Parity_Check = { type = "Enum", values = ["Disabled", "Enabled"], default = "Disabled" }
LSI_Enabled = { type = "Boolean", default = true }
LSE_Enabled = { type = "Boolean", default = false }
LSE_Bypass = { type = "Boolean", default = false }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 1, last = 48000000, default = 8000000 }
PLL_Src = { type = "Enum", values = ["HSE", "HSI16"], default = "HSI16" }
PLL_M_Div = { type = "Integer", first = 1, last = 8, default = 2 }
PLL_N_Mul = { type = "Integer", first = 8, last = 86, default = 16 }
PLL_R_Div = { type = "Integer", first = 2, last = 8, default = 2 }
PLL_Q_Div = { type = "Integer", first = 2, last = 8, default = 2 }
PLL_P_Div = { type = "Integer", first = 2, last = 32, default = 2 }
PLL_Q_Enable = { type = "Boolean", default = true }
PLL_P_Enable = { type = "Boolean", default = true }
HSI_Div = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV32", "DIV64", "DIV128"], default = "DIV1" }
SYSCLK_Src = { type = "Enum", values = ["LSE", "LSI", "HSE", "PLLRCLK", "HSISYS"], default = "PLLRCLK" }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:460216956823c4a7a5c79242d63fbf4064dafeb1532d8b900a9a3b7cdc8f428a",
"sha512:cf306101bf57b34f2aca0162d94770fe0dfd742da28a3d9a438d6140390e3ef9dab3f056e9a1a9c20d2457a41e5a9d16e288e0ee60e007ea208c36a83adc2027",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-stm32g0xx-15.4.0.tar.gz"
@@ -0,0 +1,144 @@
name = "embedded_stm32g4xx"
description = "embedded runtime for the STM32G4XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `embedded_stm32g4xx` in the dependency list:
```toml
[[depends-on]]
embedded_stm32g4xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32G474RE. If you are using
a different MCU, then you will need to configure the runtime by adding the
following to your `alire.toml`. For example, to configure the runtime for the
STM32G431K6:
```toml
[configuration.values]
embedded_stm32g4xx.MCU_Sub_Family = "G431"
embedded_stm32g4xx.MCU_Flash_Memory_Size = "6"
```
By default, the runtime configures the clock tree for a 170 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 170 MHz system clock from a 24 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 24 MHz HSE crystal oscillator
embedded_stm32g4xx.HSE_Clock_Frequency = 24000000
embedded_stm32g4xx.HSE_Bypass = false
# Select PLLRCLK as the SYSCLK source
embedded_stm32g4xx.SYSCLK_Src = "PLLRCLK"
# Configure the PLL VCO to run at 340 MHz from the 24 MHz HSE (fVCO = fHSE * (N/M))
embedded_stm32g4xx.PLL_Src = "HSE"
embedded_stm32g4xx.PLL_N_Mul = 85
embedded_stm32g4xx.PLL_M_Div = 6
# Configure the PLLRCLK to run at 170 MHz from the 340 MHz VCO.
embedded_stm32g4xx.PLL_R_Div = 2
# Configure the AHB and APB to also run at 170 MHz
embedded_stm32g4xx.AHB_Pre = "DIV1"
embedded_stm32g4xx.APB1_Pre = "DIV1"
embedded_stm32g4xx.APB2_Pre = "DIV1"
```
The runtime will generate a compile time error when an invalid PLL configuration
is set.
By default the PLL's Q and P clocks are enabled. If you don't need them, then you
can disable them via the crate configuration:
```toml
[configuration.values]
embedded_stm32g4xx.PLL_Q_Enable = false
embedded_stm32g4xx.PLL_P_Enable = false
```
The runtime will enable the PLL only when either `PLL_Q_Enable` or `PLL_P_Enable`
is `true`, or when `SYSCLK_Src = "PLLRCLK"`.
The interrupt stack sizes are also configurable:
```toml
[configuration.values]
embedded_stm32g4xx.Interrupt_Stack_Size = 1024
embedded_stm32g4xx.Interrupt_Secondary_Stack_Size = 128
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32g4"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["G431", "G441", "G491", "G4A1", "G473", "G483", "G474", "G484"], default = "G474" }
MCU_Flash_Memory_Size = { type = "String", default = "E" }
LSI_Enabled = { type = "Boolean", default = true }
LSE_Enabled = { type = "Boolean", default = false }
LSE_Bypass = { type = "Boolean", default = false }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 4000000, last = 48000000, default = 24000000 }
PLL_Src = { type = "Enum", values = ["HSE", "HSI16"], default = "HSI16" }
PLL_M_Div = { type = "Integer", first = 1, last = 16, default = 4 }
PLL_N_Mul = { type = "Integer", first = 8, last = 127, default = 85 }
PLL_R_Div = { type = "Enum", values = ["DIV2", "DIV4", "DIV6", "DIV8"], default = "DIV2" }
PLL_Q_Div = { type = "Enum", values = ["DIV2", "DIV4", "DIV6", "DIV8"], default = "DIV2" }
PLL_P_Div = { type = "Integer", first = 2, last = 31, default = 2 }
PLL_Q_Enable = { type = "Boolean", default = true }
PLL_P_Enable = { type = "Boolean", default = true }
SYSCLK_Src = { type = "Enum", values = ["HSI16", "HSE", "PLLRCLK"], default = "PLLRCLK" }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB1_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
APB2_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:b4fd8e5467dcd0737b0e7f2facce319dd0b181f36f7d7c7cb3ee51359f0f3e8c",
"sha512:64c4ec0d6b631e37fe8fba2ed5a31e37f45fea0adf537aabb23097d2ae1a146fa687f41fbe7c426f7f5cd19cc789bb7df6e22516bc6b53eb75195d2f362c5141",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/embedded-stm32g4xx-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "light_nrf52832"
description = "light runtime for the NRF52832 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_nrf52832` in the dependency list:
```toml
[[depends-on]]
light_nrf52832 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:122614ca99f51d738584fd506b59f74e5cda0e16ea13247aca33f6f6b3f114a3",
"sha512:b45b44bcfa571035eeb9879df21f86da6fe065eb18e4b389bc25f715d2338b08876a3cfc71c919405f8e78f32edccff672f57637203f1f01556e126938a01015",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-nrf52832-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "light_nrf52833"
description = "light runtime for the NRF52833 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_nrf52833` in the dependency list:
```toml
[[depends-on]]
light_nrf52833 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:d11530618b1d3ed28098582d1cd7bba3ffc821bece0ce319bbd2f91b2284c450",
"sha512:8ac33621552759feb8cacc1a04180dcbad95bd4ff2cad147abf8f14420ded029dd8b5271fd559bb0a13cde4258fb8f2c02ce358b6918d40511c4fbeb7e775502",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-nrf52833-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "light_nrf52840"
description = "light runtime for the NRF52840 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_nrf52840` in the dependency list:
```toml
[[depends-on]]
light_nrf52840 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:95c129cca10fa7c4b8cce2908507f39ee5e7947f6bd6f596646816378a3cf1ed",
"sha512:8ddec5d81c238993f8c12e42c48321c99b0e460c01ddd6cffe8cff82d96d6c73bc8850cf03d308b7909a6bf92435ecc56a35a9ae23092f19a81c0a0b5cc50332",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-nrf52840-15.4.0.tar.gz"
@@ -0,0 +1,72 @@
name = "light_nrf54l_app"
description = "light runtime for the nRF54L series"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_nrf54l_app` in the dependency list:
```toml
[[depends-on]]
light_nrf54l_app = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files:
```ada
with "runtime_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use Runtime_Build'Target;
for Runtime ("Ada") use Runtime_Build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that the linker switch `-Wl,--gc-sections` is optional, but its use is
recommended since it reduces the final size of the executable by removing
unused code.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
Device = { type = "Enum", values = ["nRF54L05", "nRF54L10", "nRF54L15", "nRF54LS05A", "nRF54LS05B", "nRF54LV10A", "nRF54LM20A", "nRF54LM20B"], default = "nRF54L15" }
MCU_Domain_Speed = { type = "Enum", values = ["CK64M", "CK128M"], default = "CK64M" }
Time_Base_GRTC_IRQ = { type = "Integer", first = 0, last = 3, default = 3 }
Time_Base_GRTC_CCn = { type = "Integer", first = 0, last = 11, default = 11}
Security_Level = { type = "Enum", values = [ "Secure", "Non_Secure" ], default = "Secure" }
LFCLK_Src = { type = "Enum", values = ["LFXO", "LFRC", "LFSYNT"], default = "LFXO" }
Enable_SWO = { type = "Boolean", default = true }
Enable_Trace = { type = "Boolean", default = false }
Enable_Glitch_Detector = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:564931078f1d381429ca88b7265f67a894d315f9cf48a46abc107a8467da2c21",
"sha512:c27215713212d98bceb1d6d04218ab3507e50e75d180906514a9ee0fd1e7aca17d73a7112d78052ac29c6fac08037b13b14f4ca2a05d7269de0d3b109d110367",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-nrf54l_app-15.4.0.tar.gz"
@@ -0,0 +1,91 @@
name = "light_rp2040"
description = "light runtime for the RP2040 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_rp2040` in the dependency list:
```toml
[[depends-on]]
light_rp2040 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that `--gc-switches` is recommended as it reduces flash and RAM usage
by removing unused code and data, but it is not mandatory.
See the project website for details on configuring the runtime.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
# Configures how many of the two cores the runtime uses
Max_CPUs = { type = "Integer", first = 1, last = 1, default = 1 }
# Configures which ALARM the runtime uses to implement the semantics of
# Ada.Real_Time
Time_Base = { type = "Enum", values = ["ALARM0", "ALARM1", "ALARM2", "ALARM3"], default = "ALARM3" }
# Configures the runtime for a specific board.
# For "generic" boards, the board characteristics (flash chip, XOSC frequency)
# can be configured manually.
Board = { type = "Enum", values = [ "generic_board", "rpi_pico", "adafruit_feather_rp2040", "adafruit_itsybitsy_rp2040", "adafruit_macropad_rp2040", "adafruit_qt2040_trinkey", "adafruit_qtpy_rp2040", "arduino_nano_rp2040_connect", "pimoroni_interstate75", "pimoroni_keybow2040", "pimoroni_pga2040", "pimoroni_picolipo_4m", "pimoroni_picolipo_16m", "pimoroni_picosystem", "pimoroni_plasma2040", "pimoroni_tiny2040", "sparkfun_micromod", "sparkfun_promicro", "sparkfun_thingplus" ], default = "rpi_pico" }
# These configure the board parameters for when Board is "generic_board".
# These are ignored when Board is not "generic_board".
XOSC_Frequency = { type = "Integer", first = 0, default = 12000000 }
XOSC_Startup_Delay_Mult = { type = "Integer", first = 1, last = 16383, default = 64 }
Flash_Chip = { type = "Enum", values = [ "generic_qspi_128", "at25sf128a", "gd25q64c", "w25q16jv", "w25q32jv", "w25q64jv", "w25q128jv"], default = "generic_qspi_128" }
# Clock configuration
PLL_Sys_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_Sys_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 125 }
PLL_Sys_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 6 }
PLL_Sys_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
PLL_USB_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_USB_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 40 }
PLL_USB_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_USB_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:40e6b553a4bb1ba5aaafe44fd6903ef1b73fce77f80d2d5fcab999a63c904e8e",
"sha512:a30bcb1bec6a8a9546db84530f4a5dd925b7a40186b8adf6cd90e7ceffa8964c53451687def998384676666ea1c4b176d5e688865d6bb12ae1d7e1be3f9a64ec",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-rp2040-15.4.0.tar.gz"
@@ -0,0 +1,95 @@
name = "light_rp2350"
description = "light runtime for the RP2350 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_rp2350` in the dependency list:
```toml
[[depends-on]]
light_rp2350 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that `--gc-switches` is recommended as it reduces flash and RAM usage
by removing unused code and data, but it is not mandatory.
See the project website for details on configuring the runtime.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
# Configures how many of the two cores the runtime uses
Max_CPUs = { type = "Integer", first = 1, last = 1, default = 1 }
# Configures the Arm security level that the partition will run at (Secure or Non-Secure)
Security_Level = { type = "Enum", values = [ "Secure", "Non_Secure" ], default = "Secure" }
# Configures which ALARM the runtime uses to implement the semantics of
# Ada.Real_Time
Time_Base_Timer = { type = "Enum", values = [ "TIMER0", "TIMER1" ], default = "TIMER0" }
Time_Base_Alarm = { type = "Enum", values = [ "ALARM0", "ALARM1", "ALARM2", "ALARM3" ], default = "ALARM3" }
# Configures the runtime for a specific board.
# For "generic" boards, the board characteristics (flash chip, XOSC frequency)
# can be configured manually.
Board = { type = "Enum", values = [ "generic_board", "rpi_pico2", "pimoroni_pico_lipo_2_xl_w", "pimoroni_pico_plus_2", "pimoroni_plasma_2350", "pimoroni_tiny_2350", "pimoroni_rp2350_stamp_xl", "pimoroni_rp2350_stamp", "pimoroni_pga2350", "adafruit_feather_rp2350", "adafruit_metro_rp2350", "adafruit_fruit_jam" ], default = "rpi_pico2" }
# These configure the board parameters for when Board is "generic_board".
# These are ignored when Board is not "generic_board".
XOSC_Frequency = { type = "Integer", first = 0, default = 12000000 }
XOSC_Startup_Delay_Mult = { type = "Integer", first = 1, last = 16383, default = 64 }
Flash_Size = { type = "Integer", first = 2, last = 16, default = 2 }
# Clock configuration
PLL_Sys_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_Sys_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 125 }
PLL_Sys_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_Sys_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
PLL_USB_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_USB_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 40 }
PLL_USB_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_USB_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:c388076743026e0ab442b71c3851c86cd10ad6d8e04119c1175878772896b56a",
"sha512:9c163fefe9c27b9b2f59f67229eb5149bef1d519509c4c0fae32143bf0ccc30127542e2cccbe32cbad44f9b7574d6219708aa4cc3ba6cbe78ce2abb783b0dcc9",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-rp2350-15.4.0.tar.gz"
@@ -0,0 +1,114 @@
name = "light_stm32f0xx"
description = "light runtime for the STM32F0XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_stm32f0xx` in the dependency list:
```toml
[[depends-on]]
light_stm32f0xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32F072RB. If your board has
a different MCU, then you will need to specify which MCU you are using via
the crate configuration. For example, to configure the runtime for the
STM32F030F4, add the following to your `alire.toml`:
```toml
[configuration.values]
light_stm32f0xx.MCU_Sub_Family = "F030"
light_stm32f0xx.MCU_Pin_Count = "F"
light_stm32f0xx.MCU_User_Code_Memory_Size = "4"
```
By default, the runtime configures the clock tree for a 48 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 32 MHz system clock from a 16 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 16 MHz HSE crystal oscillator
light_stm32f0xx.HSE_Clock_Frequency = 16000000
light_stm32f0xx.HSE_Bypass = false
# Use the PLL as the SYSCLK source
light_stm32f0xx.SYSCLK_Src = "PLL"
# Configure the PLL input for a 16 MHz input from the HSE
light_stm32f0xx.PLL_Src = "HSE_PREDIV"
light_stm32f0xx.PREDIV = 1
# Configure the PLL to output 32 MHz (16 MHz * 2)
light_stm32f0xx.PLLMUL = 2
# Configure the AHB an APB to also run at 32 MHz
light_stm32f0xx.AHB_Pre = "DIV1"
light_stm32f0xx.APB_Pre = "DIV1"
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32f0"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["F030", "F031", "F038", "F042", "F048", "F051", "F058", "F070", "F071", "F072", "F078", "F091", "F098"], default = "F072" }
MCU_Pin_Count = { type = "Enum", values = ["C", "E", "F", "G", "K", "R", "V"], default = "R" }
MCU_User_Code_Memory_Size = { type = "String", default = "B" }
LSI_Enabled = { type = "Boolean", default = true }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 1, last = 32000000, default = 8000000 }
SYSCLK_Src = { type = "Enum", values = ["HSI", "HSE", "PLL", "HSI48"], default = "PLL" }
PLL_Src = { type = "Enum", values = ["HSI_2", "HSI_PREDIV", "HSE_PREDIV", "HSI48_PREDIV"], default = "HSI_2"}
PREDIV = { type = "Integer", first = 1, last = 16, default = 2 }
PLLMUL = { type = "Integer", first = 2, last = 16, default = 12 }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV2" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:fde018e10cf55e2cf54991d246e9ac42767b5a24db2c0958c6a2c86af9c8b649",
"sha512:2336fbef713b81ed3b5927a61b4e5098b5c41982c68362f901f124020b14e796a5cff857ad0b5e8b775282174da486779419e8bedb9083decaf86467f487e140",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-stm32f0xx-15.4.0.tar.gz"
@@ -0,0 +1,144 @@
name = "light_stm32g0xx"
description = "light runtime for the STM32G0XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_stm32g0xx` in the dependency list:
```toml
[[depends-on]]
light_stm32g0xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32G0B1RE. If your board has
a different MCU, then you will need to specify which MCU you are using via
the crate configuration. For example, to configure the runtime for the
STM32G031J4, add the following to your `alire.toml`:
```toml
[configuration.values]
light_stm32g0xx.MCU_Sub_Family = "G031"
light_stm32g0xx.MCU_Flash_Memory_Size = "4"
```
By default, the runtime configures the clock tree for a 64 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 64 MHz system clock from a 24 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 24 MHz HSE crystal oscillator
light_tasking_stm32g0xx.HSE_Clock_Frequency = 24000000
light_tasking_stm32g0xx.HSE_Bypass = false
# Select PLLRCLK as the SYSCLK source
light_tasking_stm32g0xx.SYSCLK_Src = "PLLRCLK"
# Configure the PLL VCO to run at 128 MHz from the 24 MHz HSE (fVCO = fHSE * (N/M))
light_tasking_stm32g0xx.PLL_Src = "HSE"
light_tasking_stm32g0xx.PLL_N_Mul = 10
light_tasking_stm32g0xx.PLL_M_Div = 2
# Configure the PLLRCLK to run at 64 MHz from the 128 MHz VCO.
light_tasking_stm32g0xx.PLL_R_Div = 2
# Configure the AHB an APB to also run at 64 MHz
light_tasking_stm32g0xx.AHB_Pre = "DIV1"
light_tasking_stm32g0xx.APB_Pre = "DIV1"
```
The runtime will generate a compile time error when an invalid PLL configuration
is set.
By default the PLL's Q and P clocks are enabled. If you don't need them, then you
can disable them via the crate configuration:
```toml
[configuration.values]
light_stm32g0xx.PLL_Q_Enable = false
light_stm32g0xx.PLL_P_Enable = false
```
The runtime will enable the PLL only when either `PLL_Q_Enable` or `PLL_P_Enable`
is `true`, or when `SYSCLK_Src = "PLLRCLK"`.
The interrupt stack sizes are also configurable:
```toml
[configuration.values]
light_stm32g0xx.Interrupt_Stack_Size = 1024
light_stm32g0xx.Interrupt_Secondary_Stack_Size = 128
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32g0"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["G030", "G031", "G041", "G050", "G051", "G061", "G070", "G071", "G081", "G0B0", "G0B1", "G0C1"], default = "G0B1" }
MCU_Flash_Memory_Size = { type = "String", default = "B" }
RAM_Parity_Check = { type = "Enum", values = ["Disabled", "Enabled"], default = "Disabled" }
LSI_Enabled = { type = "Boolean", default = true }
LSE_Enabled = { type = "Boolean", default = false }
LSE_Bypass = { type = "Boolean", default = false }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 1, last = 48000000, default = 8000000 }
PLL_Src = { type = "Enum", values = ["HSE", "HSI16"], default = "HSI16" }
PLL_M_Div = { type = "Integer", first = 1, last = 8, default = 2 }
PLL_N_Mul = { type = "Integer", first = 8, last = 86, default = 16 }
PLL_R_Div = { type = "Integer", first = 2, last = 8, default = 2 }
PLL_Q_Div = { type = "Integer", first = 2, last = 8, default = 2 }
PLL_P_Div = { type = "Integer", first = 2, last = 32, default = 2 }
PLL_Q_Enable = { type = "Boolean", default = true }
PLL_P_Enable = { type = "Boolean", default = true }
HSI_Div = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV32", "DIV64", "DIV128"], default = "DIV1" }
SYSCLK_Src = { type = "Enum", values = ["LSE", "LSI", "HSE", "PLLRCLK", "HSISYS"], default = "PLLRCLK" }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:d7de4264f03c00989ce8f46e4d81cccffe304262a453fff971ccad6c73611a4e",
"sha512:a6933f1381475d25194de515056747e752395c3a77f6703b3c43f2eece50c994151c6b6d847606aec76996b0da3baf8cb0c03851b67b8d934d35d5218c1f43c0",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-stm32g0xx-15.4.0.tar.gz"
@@ -0,0 +1,143 @@
name = "light_stm32g4xx"
description = "light runtime for the STM32G4XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_stm32g4xx` in the dependency list:
```toml
[[depends-on]]
light_stm32g4xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32G474RE. If you are using
a different MCU, then you will need to configure the runtime by adding the
following to your `alire.toml`. For example, to configure the runtime for the
STM32G431K6:
```toml
[configuration.values]
light_stm32g4xx.MCU_Sub_Family = "G431"
light_stm32g4xx.MCU_Flash_Memory_Size = "6"
```
By default, the runtime configures the clock tree for a 170 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 170 MHz system clock from a 24 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 24 MHz HSE crystal oscillator
light_stm32g4xx.HSE_Clock_Frequency = 24000000
light_stm32g4xx.HSE_Bypass = false
# Select PLLRCLK as the SYSCLK source
light_stm32g4xx.SYSCLK_Src = "PLLRCLK"
# Configure the PLL VCO to run at 340 MHz from the 24 MHz HSE (fVCO = fHSE * (N/M))
light_stm32g4xx.PLL_Src = "HSE"
light_stm32g4xx.PLL_N_Mul = 85
light_stm32g4xx.PLL_M_Div = 6
# Configure the PLLRCLK to run at 170 MHz from the 340 MHz VCO.
light_stm32g4xx.PLL_R_Div = 2
# Configure the AHB and APB to also run at 170 MHz
light_stm32g4xx.AHB_Pre = "DIV1"
light_stm32g4xx.APB1_Pre = "DIV1"
light_stm32g4xx.APB2_Pre = "DIV1"
```
The runtime will generate a compile time error when an invalid PLL configuration
is set.
By default the PLL's Q and P clocks are enabled. If you don't need them, then you
can disable them via the crate configuration:
```toml
[configuration.values]
light_stm32g4xx.PLL_Q_Enable = false
light_stm32g4xx.PLL_P_Enable = false
```
The runtime will enable the PLL only when either `PLL_Q_Enable` or `PLL_P_Enable`
is `true`, or when `SYSCLK_Src = "PLLRCLK"`.
The interrupt stack sizes are also configurable:
```toml
[configuration.values]
light_stm32g4xx.Interrupt_Stack_Size = 1024
light_stm32g4xx.Interrupt_Secondary_Stack_Size = 128
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32g4"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["G431", "G441", "G491", "G4A1", "G473", "G483", "G474", "G484"], default = "G474" }
MCU_Flash_Memory_Size = { type = "String", default = "E" }
LSI_Enabled = { type = "Boolean", default = true }
LSE_Enabled = { type = "Boolean", default = false }
LSE_Bypass = { type = "Boolean", default = false }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 4000000, last = 48000000, default = 24000000 }
PLL_Src = { type = "Enum", values = ["HSE", "HSI16"], default = "HSI16" }
PLL_M_Div = { type = "Integer", first = 1, last = 16, default = 4 }
PLL_N_Mul = { type = "Integer", first = 8, last = 127, default = 85 }
PLL_R_Div = { type = "Enum", values = ["DIV2", "DIV4", "DIV6", "DIV8"], default = "DIV2" }
PLL_Q_Div = { type = "Enum", values = ["DIV2", "DIV4", "DIV6", "DIV8"], default = "DIV2" }
PLL_P_Div = { type = "Integer", first = 2, last = 31, default = 2 }
PLL_Q_Enable = { type = "Boolean", default = true }
PLL_P_Enable = { type = "Boolean", default = true }
SYSCLK_Src = { type = "Enum", values = ["HSI16", "HSE", "PLLRCLK"], default = "PLLRCLK" }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB1_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
APB2_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:ad877fd3fed7535870fec136b3d6640c7eb0589291725b8924f7333d032e6c8d",
"sha512:061cd4e9a363d3a7c6684fe29c61f0c92f3ae6d260692640ccb369a1621b81246424d514a2b6cd912b78cf633b1f7a18e755e769e6099432946ceaabeb868aad",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-stm32g4xx-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "light_tasking_nrf52832"
description = "light-tasking runtime for the NRF52832 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_nrf52832` in the dependency list:
```toml
[[depends-on]]
light_tasking_nrf52832 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:4eb4342c0aafbd393c70a6979ada5baa65ff880b6e1216291572993a6b68b78e",
"sha512:751fc76da66d9904c53230afaba77522b87feb25ddb0ecee5cd41379987a2ff428717b7bd1dabaded9698409fc8162902b94433013f149a22537ced15125401f",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-nrf52832-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "light_tasking_nrf52833"
description = "light-tasking runtime for the NRF52833 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_nrf52833` in the dependency list:
```toml
[[depends-on]]
light_tasking_nrf52833 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:522f443c0872b9468a3690977e12839c0ccd8e2f33a1ac5ae19442b7bbeb9703",
"sha512:af3b58e4e783abf290c6a03f6d3e0bb2e2cdf86de34ae63c5d73e94b1dd5fcca36bddd91269a08d9010e92c5b80a793db76cafb381bea6444a2ea6d26aa20fad",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-nrf52833-15.4.0.tar.gz"
@@ -0,0 +1,59 @@
name = "light_tasking_nrf52840"
description = "light-tasking runtime for the NRF52840 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_nrf52840` in the dependency list:
```toml
[[depends-on]]
light_tasking_nrf52840 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project file. With this, gprbuild will compile the run-time before your application
```ada
with "$(runtime_proj_prefix)_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use $(runtime_proj_prefix)_build'Target;
for Runtime ("Ada") use $(runtime_proj_prefix)_build'Runtime ("Ada");
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_gpr = false
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
Time_Base = { type = "Enum", values = ["RTC0", "RTC1", "RTC2"], default = "RTC2" }
LFCLK_Src = { type = "Enum", values = ["Xtal", "RC", "Synth"], default = "Xtal" }
Use_SWO_Trace = { type = "Boolean", default = true }
Use_Reset_Pin = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:282681622cde67d02ed8a99aed419546b5652eaf4be5e63206c04ac73ff65df3",
"sha512:a0a928ba0f381af0340fa2cde4e8e588323009c91b228d4a3e205a45c2152b066e12f67e66648ac6ba881653562e9c6497ca53d2591a6c02f9967305b81b1d47",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-nrf52840-15.4.0.tar.gz"
@@ -0,0 +1,73 @@
name = "light_tasking_nrf54l_app"
description = "light-tasking runtime for the nRF54L series"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_nrf54l_app` in the dependency list:
```toml
[[depends-on]]
light_tasking_nrf54l_app = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files:
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use Runtime_Build'Target;
for Runtime ("Ada") use Runtime_Build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that the linker switch `-Wl,--gc-sections` is optional, but its use is
recommended since it reduces the final size of the executable by removing
unused code.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
Device = { type = "Enum", values = ["nRF54L05", "nRF54L10", "nRF54L15", "nRF54LS05A", "nRF54LS05B", "nRF54LV10A", "nRF54LM20A", "nRF54LM20B"], default = "nRF54L15" }
MCU_Domain_Speed = { type = "Enum", values = ["CK64M", "CK128M"], default = "CK64M" }
Time_Base_GRTC_IRQ = { type = "Integer", first = 0, last = 3, default = 3 }
Time_Base_GRTC_CCn = { type = "Integer", first = 0, last = 11, default = 11}
Security_Level = { type = "Enum", values = [ "Secure", "Non_Secure" ], default = "Secure" }
LFCLK_Src = { type = "Enum", values = ["LFXO", "LFRC", "LFSYNT"], default = "LFXO" }
Enable_SWO = { type = "Boolean", default = true }
Enable_Trace = { type = "Boolean", default = false }
Enable_Glitch_Detector = { type = "Boolean", default = true }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:e913d4092dcf219d04b3fe1ce8e4d7c8f43da99755d181fc6425c5efcb3ee3ed",
"sha512:51925529364c6bf79a4d9b5af2e9a00d24bdd78fefeb36bdb5595d08d037908098a4751ff5001fcb571412a74309bd5b044f0fd1519d787ee966a405f59518f2",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-nrf54l_app-15.4.0.tar.gz"
@@ -0,0 +1,92 @@
name = "light_tasking_rp2040"
description = "light-tasking runtime for the RP2040 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_rp2040` in the dependency list:
```toml
[[depends-on]]
light_tasking_rp2040 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that `--gc-switches` is recommended as it reduces flash and RAM usage
by removing unused code and data, but it is not mandatory.
See the project website for details on configuring the runtime.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
# Configures how many of the two cores the runtime uses
Max_CPUs = { type = "Integer", first = 1, last = 2, default = 2 }
# Configures which ALARM the runtime uses to implement the semantics of
# Ada.Real_Time
Time_Base = { type = "Enum", values = ["ALARM0", "ALARM1", "ALARM2", "ALARM3"], default = "ALARM3" }
# Configures the runtime for a specific board.
# For "generic" boards, the board characteristics (flash chip, XOSC frequency)
# can be configured manually.
Board = { type = "Enum", values = [ "generic_board", "rpi_pico", "adafruit_feather_rp2040", "adafruit_itsybitsy_rp2040", "adafruit_macropad_rp2040", "adafruit_qt2040_trinkey", "adafruit_qtpy_rp2040", "arduino_nano_rp2040_connect", "pimoroni_interstate75", "pimoroni_keybow2040", "pimoroni_pga2040", "pimoroni_picolipo_4m", "pimoroni_picolipo_16m", "pimoroni_picosystem", "pimoroni_plasma2040", "pimoroni_tiny2040", "sparkfun_micromod", "sparkfun_promicro", "sparkfun_thingplus" ], default = "rpi_pico" }
# These configure the board parameters for when Board is "generic_board".
# These are ignored when Board is not "generic_board".
XOSC_Frequency = { type = "Integer", first = 0, default = 12000000 }
XOSC_Startup_Delay_Mult = { type = "Integer", first = 1, last = 16383, default = 64 }
Flash_Chip = { type = "Enum", values = [ "generic_qspi_128", "at25sf128a", "gd25q64c", "w25q16jv", "w25q32jv", "w25q64jv", "w25q128jv"], default = "generic_qspi_128" }
# Clock configuration
PLL_Sys_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_Sys_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 125 }
PLL_Sys_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 6 }
PLL_Sys_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
PLL_USB_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_USB_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 40 }
PLL_USB_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_USB_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:c3806fc6513a45fab23e9b5eb221ae879b774cc1ae51bcc0f92234a124a33f1d",
"sha512:a89f64663862318b01fa9e7f2d0aa243bbb20d05403e3a9fd74fa28c711154452062f21d36d00bc88b48bab8db7334a81a65d3d1f105dde3c3814084497d8a52",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-rp2040-15.4.0.tar.gz"
@@ -0,0 +1,96 @@
name = "light_tasking_rp2350"
description = "light-tasking runtime for the RP2350 SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_rp2350` in the dependency list:
```toml
[[depends-on]]
light_tasking_rp2350 = "*"
```
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches & ("-Wl,--gc-sections");
end Linker;
```
Note that `--gc-switches` is recommended as it reduces flash and RAM usage
by removing unused code and data, but it is not mandatory.
See the project website for details on configuring the runtime.
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
output_dir = "gnat_user"
[configuration.variables]
# Configures how many of the two cores the runtime uses
Max_CPUs = { type = "Integer", first = 1, last = 2, default = 2 }
# Configures the Arm security level that the partition will run at (Secure or Non-Secure)
Security_Level = { type = "Enum", values = [ "Secure", "Non_Secure" ], default = "Secure" }
# Configures which ALARM the runtime uses to implement the semantics of
# Ada.Real_Time
Time_Base_Timer = { type = "Enum", values = [ "TIMER0", "TIMER1" ], default = "TIMER0" }
Time_Base_Alarm = { type = "Enum", values = [ "ALARM0", "ALARM1", "ALARM2", "ALARM3" ], default = "ALARM3" }
# Configures the runtime for a specific board.
# For "generic" boards, the board characteristics (flash chip, XOSC frequency)
# can be configured manually.
Board = { type = "Enum", values = [ "generic_board", "rpi_pico2", "pimoroni_pico_lipo_2_xl_w", "pimoroni_pico_plus_2", "pimoroni_plasma_2350", "pimoroni_tiny_2350", "pimoroni_rp2350_stamp_xl", "pimoroni_rp2350_stamp", "pimoroni_pga2350", "adafruit_feather_rp2350", "adafruit_metro_rp2350", "adafruit_fruit_jam" ], default = "rpi_pico2" }
# These configure the board parameters for when Board is "generic_board".
# These are ignored when Board is not "generic_board".
XOSC_Frequency = { type = "Integer", first = 0, default = 12000000 }
XOSC_Startup_Delay_Mult = { type = "Integer", first = 1, last = 16383, default = 64 }
Flash_Size = { type = "Integer", first = 2, last = 16, default = 2 }
# Clock configuration
PLL_Sys_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_Sys_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 125 }
PLL_Sys_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_Sys_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
PLL_USB_Reference_Div = { type = "Integer", first = 1, last = 63, default = 1 }
PLL_USB_VCO_Multiple = { type = "Integer", first = 16, last = 320, default = 40 }
PLL_USB_Post_Div_1 = { type = "Integer", first = 1, last = 7, default = 5 }
PLL_USB_Post_Div_2 = { type = "Integer", first = 1, last = 7, default = 2 }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:05ae855da46bd0417de88b0ecddf8d07337b3817d6cc688cd190d095013833fe",
"sha512:dcac1328bd02bf7fb1f2fc1aaf34899264a7ad17cb3dcb4a163a0600c7b93977f8d7c83ca8c7bcecdf156d16cb3c2348c087b0bedfa00f2f5b4565e19bbc4fa7",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-rp2350-15.4.0.tar.gz"
@@ -0,0 +1,115 @@
name = "light_tasking_stm32f0xx"
description = "light-tasking runtime for the STM32F0XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_stm32f0xx` in the dependency list:
```toml
[[depends-on]]
light_tasking_stm32f0xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32F072RB. If your board has
a different MCU, then you will need to specify which MCU you are using via
the crate configuration. For example, to configure the runtime for the
STM32F030F4, add the following to your `alire.toml`:
```toml
[configuration.values]
light_tasking_stm32f0xx.MCU_Sub_Family = "F030"
light_tasking_stm32f0xx.MCU_Pin_Count = "F"
light_tasking_stm32f0xx.MCU_User_Code_Memory_Size = "4"
```
By default, the runtime configures the clock tree for a 48 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 32 MHz system clock from a 16 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 16 MHz HSE crystal oscillator
light_tasking_stm32f0xx.HSE_Clock_Frequency = 16000000
light_tasking_stm32f0xx.HSE_Bypass = false
# Use the PLL as the SYSCLK source
light_tasking_stm32f0xx.SYSCLK_Src = "PLL"
# Configure the PLL input for a 16 MHz input from the HSE
light_tasking_stm32f0xx.PLL_Src = "HSE_PREDIV"
light_tasking_stm32f0xx.PREDIV = 1
# Configure the PLL to output 32 MHz (16 MHz * 2)
light_tasking_stm32f0xx.PLLMUL = 2
# Configure the AHB an APB to also run at 32 MHz
light_tasking_stm32f0xx.AHB_Pre = "DIV1"
light_tasking_stm32f0xx.APB_Pre = "DIV1"
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32f0"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["F030", "F031", "F038", "F042", "F048", "F051", "F058", "F070", "F071", "F072", "F078", "F091", "F098"], default = "F072" }
MCU_Pin_Count = { type = "Enum", values = ["C", "E", "F", "G", "K", "R", "V"], default = "R" }
MCU_User_Code_Memory_Size = { type = "String", default = "B" }
LSI_Enabled = { type = "Boolean", default = true }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 1, last = 32000000, default = 8000000 }
SYSCLK_Src = { type = "Enum", values = ["HSI", "HSE", "PLL", "HSI48"], default = "PLL" }
PLL_Src = { type = "Enum", values = ["HSI_2", "HSI_PREDIV", "HSE_PREDIV", "HSI48_PREDIV"], default = "HSI_2"}
PREDIV = { type = "Integer", first = 1, last = 16, default = 2 }
PLLMUL = { type = "Integer", first = 2, last = 16, default = 12 }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV2" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:c2d0863b52d4e03acf7a0e0931925506a45719e286428db212ee62a05d4e0bd8",
"sha512:665bae42bc93dbba63cacc65a45dd522c0f9c4e9ca9aaab9c1037e92fa16510df7c66604ad93c7f2203d0a950ddf00b688705c4024b65c75a794fe716420e56c",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-stm32f0xx-15.4.0.tar.gz"
@@ -0,0 +1,145 @@
name = "light_tasking_stm32g0xx"
description = "light-tasking runtime for the STM32G0XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_stm32g0xx` in the dependency list:
```toml
[[depends-on]]
light_tasking_stm32g0xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32G0B1RE. If your board has
a different MCU, then you will need to specify which MCU you are using via
the crate configuration. For example, to configure the runtime for the
STM32G031J4, add the following to your `alire.toml`:
```toml
[configuration.values]
light_tasking_stm32g0xx.MCU_Sub_Family = "G031"
light_tasking_stm32g0xx.MCU_Flash_Memory_Size = "4"
```
By default, the runtime configures the clock tree for a 64 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 64 MHz system clock from a 24 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 24 MHz HSE crystal oscillator
light_tasking_stm32g0xx.HSE_Clock_Frequency = 24000000
light_tasking_stm32g0xx.HSE_Bypass = false
# Select PLLRCLK as the SYSCLK source
light_tasking_stm32g0xx.SYSCLK_Src = "PLLRCLK"
# Configure the PLL VCO to run at 128 MHz from the 24 MHz HSE (fVCO = fHSE * (N/M))
light_tasking_stm32g0xx.PLL_Src = "HSE"
light_tasking_stm32g0xx.PLL_N_Mul = 10
light_tasking_stm32g0xx.PLL_M_Div = 2
# Configure the PLLRCLK to run at 64 MHz from the 128 MHz VCO.
light_tasking_stm32g0xx.PLL_R_Div = 2
# Configure the AHB an APB to also run at 64 MHz
light_tasking_stm32g0xx.AHB_Pre = "DIV1"
light_tasking_stm32g0xx.APB_Pre = "DIV1"
```
The runtime will generate a compile time error when an invalid PLL configuration
is set.
By default the PLL's Q and P clocks are enabled. If you don't need them, then you
can disable them via the crate configuration:
```toml
[configuration.values]
light_tasking_stm32g0xx.PLL_Q_Enable = false
light_tasking_stm32g0xx.PLL_P_Enable = false
```
The runtime will enable the PLL only when either `PLL_Q_Enable` or `PLL_P_Enable`
is `true`, or when `SYSCLK_Src = "PLLRCLK"`.
The interrupt stack sizes are also configurable:
```toml
[configuration.values]
light_tasking_stm32g0xx.Interrupt_Stack_Size = 1024
light_tasking_stm32g0xx.Interrupt_Secondary_Stack_Size = 128
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32g0"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["G030", "G031", "G041", "G050", "G051", "G061", "G070", "G071", "G081", "G0B0", "G0B1", "G0C1"], default = "G0B1" }
MCU_Flash_Memory_Size = { type = "String", default = "B" }
RAM_Parity_Check = { type = "Enum", values = ["Disabled", "Enabled"], default = "Disabled" }
LSI_Enabled = { type = "Boolean", default = true }
LSE_Enabled = { type = "Boolean", default = false }
LSE_Bypass = { type = "Boolean", default = false }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 1, last = 48000000, default = 8000000 }
PLL_Src = { type = "Enum", values = ["HSE", "HSI16"], default = "HSI16" }
PLL_M_Div = { type = "Integer", first = 1, last = 8, default = 2 }
PLL_N_Mul = { type = "Integer", first = 8, last = 86, default = 16 }
PLL_R_Div = { type = "Integer", first = 2, last = 8, default = 2 }
PLL_Q_Div = { type = "Integer", first = 2, last = 8, default = 2 }
PLL_P_Div = { type = "Integer", first = 2, last = 32, default = 2 }
PLL_Q_Enable = { type = "Boolean", default = true }
PLL_P_Enable = { type = "Boolean", default = true }
HSI_Div = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV32", "DIV64", "DIV128"], default = "DIV1" }
SYSCLK_Src = { type = "Enum", values = ["LSE", "LSI", "HSE", "PLLRCLK", "HSISYS"], default = "PLLRCLK" }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:4d9531ff969536a2b061e90a22a6fa4d279e68ccb970d446b49cf331a799fc9f",
"sha512:72c7d99ec39e1a5074818aaec564f36cec57ab9fbabd63311fe392674c4a4fc2a2ac0bbc4d6f492f3d37ba685f07842033849cac6410c13a4938ac574d2fc047",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-stm32g0xx-15.4.0.tar.gz"
@@ -0,0 +1,144 @@
name = "light_tasking_stm32g4xx"
description = "light-tasking runtime for the STM32G4XX SoC"
version = "15.4.0"
long-description = """
## Usage
First edit your `alire.toml` file and add the following elements:
- Add `light_tasking_stm32g4xx` in the dependency list:
```toml
[[depends-on]]
light_tasking_stm32g4xx = "*"
```
- if applicable, apply any runtime configuration variables (see below).
Then edit your project file to add the following elements:
- "with" the run-time project files. With this, gprbuild will compile the run-time before your application
```ada
with "runtime_build.gpr";
with "ravenscar_build.gpr";
```
- Specify the `Target` and `Runtime` attributes:
```ada
for Target use runtime_build'Target;
for Runtime ("Ada") use runtime_build'Runtime ("Ada");
```
- specify the `Linker` switches:
```ada
package Linker is
for Switches ("Ada") use Runtime_Build.Linker_Switches;
end Linker;
```
The runtime is configurable via Alire crate configuration variables.
See the project website for full details of the available options.
By default, the runtime is configured for the STM32G474RE. If you are using
a different MCU, then you will need to configure the runtime by adding the
following to your `alire.toml`. For example, to configure the runtime for the
STM32G431K6:
```toml
[configuration.values]
light_tasking_stm32g4xx.MCU_Sub_Family = "G431"
light_tasking_stm32g4xx.MCU_Flash_Memory_Size = "6"
```
By default, the runtime configures the clock tree for a 170 MHz system clock
from the high-speed internal (HSI) oscillator. If you want a different clock
configuration, then use the crate configuration variables to specify the
configuration you wish to use. For example, to configure the runtime to
generate a 170 MHz system clock from a 24 MHz HSE crystal oscillator:
```toml
[configuration.values]
# Configure a 24 MHz HSE crystal oscillator
light_tasking_stm32g4xx.HSE_Clock_Frequency = 24000000
light_tasking_stm32g4xx.HSE_Bypass = false
# Select PLLRCLK as the SYSCLK source
light_tasking_stm32g4xx.SYSCLK_Src = "PLLRCLK"
# Configure the PLL VCO to run at 340 MHz from the 24 MHz HSE (fVCO = fHSE * (N/M))
light_tasking_stm32g4xx.PLL_Src = "HSE"
light_tasking_stm32g4xx.PLL_N_Mul = 85
light_tasking_stm32g4xx.PLL_M_Div = 6
# Configure the PLLRCLK to run at 170 MHz from the 340 MHz VCO.
light_tasking_stm32g4xx.PLL_R_Div = 2
# Configure the AHB and APB to also run at 170 MHz
light_tasking_stm32g4xx.AHB_Pre = "DIV1"
light_tasking_stm32g4xx.APB1_Pre = "DIV1"
light_tasking_stm32g4xx.APB2_Pre = "DIV1"
```
The runtime will generate a compile time error when an invalid PLL configuration
is set.
By default the PLL's Q and P clocks are enabled. If you don't need them, then you
can disable them via the crate configuration:
```toml
[configuration.values]
light_tasking_stm32g4xx.PLL_Q_Enable = false
light_tasking_stm32g4xx.PLL_P_Enable = false
```
The runtime will enable the PLL only when either `PLL_Q_Enable` or `PLL_P_Enable`
is `true`, or when `SYSCLK_Src = "PLLRCLK"`.
The interrupt stack sizes are also configurable:
```toml
[configuration.values]
light_tasking_stm32g4xx.Interrupt_Stack_Size = 1024
light_tasking_stm32g4xx.Interrupt_Secondary_Stack_Size = 128
```
"""
authors = ["AdaCore", "Daniel King"]
maintainers = ["Daniel King <damaki.gh@gmail.com>"]
maintainers-logins = ["damaki"]
licenses = "GPL-3.0-or-later WITH GCC-exception-3.1"
tags = ["embedded", "runtime", "stm32g4"]
website = "https://github.com/damaki/community-bb-runtimes"
project-files = ['runtime_build.gpr', 'ravenscar_build.gpr']
[configuration]
generate_c = false
output_dir = "gnat_user"
[configuration.variables]
MCU_Sub_Family = { type = "Enum", values = ["G431", "G441", "G491", "G4A1", "G473", "G483", "G474", "G484"], default = "G474" }
MCU_Flash_Memory_Size = { type = "String", default = "E" }
LSI_Enabled = { type = "Boolean", default = true }
LSE_Enabled = { type = "Boolean", default = false }
LSE_Bypass = { type = "Boolean", default = false }
HSE_Bypass = { type = "Boolean", default = false }
HSE_Clock_Frequency = { type = "Integer", first = 4000000, last = 48000000, default = 24000000 }
PLL_Src = { type = "Enum", values = ["HSE", "HSI16"], default = "HSI16" }
PLL_M_Div = { type = "Integer", first = 1, last = 16, default = 4 }
PLL_N_Mul = { type = "Integer", first = 8, last = 127, default = 85 }
PLL_R_Div = { type = "Enum", values = ["DIV2", "DIV4", "DIV6", "DIV8"], default = "DIV2" }
PLL_Q_Div = { type = "Enum", values = ["DIV2", "DIV4", "DIV6", "DIV8"], default = "DIV2" }
PLL_P_Div = { type = "Integer", first = 2, last = 31, default = 2 }
PLL_Q_Enable = { type = "Boolean", default = true }
PLL_P_Enable = { type = "Boolean", default = true }
SYSCLK_Src = { type = "Enum", values = ["HSI16", "HSE", "PLLRCLK"], default = "PLLRCLK" }
AHB_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16", "DIV64", "DIV128", "DIV256", "DIV512"], default = "DIV1" }
APB1_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
APB2_Pre = { type = "Enum", values = ["DIV1", "DIV2", "DIV4", "DIV8", "DIV16"], default = "DIV1" }
Interrupt_Stack_Size = { type = "Integer", first = 1, default = 1024 }
Interrupt_Secondary_Stack_Size = { type = "Integer", first = 1, default = 128 }
[[depends-on]]
gnat_arm_elf = "^15"
[origin]
hashes = [
"sha256:c89167c275114ffb8eb86b65f8cdec1f27110038f4766df3af62e6ab4346b6cb",
"sha512:e1fb68c8ffbfa6d668ae91b829c4d10e290084a59cb63bb507fd5dd70952b27a615af130e83bbb2dce6873bdbb53ff316ea875d2e84c49b3474ae090bd93cfa6",
]
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.4.0/light-tasking-stm32g4xx-15.4.0.tar.gz"