aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32h755cm4
diff options
context:
space:
mode:
authorragarnoy <[email protected]>2025-05-10 10:04:34 +0200
committerragarnoy <[email protected]>2025-05-10 10:04:34 +0200
commit04c0bd84e6043ac35d2a20f1f4a789ccf79bb316 (patch)
treeb0058edc2c0cca2425848ae1aea25dfb7e82a526 /examples/stm32h755cm4
parentd9befca44f3e35c14fef85744d19bbacc4a76de3 (diff)
fix release mode that was broken by lto and codegen units (there are probably things that can be done to be able to keep lto, I haven't found yet)
Diffstat (limited to 'examples/stm32h755cm4')
-rw-r--r--examples/stm32h755cm4/Cargo.toml5
-rw-r--r--examples/stm32h755cm4/src/bin/intercore.rs8
2 files changed, 6 insertions, 7 deletions
diff --git a/examples/stm32h755cm4/Cargo.toml b/examples/stm32h755cm4/Cargo.toml
index c6d4996f1..d2b9b1f0e 100644
--- a/examples/stm32h755cm4/Cargo.toml
+++ b/examples/stm32h755cm4/Cargo.toml
@@ -49,12 +49,11 @@ overflow-checks = true # <-
49 49
50# cargo build/run --release 50# cargo build/run --release
51[profile.release] 51[profile.release]
52codegen-units = 1 52codegen-units = 16
53debug = 2 53debug = 2
54debug-assertions = false # <- 54debug-assertions = false # <-
55incremental = false 55incremental = false
56#lto = 'fat' 56opt-level = 3 # <-
57#opt-level = 3 # <-
58overflow-checks = false # <- 57overflow-checks = false # <-
59 58
60# cargo test --release 59# cargo test --release
diff --git a/examples/stm32h755cm4/src/bin/intercore.rs b/examples/stm32h755cm4/src/bin/intercore.rs
index 8f61c3eb2..3a66a1ecd 100644
--- a/examples/stm32h755cm4/src/bin/intercore.rs
+++ b/examples/stm32h755cm4/src/bin/intercore.rs
@@ -45,7 +45,7 @@ mod shared {
45 }; 45 };
46 46
47 self.led_states.store(new_value, Ordering::SeqCst); 47 self.led_states.store(new_value, Ordering::SeqCst);
48 core::sync::atomic::compiler_fence(Ordering::SeqCst); 48 core::sync::atomic::fence(Ordering::SeqCst);
49 } 49 }
50 50
51 /// Get LED state using safe bit operations 51 /// Get LED state using safe bit operations
@@ -54,7 +54,7 @@ mod shared {
54 let bit = if is_green { GREEN_LED_BIT } else { YELLOW_LED_BIT }; 54 let bit = if is_green { GREEN_LED_BIT } else { YELLOW_LED_BIT };
55 55
56 let value = self.led_states.load(Ordering::SeqCst); 56 let value = self.led_states.load(Ordering::SeqCst);
57 core::sync::atomic::compiler_fence(Ordering::SeqCst); 57 core::sync::atomic::fence(Ordering::SeqCst);
58 58
59 (value & (1 << bit)) != 0 59 (value & (1 << bit)) != 0
60 } 60 }
@@ -66,7 +66,7 @@ mod shared {
66 let current = self.counter.load(Ordering::SeqCst); 66 let current = self.counter.load(Ordering::SeqCst);
67 let new_value = current.wrapping_add(1); 67 let new_value = current.wrapping_add(1);
68 self.counter.store(new_value, Ordering::SeqCst); 68 self.counter.store(new_value, Ordering::SeqCst);
69 core::sync::atomic::compiler_fence(Ordering::SeqCst); 69 core::sync::atomic::fence(Ordering::SeqCst);
70 new_value 70 new_value
71 } 71 }
72 72
@@ -74,7 +74,7 @@ mod shared {
74 #[inline(never)] 74 #[inline(never)]
75 pub fn get_counter(&self) -> u32 { 75 pub fn get_counter(&self) -> u32 {
76 let value = self.counter.load(Ordering::SeqCst); 76 let value = self.counter.load(Ordering::SeqCst);
77 core::sync::atomic::compiler_fence(Ordering::SeqCst); 77 core::sync::atomic::fence(Ordering::SeqCst);
78 value 78 value
79 } 79 }
80 } 80 }