* embassy-usb support
* Add changelog entry
* Update embassy-usb-synopsys-otg
* Change VID/PID to match the blocking example
* Add missing initialisation
* Clean up
* fmt
* Remove log init
* Use released crate
* Revert to released embassy-usb
* Update vid/pid
* Remove redundant TAIT feature gate
* i2c:
* i2c: refactor transaction() and reuse for master_read, master_write, and master_write_read
* i2c: cargo fmt
* i2c: fix an issue with not clearing interrupt bits & move where we reset fifo and command_list
* i2c: fix async compile error
* i2c: fix for esp32 & esp32s2
* i2c: real fix for esp32 (End command never gets cmd_done bit set!)
* i2c: fmt and removal of an unwrap() that I was using while debugging
* i2c: only define opcode values in one place
i2c: use CommandReg in add_cmd
* i2c: async direct & embedded_hal support working
* i2c: cargo fmt
* examples: cargo fmt
* Convert `SoftwareInterrupt` to a unit struct
* Remove the `SystemExt` trait and rename `SystemParts` to `SystemControl`
* Update all examples an HIL tests to reflect previous API changes
* Clean up imports in `hil-test` package, address `clippy` lint warnings
* Update `CHANGELOG.md`
* 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
* Un-pin the `defmt` package's version for `esp-hal` and `esp-hal-smartled`
* Bump `esp-println` and `esp-backtrace` versions in the `examples` package
* Mention lack of MSRV guarantees when using `defmt` feature
* New package releases
* Fix the `CHANGELOG.md` check in CI
* `defmt` is annoying
* Update documentation index to point to new version, correct release date
* Remove docs.rs badge from and update docs link in `README.md`
* Silence `clippy`
* Fix documentation link in `esp-hal/README.md`
* Remove the chip-specific HAL packages
* Update some doc comments which were missed, fix build script for ESP32/S2
* Refactor/update `esp-hal-procmacros`
* Create the `examples` package, add back all of the previously existing examples
* Use `xtask` automation package for checking examples and documentation in CI
* Combine the `rt-riscv` and `rt-xtensa` features into a single `rt` feature
* Bump MSRV to 1.76.0 (shocking!)
* Re-document the features for the HAL
* No need to re-export the `riscv` package like this
* Make clippy happy, improve CI clippy checks
* Update `CHANGELOG.md`
* riscv: zero bss
Co-authored-by: Björn Quentin <bjoernQ@users.noreply.github.com>
* Address a number of review comments
* Correct pin number in `hello_rgb` example for ESP32-C3
* Address the remaining review comments
* More small tweaks/improvements
* Fix RMT examples (#11)
* Fix RMT examples
* Remove logger-init
* Make I2S examples work on ESP32 (#12)
* Make I2S examples work on ESP32
* Remove logger init
* Fix the direct-vectoring examples on all RISCV chips (#10)
* Update GPIOs for some examples...
* Embassy timer example fixes (#13)
* Switch to generic queue instead of integrated for all examples
* changelog
* Update GPIO in another example, make `rustfmt` happy
* Fix ESP32-S2 PSRAM
* Avoid UART0 and SPI flash pins (#15)
* Avoid UART0 and SPI flash pins
* Fix spi_eh1_device_loopback for non-ESP32
* Update examples/src/bin/gpio_interrupt.rs
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
---------
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>
Co-authored-by: Björn Quentin <bjoernQ@users.noreply.github.com>
Co-authored-by: bjoernQ <bjoern.quentin@mobile-j.de>
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>