Skip to content

Adding avr_328p_hal crate to README.md#522

Open
Darethan026 wants to merge 1 commit into
rust-embedded:masterfrom
Darethan026:master
Open

Adding avr_328p_hal crate to README.md#522
Darethan026 wants to merge 1 commit into
rust-embedded:masterfrom
Darethan026:master

Conversation

@Darethan026
Copy link
Copy Markdown

Hello maintainers,

I would like to submit my crate, avr_328p_hal under the Board Support Package section.

Unlike crates that use external dependencies, making large embedded projects slower with each addition, this crate is entirely written from the ATmega328P datasheet specifications using pure #![no_std] Rust.

Key Implementations:

  • Direct memory-mapped I/O manipulation via volatile Read/Write pointer operations, making it highly optimised and very performant.
  • Enforced Pin configuration safety using the Typestate Pattern for all implemented drivers to have one owner in the allowed scope, with Drop implemented, so that Pins are freed, allowing the driver methods to be used elsewhere.
  • Implemented drivers for GPIO, TIMERS, ADC, LCD (Hitachi HD44780/JHD659), and USART0.

Note: The crate currently relies on stack-allocated buffers to handle printing to the LCD. It currently doesn't include a runtime, but that's not a problem for 95% of the projects it may be used for; A custom runtime is planned for a future release.

It is published on crates.io and documented on docs.rs. Examples are included in the crate's documentation examples/ directory and in the repository's examples/ directory on GitHub. Thank you for reviewing this Pull Request!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant