aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32-wpan
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-stm32-wpan')
-rw-r--r--embassy-stm32-wpan/Cargo.toml2
-rw-r--r--embassy-stm32-wpan/build.rs17
-rw-r--r--embassy-stm32-wpan/tl_mbox_extended_wb1.x.in16
-rw-r--r--embassy-stm32-wpan/tl_mbox_extended_wbx5.x.in16
4 files changed, 49 insertions, 2 deletions
diff --git a/embassy-stm32-wpan/Cargo.toml b/embassy-stm32-wpan/Cargo.toml
index 4f53a400a..360ca5f4b 100644
--- a/embassy-stm32-wpan/Cargo.toml
+++ b/embassy-stm32-wpan/Cargo.toml
@@ -44,6 +44,8 @@ defmt = ["dep:defmt", "embassy-sync/defmt", "embassy-embedded-hal/defmt", "embas
44ble = ["dep:stm32wb-hci"] 44ble = ["dep:stm32wb-hci"]
45mac = ["dep:bitflags", "dep:embassy-net-driver" ] 45mac = ["dep:bitflags", "dep:embassy-net-driver" ]
46 46
47extended = []
48
47stm32wb10cc = [ "embassy-stm32/stm32wb10cc" ] 49stm32wb10cc = [ "embassy-stm32/stm32wb10cc" ]
48stm32wb15cc = [ "embassy-stm32/stm32wb15cc" ] 50stm32wb15cc = [ "embassy-stm32/stm32wb15cc" ]
49stm32wb30ce = [ "embassy-stm32/stm32wb30ce" ] 51stm32wb30ce = [ "embassy-stm32/stm32wb30ce" ]
diff --git a/embassy-stm32-wpan/build.rs b/embassy-stm32-wpan/build.rs
index 94aac070d..7ab458bf2 100644
--- a/embassy-stm32-wpan/build.rs
+++ b/embassy-stm32-wpan/build.rs
@@ -18,9 +18,22 @@ fn main() {
18 // stm32wb tl_mbox link sections 18 // stm32wb tl_mbox link sections
19 19
20 let out_file = out_dir.join("tl_mbox.x").to_string_lossy().to_string(); 20 let out_file = out_dir.join("tl_mbox.x").to_string_lossy().to_string();
21 fs::write(out_file, fs::read_to_string("tl_mbox.x.in").unwrap()).unwrap(); 21 let in_file;
22 if env::var_os("CARGO_FEATURE_EXTENDED").is_some() {
23 if env::vars()
24 .map(|(a, _)| a)
25 .any(|x| x.starts_with("CARGO_FEATURE_STM32WB1"))
26 {
27 in_file = "tl_mbox_extended_wb1.x.in";
28 } else {
29 in_file = "tl_mbox_extended_wbx5.x.in";
30 }
31 } else {
32 in_file = "tl_mbox.x.in";
33 }
34 fs::write(out_file, fs::read_to_string(in_file).unwrap()).unwrap();
22 println!("cargo:rustc-link-search={}", out_dir.display()); 35 println!("cargo:rustc-link-search={}", out_dir.display());
23 println!("cargo:rerun-if-changed=tl_mbox.x.in"); 36 println!("cargo:rerun-if-changed={}", in_file);
24} 37}
25 38
26enum GetOneError { 39enum GetOneError {
diff --git a/embassy-stm32-wpan/tl_mbox_extended_wb1.x.in b/embassy-stm32-wpan/tl_mbox_extended_wb1.x.in
new file mode 100644
index 000000000..4cffdaddd
--- /dev/null
+++ b/embassy-stm32-wpan/tl_mbox_extended_wb1.x.in
@@ -0,0 +1,16 @@
1MEMORY
2{
3 RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 4K
4 RAMB_SHARED (xrw) : ORIGIN = 0x20030028, LENGTH = 4K
5}
6
7/*
8 * Scatter the mailbox interface memory sections in shared memory
9 */
10SECTIONS
11{
12 TL_REF_TABLE (NOLOAD) : { *(TL_REF_TABLE) } >RAM_SHARED
13
14 MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAMB_SHARED
15 MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAMB_SHARED
16}
diff --git a/embassy-stm32-wpan/tl_mbox_extended_wbx5.x.in b/embassy-stm32-wpan/tl_mbox_extended_wbx5.x.in
new file mode 100644
index 000000000..281d637a9
--- /dev/null
+++ b/embassy-stm32-wpan/tl_mbox_extended_wbx5.x.in
@@ -0,0 +1,16 @@
1MEMORY
2{
3 RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 2K
4 RAMB_SHARED (xrw) : ORIGIN = 0x20038000, LENGTH = 10K
5}
6
7/*
8 * Scatter the mailbox interface memory sections in shared memory
9 */
10SECTIONS
11{
12 TL_REF_TABLE (NOLOAD) : { *(TL_REF_TABLE) } >RAM_SHARED
13
14 MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAMB_SHARED
15 MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAMB_SHARED
16}