[package] name = "bms" version = "0.1.0" edition = "2021" [dependencies] #ch32-hal = { git = "https://github.com/ch32-rs/ch32-hal", features = [ ch32-hal = { git = "https://github.com/ju6ge/ch32-hal", branch = "feature/i2c-slave-api", features = [ "ch32v203c8t6", "memory-x", "embassy", "rt", "time-driver-tim2", ], default-features = false } embassy-executor = { version = "0.7.0", features = [ # arch-riscv32's WFI-based sleep races with the USB interrupt wake signal, # so tasks awaiting USB (e.g. wait_connection/write_packet) can hang # forever even though the device enumerates fine. arch-spin busy-polls # instead of sleeping, sidestepping the race. See CAN_Sensor/Cargo.toml # for the same fix on the same ch32-hal/embassy-executor combo. "arch-spin", "executor-thread", ] } embassy-time = { version = "0.5.0", features = ["generic-queue-8"] } embassy-usb = { version = "0.5.1" } embassy-futures = { version = "0.1.0" } embassy-sync = { version = "0.7.2" } static_cell = "2.1.1" # This is okay because we should automatically use whatever ch32-hal uses qingke-rt = "*" qingke = "*" panic-halt = "1.0" embedded-hal = "1.0.0" heapless = { version = "0.8.0", features = ["portable-atomic-critical-section"] } micromath = { version = "2.1.0", features = ["num-traits"] } ch32-metapac = { version = "0.0.6", features = ["ch32v203c8t6"] } ina219 = "0.2.0" lib-bms-protocol = { path = "../lib-bms-protocol" } thiserror = { version = "2.0.17", default-features = false } [profile.dev] #lto = true opt-level = "s" [profile.release] strip = false # symbols are not flashed to the microcontroller, so don't strip them. #lto = true debug = true opt-level = "z" # Optimize for size.