community-bb-runtimes 15.2.0 (#1822)
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
name = "embedded_nrf52832"
|
||||
description = "embedded runtime for the NRF52832 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:ba4945f04eedf0edb46e7d70b2832bde3f7a9b8b7c3eaad2e1ab951bad889e23",
|
||||
"sha512:71bc763b8fb20c83319982b46d3bd8243fb7044e5d1c18020643064792ed5cf41909a2fb69dd73c17c6da958958cad8bf9348b8485548dc1fa26b63bb7547992",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-nrf52832-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "embedded_nrf52833"
|
||||
description = "embedded runtime for the NRF52833 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:9434a835c1c8770c75ade371824bc792390c561aba1904dc5e9c213fafb3baf4",
|
||||
"sha512:39575b8e2ef68e24be5caf1f9d1741eaa81213812a9b5b5ae6227c61ff0ebda676610e1cf4f444613d250acc75f186ca4ef30e77d8864e59ab78fb9e5e98590c",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-nrf52833-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "embedded_nrf52840"
|
||||
description = "embedded runtime for the NRF52840 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:f69f974b700e8a67570c5183adeef9bcfe0ee5b9bce56c74a5d9df8b2c755bc1",
|
||||
"sha512:6d3d4cc7db84ab1519f79d045a4dfbdb04616867c93e4fe10d2e4765faee7cfff818f3b94fba9c2fdbe957acad780410667473405f08bc08698c8d3c8ea94159",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-nrf52840-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
name = "embedded_rp2040"
|
||||
description = "embedded runtime for the RP2040 SoC"
|
||||
version = "15.2.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:ad91fa6680319b278464c34c73b93aa09af9b4a376c788840ebb1386b271f86d",
|
||||
"sha512:ab9a74aeddd29a25077c8c6d0637d9485b4bbd517bcb55e138bbda3b6131df8d688e8f600db9c86b5e73b59b9dd2f56c350d6ba74178ec281765eff36aaffbed",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-rp2040-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
name = "embedded_rp2350"
|
||||
description = "embedded runtime for the RP2350 SoC"
|
||||
version = "15.2.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:304aa2514c6597ee03424322fd151d0521d667212b6fa6a6f4d0f938828bee88",
|
||||
"sha512:bbc0279b48e3489c5497c6ab2c7ae7bca50624845f689a5d165159042d1f3d4a250aa349dbed67247f6e3c19afce9cebc228d353bb39da71e3f898d81d9b4a2c",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-rp2350-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
name = "embedded_stm32f0xx"
|
||||
description = "embedded runtime for the STM32F0XX SoC"
|
||||
version = "15.2.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" }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:c9ca8d604a675862f53855ebbf5283c779f6593a73e789feb269343a2e075241",
|
||||
"sha512:6d3d9accb3696f832d2569a06184dbf2affeaa56eca5b6aa55348c0701b30102a180da057fbacf29477964d2fc35a9893d0021469d86864ca102abf3fa7112fb",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-stm32f0xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
name = "embedded_stm32g0xx"
|
||||
description = "embedded runtime for the STM32G0XX SoC"
|
||||
version = "15.2.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:f50859913cb39f9a72dd695948eec66cc5d652b60bccffe04214e9f6bf7c5392",
|
||||
"sha512:9b4760a3399a10850fbf4ba35e8b1b31872e8e3718b4f61eb5dd5cfe22c0315cce5bad7c7d3d3c44ff0a1b12126548f142e2c31f6fb8207904e36347d3a7c9a5",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-stm32g0xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
name = "embedded_stm32g4xx"
|
||||
description = "embedded runtime for the STM32G4XX SoC"
|
||||
version = "15.2.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:7581b638c41768de2fab6f9053896868bd20b6d8bdb13c91cb9e97b4a3631302",
|
||||
"sha512:6422e88ea0dbe45262d9757f5ab9fd8f0afa1ea5739aad23392add056c26db1580f2dfa144b01c8a5588aac08047aa497335d2d23644e55227e54ebadc450dcc",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/embedded-stm32g4xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "light_nrf52832"
|
||||
description = "light runtime for the NRF52832 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:2bfe80e4f257c9065426718ec1320d9310f68ab52f75d3bbebad367b077cadff",
|
||||
"sha512:ef55cd0062d6c5987a5a98703c798c8b4c22f78b43e7d91be57bd1df9c853c3f79d9fbe5f71848a6daca667dade81bdd0b2eda594bc4decd7b60790a0fee82c7",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-nrf52832-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "light_nrf52833"
|
||||
description = "light runtime for the NRF52833 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:a25cc3cbad1f317c540f5a7b51d52dc6c193ca4b1b4d61daf99a854860799e5a",
|
||||
"sha512:5b2c015f4b057b95a3692663a67f5f3ee6b6f5150c966f0a5ac9820502a2f36fd8e95a885aacc610bb9ea1a3f8d337165cd4baa61e281cea251edd5d22573209",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-nrf52833-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "light_nrf52840"
|
||||
description = "light runtime for the NRF52840 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:80a1ff8eb72e778de413b6504ea93f8d4ed44e4f82a95428d687f14d9ff7ce58",
|
||||
"sha512:24aaf52293ecaacb7f42cf230204d6729a1b13cf9bd89bf48009106f80d63dca08e3617d0bea98227293a379ee9a4f92a3baa82d92118f5286a35019a48c1a5c",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-nrf52840-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
name = "light_rp2040"
|
||||
description = "light runtime for the RP2040 SoC"
|
||||
version = "15.2.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:5369b43fb1939edd4d7841be9f74104f8cc896b222c81be312a3495fd24e5231",
|
||||
"sha512:78250570012ecec430cf32c236ca28095b72bb7e45392828771ac87d4cab912dab69f9b9e2285f98f747a26b8d0996286fdf7673df31a493201318fcbaf104f4",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-rp2040-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
name = "light_rp2350"
|
||||
description = "light runtime for the RP2350 SoC"
|
||||
version = "15.2.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:bcc9310c533e37d6afa298faa25c41be87e226246f7be303e5bc23a12ec2a7fc",
|
||||
"sha512:19d25a93352eda8c19bfabbe305e02645d9c60bdb09cad201c46962ef7d6f5014f1770dddebba575389c3a852b77fb4762b707bd8ce22c5a4b3c789b126e3f5a",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-rp2350-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
name = "light_stm32f0xx"
|
||||
description = "light runtime for the STM32F0XX SoC"
|
||||
version = "15.2.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" }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:bb540f5f2fd7b5a64c15b5cf3aad16bbbbf3590dc457878f42b1618fca6f6285",
|
||||
"sha512:f7696319f82a4cb5ea38537a24ad88be3c6ee7481de36ea3bd9316fbd670eeb6dca0ae74c8e134f909b4019f32c97f793a9b9ecfef98ffb1acd1b17836a2b1d8",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-stm32f0xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
name = "light_stm32g0xx"
|
||||
description = "light runtime for the STM32G0XX SoC"
|
||||
version = "15.2.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:1ca16c4b96afb41afda8cc24c3ea6b480308ec495775ac0eb19a337eeb72a9be",
|
||||
"sha512:e5e586dad4f2d4de28b8d93e8969435cd25c69bfd258e4b6dda15251a9c0b114423c294dd3667011c974403b1785b41cd7d9a33bc9c94adbfb62801803587bef",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-stm32g0xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
name = "light_stm32g4xx"
|
||||
description = "light runtime for the STM32G4XX SoC"
|
||||
version = "15.2.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:3d3077c47a1ea5d16f4409ba157fe6e5d5959d990d90677fd79e9d2694bd5435",
|
||||
"sha512:5a114b559b004e011d3ef40bee31a5c3b595855ab5e90a8d514577a6a4700c7f2ca180e60b0656a7c2edb9dfe912b5f1b0b7b51d7fc05a72bc213e2ccb859d00",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-stm32g4xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "light_tasking_nrf52832"
|
||||
description = "light-tasking runtime for the NRF52832 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:8c6f47852949d6a4eff065ead9d1ec347ab9ec2463be94abd911d1f5ae9a1650",
|
||||
"sha512:2706a9fc6e3596aec1d58183ab69a28f68febb02beb11afaedb62d84d64b68d0cb16a406b42feee9ff21254ae008a0463153a4b4d2b590b0f74b4a8417bbca46",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-nrf52832-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "light_tasking_nrf52833"
|
||||
description = "light-tasking runtime for the NRF52833 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:79aed51139bed2ba80708ea765993dd86ef11a2de3370f7888532b74880fae3d",
|
||||
"sha512:7d91a5af4d8c9d4cb920755a6acfcba302cab34ce41a0db58014b6169ec1c5d579591f058efff21be4e215f5537a96f7e8d537254b46617f170b9a9cd6f4be05",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-nrf52833-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
name = "light_tasking_nrf52840"
|
||||
description = "light-tasking runtime for the NRF52840 SoC"
|
||||
version = "15.2.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 }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:93b8a819f8db52cd22a1e2080d16b7d1b5a74383f882fc1a29fc437f4d16f5bb",
|
||||
"sha512:57d397b6a163440cd91a0181b7810f361d7436d85ce2f4e8f916b4544293cdf6604ef4dc524d4ad99150a9a1b99e52608a2e657d387d1da885feae70ce92eb78",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-nrf52840-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
name = "light_tasking_rp2040"
|
||||
description = "light-tasking runtime for the RP2040 SoC"
|
||||
version = "15.2.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:8e0bd80ed76cf95e4e123040dcdf57ad08771ee69b5c494deaee9c8e5d6ddec7",
|
||||
"sha512:37b8fcebfd0373c681d0ca13459cc57c452e04cc4baad2c3437f62a7b4deffbf47a06be3f318225de80a25471b6bf26594cf1b70cf1e3d21e8a850aacc7ab3fc",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-rp2040-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
name = "light_tasking_rp2350"
|
||||
description = "light-tasking runtime for the RP2350 SoC"
|
||||
version = "15.2.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:ae6ecf4ffd68f5b7b99ab9f7d8fdfea573d85326a3c2a815419e6888c0696c97",
|
||||
"sha512:9206960226d58af7b7fb600048ef966f1a6a8e13445df4c2c751cf5fef479622993ec6ded7038efebc45992ebb5bfa564b91d62046b3231b38859cadb7ea713a",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-rp2350-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
name = "light_tasking_stm32f0xx"
|
||||
description = "light-tasking runtime for the STM32F0XX SoC"
|
||||
version = "15.2.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" }
|
||||
|
||||
[[depends-on]]
|
||||
gnat_arm_elf = "^15"
|
||||
|
||||
[origin]
|
||||
hashes = [
|
||||
"sha256:29bfd05d8e8c2b303c763ffbb16982f353e9532d2bbfa50fa9616c57ca0cc97b",
|
||||
"sha512:8c128327fc0418c70a5254401c1103ebf96aa375cdd00712d98e46e487843526f212599187ef2d92679ef6632afb342f6b2857caba372620d5cde98a061a625f",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-stm32f0xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
name = "light_tasking_stm32g0xx"
|
||||
description = "light-tasking runtime for the STM32G0XX SoC"
|
||||
version = "15.2.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:95ca9779c6137e68413cfe72e3f5ceb17b49572a316e9980f8b2c1f6deabf37c",
|
||||
"sha512:526699dfdb5928079e350384f0cdf7887104ed626668b6e3bd13a1ae5a784d394c1a8f883aac90238dcd4863531b38b8ae7bdd35e7d1e3a28d574b5278dfedf6",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-stm32g0xx-15.2.0.tar.gz"
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
name = "light_tasking_stm32g4xx"
|
||||
description = "light-tasking runtime for the STM32G4XX SoC"
|
||||
version = "15.2.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:8c653d8c46cef9dd638a097e0d6b492e465e3000e76410482ef69d4e6c95cd46",
|
||||
"sha512:cc4ffa82d8bb9b6bd2c8dd81e3d2127308e1fd0101bc3df1f418a532a0e3e2da64f6026cf7a7b6e93b28ec02a4ead2430a3c52880efde5ffc8a2bd91173d8af7",
|
||||
]
|
||||
url = "https://github.com/damaki/community-bb-runtimes/releases/download/v15.2.0/light-tasking-stm32g4xx-15.2.0.tar.gz"
|
||||
|
||||
Reference in New Issue
Block a user