esp-hal/esp32s3-hal
Scott Mabin 1d02bf87c3
RISCV vectored interrupts (#118)
* RISCV interrupt vectoring

- Adds support for vectoring peripheral interrupts to PAC handlers
- Currently supports level interrupts with priorities from 1-15
- Updated the gpio interrupt example to reflect the new changes

* remove .vscode files

* Support vectored edge interrupts

This is as simple as making sure we clear the CPU interrupt whenever we
receive one. This also documents further what APIs are safe to call when
the `vectored` feature is enabled.

* fix all examples to use vectoring

* doc & cleanup

* run handlers from ram

* make xtensa::interrupt::vectored private, we rexport public items

* fix default handlers

* pass interrupt into EspDefaultHandler
2022-07-26 09:24:47 -07:00
..
2022-02-18 12:00:05 +01:00
2022-07-26 09:24:47 -07:00
2022-07-26 09:24:47 -07:00
2022-07-25 07:12:34 -07:00
2022-01-12 13:52:01 -08:00

esp32s3-hal

Crates.io docs.rs Crates.io Matrix

no_std HAL for the ESP32-S3 from Espressif. Implements a number of the traits defined by embedded-hal.

This device uses the Xtensa ISA, which is not officially supported by the Rust compiler. In order to develop for this device you must use the Rust compiler fork with Xtensa support found at esp-rs/rust. Refer to the Getting Stared section below for more information.

Documentation

Getting Started

Installing the Rust Compiler

Pre-built compilers are available for most common operating systems and architectures via the esp-rs/rust-build repository. This repository additionally provides scripts to simplify the installation process.

For Linux or macOS:

$ curl -LO https://raw.githubusercontent.com/esp-rs/rust-build/main/install-rust-toolchain.sh
$ chmod +x install-rust-toolchain.sh
$ ./install-rust-toolchain.sh

For Windows:

PS> Invoke-WebRequest https://raw.githubusercontent.com/esp-rs/rust-build/main/Install-RustToolchain.ps1 -OutFile Install-RustToolchain.ps1
PS> .\Install-RustToolchain.ps1

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.