ch58x-hal 0.0.2

HAL for the CH583/CH582/CH581 RISC-V BLE microcotrollers from WCH
Documentation
# ch58x-hal

[![Github Actions][github-workflow]][homepage]
[![Crates.io][badge-license]][crates]
[![Crates.io][badge-version]][crates]
[![docs.rs][badge-docsrs]][docsrs]

[github-workflow]: https://img.shields.io/github/actions/workflow/status/ch32-rs/ch58x-hal/rust.yml?style=for-the-badge
[badge-license]: https://img.shields.io/crates/l/ch58x-hal?style=for-the-badge
[badge-version]: https://img.shields.io/crates/v/ch58x-hal?style=for-the-badge
[badge-docsrs]: https://img.shields.io/docsrs/ch58x-hal?style=for-the-badge
[crates]: https://crates.io/crates/ch58x-hal
[docsrs]: https://docs.rs/ch58x-hal
[homepage]: https://github.com/ch32-rs/ch58x-hal

HAL for the CH58x RISC-V BLE microcotrollers from WCH.

This crate is under random and active development. DO NOT USE in production.

This should be the reference hal implementation for CH57x, CH58x, CH59x.

## Features

- Basic: clock init, delay, interrupt, etc.
- Dedicated runtime: interrupt table, hardware stack push, highcode support, critical section implementation
- embassy support
  - time driver with SysTick, defaults to 32KHz tick
  - about 7k flash rom overhead
- GPIO, with async support
- UART, basic blocking tx, rx
- RTC, with datetime support
- SysTick delay (conflicts with embassy time driver)
- I2C
- ADC, with Temperature sensor, VBAT sensor
- SPI
- libISP ROM functions
- Basic BLE library support

## Usage

Refer `Cargo.toml` and `examples` directory.

## Notes

- `UNDOCUMENTED:` tags in code comments means the information is not from official documents.

## References

- [Slappy2022/ch58x-hal]https://github.com/Slappy2022/ch58x-hal
- [Slappy2022/ch58x-ble-rt]https://github.com/Slappy2022/ch58x-ble-rt