This is the location of all drivers or code which is module and platform agnostic.
This is perfect for anything implementing embedded hal, altough it could also contain embassy specific code (as a seperate crate).
Things of note:
- If a crate for the driver already exists but requires modification or replacement, recreate it here as -ner
- Ensure to use workspace dependencies if possible
- Use async functions when possible according to embedded-hal-async
- If an external dependency is used twice, consider making it a workspace dependency
- Add
#![no_std]tolib.rs - Use
defmtworkspace dep if logging or prints are needed
This is the location of all drivers or code which is module and platform agnostic.
This is perfect for anything implementing embedded hal, altough it could also contain embassy specific code (as a seperate crate).
Things of note:
- If a crate for the driver already exists but requires modification or replacement, recreate it here as -ner
- Ensure to use workspace dependencies if possible
- Use async functions when possible according to embedded-hal-async
- If an external dependency is used twice, consider making it a workspace dependency
- Add
#![no_std]tolib.rs - Use
defmtworkspace dep if logging or prints are needed
Hardware-interacting drivers capable of implementing embedded-hal or at worst embassy.
Drivers or utilities that must import stm32 specific functionality.
In there try to provide different builds for different STMs.
Tools or design patterns that could be used across various projects.
Services (like shared logic threads), that could be used given the right imports.
Hardware-interacting drivers capable of implementing embedded-hal or at worst embassy.