* Create a virtual `CPU_CTRL` peripheral for ESP32/S3
* Create a virtual `RADIO_CLK` peripherals for all devices with radios
* Use `PeripheralRef` for the `CpuControl` constructors
* Update `CHANGELOG.md`
* Support 192 and 256-bit keys for AES
* quick fix
* Not `panic`ing on wrong key length
* fmt + hil
Update comment
* Add more doc comments
* Use `Key` enum for DMA mode
fix
* API fix: make some critical functions private
* Use `Into<Key>` instead of forcing users to call funcs with `key.into()`
* Extract inner modules of `gpio` module into their own files
* Update `CHANGELOG.md`
* Add missing doc comment in `gpio::lp_io` module
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>
* Split software interrupts
* Make swint0 unavailable on a multi_core target when using thread-executor
* Clarify why embassy_multiprio example needs two executors
* Make interrupt-executor require a SoftwareInterrupt<n>
* Improve code
* CHANGELOG.md
* Don't use `#[interrupt]` in thread-executor
* More docs
* Typo fixed
* Provide native APIs for SPI functionality currently handled by `embedded-hal` traits
* Provide APIs for I2C functionality currently handled by `embedded-hal` traits
* Rebase and update HIL test for SPI to get it building again
* Reduce duplication of code within the `analog::adc` module
* Add a public `read_oneshot` method to the ADC driver
* Do not require `embedded-hal@0.2.x` traits for ADC examples
* Add doc comments to all public methods which do not already have them
* Clean up `embedded-hal-02` related imports
* Clean up some random warnings
* Update various examples to no longer depend on `embedded-hal-02` feature
* Build `esp-hal` without default features enabled in CI
* Decouple the TWAI driver from the `embedded-hal` and `embedded-can` packages
* No longer require `embedded-hal`/`embedded-can` for the TWAI example
* Update `CHANGELOG.md`
* Add support for building a package without its default features to `xtask`
* Do not require `embedded_hal_02` traits in examples where they are not required
* Do not require `embedded_hal_02` traits for filling a buffer with random bytes
* Remove patches and just use git dependency for PACs instead
* Various `README.md` normalization/updates for simpler packages
* Update `README.md` for `esp-hal` and `esp-lp-hal`
* Update repo-level `README.md`
* uart: allow driver to init as blocking or async
* adds a mode type param to Uart types
* remove #[interrupt] usage
* add constructor for blocking and async modes
* blocking constructor takes optional interrupt
* async chooses the correct handler to bind at runtime
* moves interrupt enable for uart into the driver
* changelog
* Remove the `direct-vectoring` feature
* Enables the feature by default
* renames the old direct_vectoring enable function `enable_direct`
* Make enable_direct safe, move it out of vectored module
* enable interrupt preemption by default for riscv
* remove pub from cpu intr handlers
* add enable_direct for Xtensa too
* Fix flip-link feature
* Fix up interrupt docs
* changelog
* fix clippy suggestions
* Disable P4 workflow
* Implement ETM for general purpose timers
* Revert changes to timer_interrupt example
* Add an example for ETM for general purpose timers
* Add newly introduced generic const param for Timer0
* Use id function on TimerGroupInstance instead of const parameter
* Revert const parameter on Timer1
* Specify supported chips
* Update CHANGELOG.md
* Update CHANGELOG.md
* Fix example
* Assign configured ETM channel to a variable to prevent drop
* Fix comments
* Move declaration of delay after critical section
* Use delay_millis instead of delay_ms
* Remove mut from delay
* Add documentation
* Create an `embedded-hal-02` feature and gate implementations, rename `eh1` to `embedded-hal`
* Use native `Delay` APIs in examples where applicable
* Fix example imports, be explicit about about `embedded-hal-02` feature requirements
* Update `CHANGELOG.md`
* Fix core1 startup
The original code tried to set the stack pointer and call the closure
_in the same stack frame_. This isn't possible, so the actual stack
being used was the 8K stack setup by ROM code. If this stack overflowed,
it could corrupt the ROM function .bss and .data which is why I was
seeing intermittent panic messages. I still don't understand all the
failure cases, but I know that now we are using the correct stack
properly.
* Improve multicore example
* Change log
* apply fix to esp32
* Interrupt runtime binding
* Add `set_interrupt_handler` for GPIO
* Fix
* Fix typo
* Make sure to produce a warning for an unused `#[handler]`
* Simplify GPIO interrupt handling
* Appease Clippy
* Make sure to patch the PACS in esp-hal
* Use latest PAC commit
* CHANGELOG.md entry