aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoueslati <[email protected]>2023-05-04 11:02:17 +0100
committergoueslati <[email protected]>2023-05-04 11:02:17 +0100
commit007f45292762ab27291dd54bd0cfdeb23e390de4 (patch)
tree65f9271ffd61a222fb3889b7c7aac1d88f6a4acf
parent3e728d5e73042a78cfb091d1723e6b0c4b5a414d (diff)
removed hardcoded addresses in memory.x
-rw-r--r--embassy-stm32/src/tl_mbox/mod.rs38
-rw-r--r--examples/stm32wb/Cargo.toml2
-rw-r--r--examples/stm32wb/memory.x21
-rw-r--r--examples/stm32wb/src/bin/tl_mbox.rs3
4 files changed, 25 insertions, 39 deletions
diff --git a/embassy-stm32/src/tl_mbox/mod.rs b/embassy-stm32/src/tl_mbox/mod.rs
index 54db78bd8..73d2ca6d6 100644
--- a/embassy-stm32/src/tl_mbox/mod.rs
+++ b/embassy-stm32/src/tl_mbox/mod.rs
@@ -196,67 +196,67 @@ pub struct RefTable {
196#[link_section = "TL_REF_TABLE"] 196#[link_section = "TL_REF_TABLE"]
197pub static mut TL_REF_TABLE: MaybeUninit<RefTable> = MaybeUninit::uninit(); 197pub static mut TL_REF_TABLE: MaybeUninit<RefTable> = MaybeUninit::uninit();
198 198
199#[link_section = "TL_DEVICE_INFO_TABLE"] 199#[link_section = "MB_MEM1"]
200static mut TL_DEVICE_INFO_TABLE: MaybeUninit<DeviceInfoTable> = MaybeUninit::uninit(); 200static mut TL_DEVICE_INFO_TABLE: MaybeUninit<DeviceInfoTable> = MaybeUninit::uninit();
201 201
202#[link_section = "TL_BLE_TABLE"] 202#[link_section = "MB_MEM1"]
203static mut TL_BLE_TABLE: MaybeUninit<BleTable> = MaybeUninit::uninit(); 203static mut TL_BLE_TABLE: MaybeUninit<BleTable> = MaybeUninit::uninit();
204 204
205#[link_section = "TL_THREAD_TABLE"] 205#[link_section = "MB_MEM1"]
206static mut TL_THREAD_TABLE: MaybeUninit<ThreadTable> = MaybeUninit::uninit(); 206static mut TL_THREAD_TABLE: MaybeUninit<ThreadTable> = MaybeUninit::uninit();
207 207
208#[link_section = "TL_SYS_TABLE"] 208#[link_section = "MB_MEM1"]
209static mut TL_SYS_TABLE: MaybeUninit<SysTable> = MaybeUninit::uninit(); 209static mut TL_SYS_TABLE: MaybeUninit<SysTable> = MaybeUninit::uninit();
210 210
211#[link_section = "TL_MEM_MANAGER_TABLE"] 211#[link_section = "MB_MEM1"]
212static mut TL_MEM_MANAGER_TABLE: MaybeUninit<MemManagerTable> = MaybeUninit::uninit(); 212static mut TL_MEM_MANAGER_TABLE: MaybeUninit<MemManagerTable> = MaybeUninit::uninit();
213 213
214#[link_section = "TL_TRACES_TABLE"] 214#[link_section = "MB_MEM1"]
215static mut TL_TRACES_TABLE: MaybeUninit<TracesTable> = MaybeUninit::uninit(); 215static mut TL_TRACES_TABLE: MaybeUninit<TracesTable> = MaybeUninit::uninit();
216 216
217#[link_section = "TL_MAC_802_15_4_TABLE"] 217#[link_section = "MB_MEM1"]
218static mut TL_MAC_802_15_4_TABLE: MaybeUninit<Mac802_15_4Table> = MaybeUninit::uninit(); 218static mut TL_MAC_802_15_4_TABLE: MaybeUninit<Mac802_15_4Table> = MaybeUninit::uninit();
219 219
220#[allow(dead_code)] // Not used currently but reserved 220#[allow(dead_code)] // Not used currently but reserved
221#[link_section = "FREE_BUF_QUEUE"] 221#[link_section = "MB_MEM2"]
222static mut FREE_BUFF_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit(); 222static mut FREE_BUFF_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit();
223 223
224// not in shared RAM 224// not in shared RAM
225static mut LOCAL_FREE_BUF_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit(); 225static mut LOCAL_FREE_BUF_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit();
226 226
227#[allow(dead_code)] // Not used currently but reserved 227#[allow(dead_code)] // Not used currently but reserved
228#[link_section = "TRACES_EVT_QUEUE"] 228#[link_section = "MB_MEM2"]
229static mut TRACES_EVT_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit(); 229static mut TRACES_EVT_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit();
230 230
231#[link_section = "CS_BUFFER"] 231#[link_section = "MB_MEM2"]
232static mut CS_BUFFER: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + TL_EVT_HEADER_SIZE + TL_CS_EVT_SIZE]> = 232static mut CS_BUFFER: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + TL_EVT_HEADER_SIZE + TL_CS_EVT_SIZE]> =
233 MaybeUninit::uninit(); 233 MaybeUninit::uninit();
234 234
235#[link_section = "EVT_QUEUE"] 235#[link_section = "MB_MEM2"]
236static mut EVT_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit(); 236static mut EVT_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit();
237 237
238#[link_section = "SYSTEM_EVT_QUEUE"] 238#[link_section = "MB_MEM2"]
239static mut SYSTEM_EVT_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit(); 239static mut SYSTEM_EVT_QUEUE: MaybeUninit<LinkedListNode> = MaybeUninit::uninit();
240 240
241#[link_section = "SYS_CMD_BUF"] 241#[link_section = "MB_MEM2"]
242static mut SYS_CMD_BUF: MaybeUninit<CmdPacket> = MaybeUninit::uninit(); 242static mut SYS_CMD_BUF: MaybeUninit<CmdPacket> = MaybeUninit::uninit();
243 243
244#[link_section = "EVT_POOL"] 244#[link_section = "MB_MEM2"]
245static mut EVT_POOL: MaybeUninit<[u8; POOL_SIZE]> = MaybeUninit::uninit(); 245static mut EVT_POOL: MaybeUninit<[u8; POOL_SIZE]> = MaybeUninit::uninit();
246 246
247#[link_section = "SYS_SPARE_EVT_BUF"] 247#[link_section = "MB_MEM2"]
248static mut SYS_SPARE_EVT_BUF: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + TL_EVT_HEADER_SIZE + 255]> = 248static mut SYS_SPARE_EVT_BUF: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + TL_EVT_HEADER_SIZE + 255]> =
249 MaybeUninit::uninit(); 249 MaybeUninit::uninit();
250 250
251#[link_section = "BLE_SPARE_EVT_BUF"] 251#[link_section = "MB_MEM2"]
252static mut BLE_SPARE_EVT_BUF: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + TL_EVT_HEADER_SIZE + 255]> = 252static mut BLE_SPARE_EVT_BUF: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + TL_EVT_HEADER_SIZE + 255]> =
253 MaybeUninit::uninit(); 253 MaybeUninit::uninit();
254 254
255#[link_section = "BLE_CMD_BUFFER"] 255#[link_section = "MB_MEM2"]
256static mut BLE_CMD_BUFFER: MaybeUninit<CmdPacket> = MaybeUninit::uninit(); 256static mut BLE_CMD_BUFFER: MaybeUninit<CmdPacket> = MaybeUninit::uninit();
257 257
258#[link_section = "HCI_ACL_DATA_BUFFER"] 258#[link_section = "MB_MEM2"]
259// "magic" numbers from ST ---v---v 259// "magic" numbers from ST ---v---v
260static mut HCI_ACL_DATA_BUFFER: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + 5 + 251]> = MaybeUninit::uninit(); 260static mut HCI_ACL_DATA_BUFFER: MaybeUninit<[u8; TL_PACKET_HEADER_SIZE + 5 + 251]> = MaybeUninit::uninit();
261 261
262pub struct TlMbox { 262pub struct TlMbox {
diff --git a/examples/stm32wb/Cargo.toml b/examples/stm32wb/Cargo.toml
index db1816da3..3c7e3e874 100644
--- a/examples/stm32wb/Cargo.toml
+++ b/examples/stm32wb/Cargo.toml
@@ -8,7 +8,7 @@ license = "MIT OR Apache-2.0"
8embassy-sync = { version = "0.2.0", path = "../../embassy-sync", features = ["defmt"] } 8embassy-sync = { version = "0.2.0", path = "../../embassy-sync", features = ["defmt"] }
9embassy-executor = { version = "0.2.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 9embassy-executor = { version = "0.2.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
10embassy-time = { version = "0.1.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 10embassy-time = { version = "0.1.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["nightly", "defmt", "stm32wb55cc", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["nightly", "defmt", "stm32wb55rg", "time-driver-any", "exti"] }
12 12
13defmt = "0.3" 13defmt = "0.3"
14defmt-rtt = "0.4" 14defmt-rtt = "0.4"
diff --git a/examples/stm32wb/memory.x b/examples/stm32wb/memory.x
index 0e48c916d..c75d07352 100644
--- a/examples/stm32wb/memory.x
+++ b/examples/stm32wb/memory.x
@@ -19,23 +19,6 @@ _stack_start = ORIGIN(RAM) + LENGTH(RAM);
19SECTIONS { 19SECTIONS {
20 TL_REF_TABLE (NOLOAD) : { *(TL_REF_TABLE) } >RAM_SHARED 20 TL_REF_TABLE (NOLOAD) : { *(TL_REF_TABLE) } >RAM_SHARED
21 21
22 TL_DEVICE_INFO_TABLE 0x2003001c (NOLOAD) : { *(TL_DEVICE_INFO_TABLE) } >RAM_SHARED 22 MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
23 TL_BLE_TABLE 0x2003003c (NOLOAD) : { *(TL_BLE_TABLE) } >RAM_SHARED 23 MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
24 TL_THREAD_TABLE 0x2003004c (NOLOAD) : { *(TL_THREAD_TABLE) } >RAM_SHARED
25 TL_SYS_TABLE 0x20030058 (NOLOAD) : { *(TL_SYS_TABLE) } >RAM_SHARED
26 TL_MEM_MANAGER_TABLE 0x20030060 (NOLOAD) : { *(TL_MEM_MANAGER_TABLE) } >RAM_SHARED
27 TL_TRACES_TABLE 0x2003007c (NOLOAD) : { *(TL_TRACES_TABLE) } >RAM_SHARED
28 TL_MAC_802_15_4_TABLE 0x20030080 (NOLOAD) : { *(TL_MAC_802_15_4_TABLE) } >RAM_SHARED
29
30 HCI_ACL_DATA_BUFFER 0x20030a08 (NOLOAD) : { *(HCI_ACL_DATA_BUFFER) } >RAM_SHARED
31 BLE_CMD_BUFFER 0x200308fc (NOLOAD) : { *(BLE_CMD_BUFFER) } >RAM_SHARED
32 BLE_SPARE_EVT_BUF 0x200301a8 (NOLOAD) : { *(BLE_SPARE_EVT_BUF) } >RAM_SHARED
33 SYS_SPARE_EVT_BUF 0x200302b4 (NOLOAD) : { *(SYS_SPARE_EVT_BUF) } >RAM_SHARED
34 EVT_POOL 0x200303c0 (NOLOAD) : { *(EVT_POOL) } >RAM_SHARED
35 SYS_CMD_BUF 0x2003009c (NOLOAD) : { *(SYS_CMD_BUF) } >RAM_SHARED
36 SYSTEM_EVT_QUEUE 0x20030b28 (NOLOAD) : { *(SYSTEM_EVT_QUEUE) } >RAM_SHARED
37 EVT_QUEUE 0x20030b10 (NOLOAD) : { *(EVT_QUEUE) } >RAM_SHARED
38 CS_BUFFER 0x20030b18 (NOLOAD) : { *(CS_BUFFER) } >RAM_SHARED
39 TRACES_EVT_QUEUE 0x20030094 (NOLOAD) : { *(TRACES_EVT_QUEUE) } >RAM_SHARED
40 FREE_BUF_QUEUE 0x2003008c (NOLOAD) : { *(FREE_BUF_QUEUE) } >RAM_SHARED
41} 24}
diff --git a/examples/stm32wb/src/bin/tl_mbox.rs b/examples/stm32wb/src/bin/tl_mbox.rs
index 6a9b9c936..fadeb0d22 100644
--- a/examples/stm32wb/src/bin/tl_mbox.rs
+++ b/examples/stm32wb/src/bin/tl_mbox.rs
@@ -6,6 +6,7 @@ use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::ipcc::{Config, Ipcc}; 7use embassy_stm32::ipcc::{Config, Ipcc};
8use embassy_stm32::tl_mbox::TlMbox; 8use embassy_stm32::tl_mbox::TlMbox;
9use embassy_time::{Duration, Timer};
9use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
10 11
11#[embassy_executor::main] 12#[embassy_executor::main]
@@ -38,5 +39,7 @@ async fn main(_spawner: Spawner) {
38 break; 39 break;
39 } 40 }
40 } 41 }
42
43 Timer::after(Duration::from_millis(500)).await;
41 } 44 }
42} 45}