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