From 175bb222d1538e43bea4f45e4f3d829f9bb8aa3d Mon Sep 17 00:00:00 2001
From: Samuel Tardieu <sam@rfc1149.net>
Date: Wed, 10 Jul 2024 00:02:00 +0200
Subject: [PATCH] Rename i2c2-target into i2c2-slave and remove i2c-bootloader

---
 Cargo.lock                             | 19 +-------
 Cargo.toml                             |  2 +-
 controller/Cargo.toml                  |  2 +-
 controller/src/logic.rs                |  2 +-
 controller/src/main.rs                 |  2 +-
 i2c-bootloader/Cargo.toml              | 16 -------
 i2c-bootloader/src/main.rs             | 62 --------------------------
 {i2c2-slave => i2c2-target}/Cargo.toml |  2 +-
 {i2c2-slave => i2c2-target}/src/lib.rs |  0
 9 files changed, 7 insertions(+), 100 deletions(-)
 delete mode 100644 i2c-bootloader/Cargo.toml
 delete mode 100644 i2c-bootloader/src/main.rs
 rename {i2c2-slave => i2c2-target}/Cargo.toml (93%)
 rename {i2c2-slave => i2c2-target}/src/lib.rs (100%)

diff --git a/Cargo.lock b/Cargo.lock
index 2a42843..fe712ca 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -146,7 +146,7 @@ dependencies = [
  "embassy-stm32",
  "embassy-time",
  "heapless",
- "i2c2-slave",
+ "i2c2-target",
  "panic-probe",
 ]
 
@@ -527,22 +527,7 @@ dependencies = [
 ]
 
 [[package]]
-name = "i2c-bootloader"
-version = "0.1.0"
-dependencies = [
- "cortex-m",
- "cortex-m-rt",
- "defmt",
- "defmt-rtt",
- "embassy-executor",
- "embassy-stm32",
- "embassy-time",
- "i2c2-slave",
- "panic-probe",
-]
-
-[[package]]
-name = "i2c2-slave"
+name = "i2c2-target"
 version = "0.1.0"
 dependencies = [
  "defmt",
diff --git a/Cargo.toml b/Cargo.toml
index 1fedf49..0421365 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,5 @@
 [workspace]
-members = ["controller", "i2c-bootloader", "i2c2-slave"]
+members = ["controller", "i2c2-target"]
 exclude = ["pid"]
 resolver = "2"
 
diff --git a/controller/Cargo.toml b/controller/Cargo.toml
index 2dca186..90f59b0 100644
--- a/controller/Cargo.toml
+++ b/controller/Cargo.toml
@@ -13,5 +13,5 @@ embassy-executor = { git = "https://github.com/embassy-rs/embassy", features = [
 embassy-stm32 = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "stm32f103c8", "unstable-pac", "time-driver-tim4", "memory-x"] }
 embassy-time = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
 heapless = "0.8.0"
-i2c2-slave = { path = "../i2c2-slave" }
+i2c2-target = { path = "../i2c2-target" }
 panic-probe = { version = "0.3.1", features = ["print-defmt"] }
diff --git a/controller/src/logic.rs b/controller/src/logic.rs
index a9438bd..38a7db7 100644
--- a/controller/src/logic.rs
+++ b/controller/src/logic.rs
@@ -3,7 +3,7 @@ use crate::{
     tb6612fng::{Movement, Tb6612fng},
 };
 use heapless::Deque;
-use i2c2_slave::{I2C2, MESSAGE_SIZE};
+use i2c2_target::{I2C2, MESSAGE_SIZE};
 
 struct State {
     _i2c: I2C2,
diff --git a/controller/src/main.rs b/controller/src/main.rs
index d824107..560c8c0 100644
--- a/controller/src/main.rs
+++ b/controller/src/main.rs
@@ -46,7 +46,7 @@ async fn main(spawner: Spawner) {
     let encoders = Encoders::new(p.PA0, p.PA1, p.PA6, p.PA7, p.TIM2, p.TIM3);
     // spawner.spawn(debug_encoders(encoders)).unwrap();
 
-    let i2c2 = i2c2_slave::I2C2::new(p.I2C2, p.PB10, p.PB11, 0x57, Priority::P4, Priority::P3);
+    let i2c2 = i2c2_target::I2C2::new(p.I2C2, p.PB10, p.PB11, 0x57, Priority::P4, Priority::P3);
     spawner
         .spawn(logic::start_i2c_target(i2c2, motors, encoders))
         .unwrap();
diff --git a/i2c-bootloader/Cargo.toml b/i2c-bootloader/Cargo.toml
deleted file mode 100644
index 17ea1d7..0000000
--- a/i2c-bootloader/Cargo.toml
+++ /dev/null
@@ -1,16 +0,0 @@
-[package]
-name = "i2c-bootloader"
-version = "0.1.0"
-authors = ["Samuel Tardieu <sam@rfc1149.net>"]
-edition = "2021"
-
-[dependencies]
-cortex-m = { version = "0.7.7", features = ["critical-section-single-core", "inline-asm"] }
-cortex-m-rt = "0.7.3"
-defmt = "0.3.5"
-defmt-rtt = "0.4.0"
-embassy-executor = { git = "https://github.com/embassy-rs/embassy", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
-embassy-stm32 = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "stm32f103c8", "unstable-pac", "time-driver-tim4", "memory-x"] }
-embassy-time = { git = "https://github.com/embassy-rs/embassy", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
-i2c2-slave = { path = "../i2c2-slave" }
-panic-probe = { version = "0.3.1", features = ["print-defmt"] }
diff --git a/i2c-bootloader/src/main.rs b/i2c-bootloader/src/main.rs
deleted file mode 100644
index e8ef00b..0000000
--- a/i2c-bootloader/src/main.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-#![no_std]
-#![no_main]
-
-use defmt_rtt as _;
-use embassy_executor::Spawner;
-use embassy_stm32::{
-    gpio::{Level, Output, Speed},
-    interrupt::Priority,
-    peripherals::PB15,
-    time::mhz,
-    Config,
-};
-use embassy_time::Timer;
-use panic_probe as _;
-
-#[embassy_executor::main]
-async fn main(spawner: Spawner) {
-    let mut config = Config::default();
-    config.rcc.hse = Some(mhz(8));
-    config.rcc.sys_ck = Some(mhz(72));
-    config.rcc.pclk1 = Some(mhz(36));
-    let p = embassy_stm32::init(config);
-
-    defmt::info!("I²C bootloader starting");
-
-    spawner.spawn(blink(p.PB15)).unwrap();
-
-    let mut i2c2 = i2c2_slave::I2C2::new(p.I2C2, p.PB10, p.PB11, 0x57, Priority::P4, Priority::P3);
-    loop {
-        let mut buffer = [0; 8];
-        match i2c2.receive(&mut buffer).await {
-            Ok(n) => {
-                defmt::info!("Received command {:#x}, reversing", &buffer[..n]);
-                buffer[..n].reverse();
-                i2c2.send(&buffer[..n]).unwrap();
-            }
-            Err(i2c2_slave::Error::ExtraBytes(n)) => {
-                defmt::info!(
-                    "Received {} extra bytes after command {:#x}, sending 0xDE 0xAD",
-                    n,
-                    buffer
-                );
-                i2c2.send(&[0xDE, 0xAD]).unwrap();
-            }
-            Err(e) => {
-                defmt::info!("Received another error: {:?}", defmt::Debug2Format(&e));
-            }
-        }
-    }
-}
-
-#[embassy_executor::task]
-async fn blink(pin: PB15) {
-    let mut led = Output::new(pin, Level::High, Speed::Low);
-    loop {
-        for _ in 0..4 {
-            led.toggle();
-            Timer::after_millis(100).await;
-        }
-        Timer::after_secs(1).await;
-    }
-}
diff --git a/i2c2-slave/Cargo.toml b/i2c2-target/Cargo.toml
similarity index 93%
rename from i2c2-slave/Cargo.toml
rename to i2c2-target/Cargo.toml
index c8431e8..5d6abad 100644
--- a/i2c2-slave/Cargo.toml
+++ b/i2c2-target/Cargo.toml
@@ -1,5 +1,5 @@
 [package]
-name = "i2c2-slave"
+name = "i2c2-target"
 version = "0.1.0"
 authors = ["Samuel Tardieu <sam@rfc1149.net>"]
 edition = "2021"
diff --git a/i2c2-slave/src/lib.rs b/i2c2-target/src/lib.rs
similarity index 100%
rename from i2c2-slave/src/lib.rs
rename to i2c2-target/src/lib.rs
-- 
GitLab