esp32c6_hal/lib.rs
1//! `no_std` HAL for the ESP32-C6 from Espressif.
2//!
3//! <div class="warning">
4//! This package has been deprecated in favour of <a href="https://github.com/esp-rs/esp-hal/tree/main/esp-hal">esp-hal</a>.
5//! Please refer to the migration guide for help with updating your projects
6//! to use the new <em>esp-hal</em> package:
7//! <br /><br />
8//! <a href="https://github.com/esp-rs/esp-hal/releases/tag/v0.16.0">https://github.com/esp-rs/esp-hal/releases/tag/v0.16.0</a>
9//! </div>
10//!
11//! Implements a number of the traits defined by the various packages in the
12//! [embedded-hal] repository.
13//!
14//! [embedded-hal]: https://github.com/rust-embedded/embedded-hal
15//!
16//! ### Cargo Features
17//!
18//! - `async` - Enable support for asynchronous operation, with interfaces
19//! provided by [embedded-hal-async] and [embedded-io-async]
20//! - `debug` - Enable debug features in the HAL (used for development)
21//! - `defmt` - Enable [`defmt::Format`] on certain types
22//! - `direct-vectoring` - Enable direct vector table hooking support
23//! - `eh1` - Implement the traits defined in the `1.0.0-xxx` pre-releases of
24//! [embedded-hal], [embedded-hal-nb], and [embedded-io]
25//! - `embassy` - Enable support for [embassy], a modern asynchronous embedded
26//! framework. One of `embassy-time-*` features must also be enabled when
27//! using this feature.
28//! - `embassy-time-systick` - Enable the [embassy] time driver using the
29//! `SYSTIMER` peripheral. The `SYSTIMER` peripheral has three alarms
30//! available for use
31//! - `embassy-time-timg0` - Enable the [embassy] time driver using the `TIMG0`
32//! peripheral. The `TIMG0` peripheral has a single alarm available for use
33//! - `embassy-integrated-timers` - Uses hardware timers as alarms for the
34//! executors. Using this feature limits the number of executors to the number
35//! of hardware alarms provided by the time driver
36//! - `embassy-generic-queue-N` (where `N` can be `8`, `16`, `32`, `64` or
37//! `128`) - Use a generic timer queue of size `N` for the executors' timer
38//! queues. Using this feature can expand the number of executors you can use
39//! to `N`
40//! - `interrupt-preemption` - Enable priority-based interrupt preemption
41//! - `log` - enable log output using the `log` crate
42//! - `rt` - Runtime support
43//! - `ufmt` - Implement the [`ufmt_write::uWrite`] trait for the UART and USB
44//! Serial JTAG drivers
45//! - `vectored` - Enable interrupt vectoring
46//! - `flip-link` - move the stack to the start of RAM to get zero-cost stack
47//! overflow protection
48//!
49//! #### Default Features
50//!
51//! The `rt`, `vectored` and `embassy-integrated-timers` features are enabled by
52//! default.
53//!
54//! [embedded-hal-async]: https://github.com/rust-embedded/embedded-hal/tree/master/embedded-hal-async
55//! [embedded-io-async]: https://github.com/rust-embedded/embedded-hal/tree/master/embedded-io-async
56//! [embedded-hal]: https://github.com/rust-embedded/embedded-hal/tree/master/embedded-hal
57//! [embedded-hal-nb]: https://github.com/rust-embedded/embedded-hal/tree/master/embedded-hal-nb
58//! [embedded-io]: https://github.com/rust-embedded/embedded-hal/tree/master/embedded-io
59//! [embassy]: https://github.com/embassy-rs/embassy
60//! [`ufmt_write::uWrite`]: https://docs.rs/ufmt-write/latest/ufmt_write/trait.uWrite.html
61//! [`defmt::Format`]: https://docs.rs/defmt/0.3.5/defmt/trait.Format.html
62#![no_std]
63#![doc(html_logo_url = "https://avatars.githubusercontent.com/u/46717278")]
64
65pub use esp_hal_common::*;