Shared Bus Versions Save

Crate for sharing buses between multiple devices

v0.3.1

7 months ago

Added

  • Implementations of the WriteIter and WriteIterRead traits from embedded-hal (#53 by @thejpster).

v0.3.0

9 months ago

Changed

  • BREAKING Upgraded to cortex-m 0.7.
  • BREAKING Upgraded to atomic-polyfill 1.0.
  • BREAKING Upgraded to xtensa-lx 0.8 (#49 by @jscatena88).

v0.2.5

1 year ago

Changed

  • Upgraded to embedded-hal alpha support to version 9. Please pin your dependency on shared-bus to an exact version (using =0.#.#) when you make use of the eh-alpha feature flag (#38 by @taks).

Fixed

  • Fixed the new_xtensa!() macro not compiling (#40 by @Gazedo).

v0.2.4

1 year ago

Added

  • Added support for the I2C traits from the embedded-hal alpha 8 version (eh-alpha feature flag) (#36).

Fixed

  • Fixed the atomic-polyfill dependency being pulled in even in cases where it is not used.
  • Fixed a problem with the ADC sharing embedded-hal dependency.

v0.2.3

2 years ago

Added

  • A mutex type for Xtensa LX6 micorontrollers (e.g. ESP32) (#22 by @pyaillet).
  • A proxy type for sharing an ADC to allow "concurrently" reading its channels from multiple tasks (#24 by @geomatsi).
  • Support for thumbv6 targets by using atomic-polyfill instead of libcore atomics (#30).

v0.2.2

3 years ago

Changed

  • Updated the documentation on how to use shared-bus with RTIC.
  • Removed superfluous trait bounds on the types - the trait bounds are really only necessary on the impl-blocks.

Fixed

  • Fixed the Clone implementations from 0.2.1 being useless due to an unnecessary trait bound.

v0.2.1

3 years ago

Added

  • Added a new "Mutex" and bus-manager for compatibility with RTIC. Check the documentation for the BusManagerAtomicCheck for details.

Changed

  • I2cProxy and SpiProxy now implement Clone. Cloning a proxy might be useful if a driver wants to split bus access up even further internally without wrapping the bus-proxy in another bus-manager.

v0.2.0

3 years ago

Complete rework of the crate, most items have changed at least slightly. Please read the updated documentation to understand how the new version works.

Added

  • A BusMutexSimple for sharing within a single task/thread with minimal overhead.
  • Macros for instanciating a 'global' bus manager which lives for 'static.

Changed

  • The BusMutex trait's lock() method now passes &mut to the closure, removing the RefCell from the manager.
  • The generic parameter of BusMutex was moved into an associated type.
  • Instead of a single proxy-type for everything, separate proxy types were introduced, to allow different constraints on their creation.

Fixed

  • The SPI proxy is now !Send to make sure it can only be used from within a single thread/task.