2 stable releases

1.1.0 Feb 11, 2022
1.0.0 Jul 8, 2021

#1555 in Embedded development

32 downloads per month
Used in loadstone

MIT license

195KB
4.5K SLoC

Blue HAL

Embedded Hardware Abstraction Layer developed at Bluefruit Software. Implementations are mostly only coupled to ARM Cortex-M.

blue_hal contains most drivers used in the Loadstone secure bootloader project.

Connection to the Rust embedded ecosystem

blue_hal started primarily as an in-house learning project, so there's some amount of duplication between the drivers contained in this repository and some of the preexisting embedded-hal implementations, specially around the early stm32 drivers.

The drivers in blue_hal don't directly implement the embedded-hal interfaces. Instead, blue_hal offers its own set of abstractions which made sense during the development of Loadstone. The plan is to support embedded-hal directly in the future.

Structure

  • src/hal contains all abstract interfaces.
  • src/hal/doubles is a test only module that contains test doubles (fakes, mocks, etc) for most drivers.
  • src/drivers contains concrete driver implementations. These are nested by specificity, with the MCU family or chip vendor always referenced in the module structure.
  • src/utilities contains general purpose code applicable to multiple drivers.

Dependencies

~4–22MB
~580K SLoC