* Reduce use of iter::chain
* Cache all symbols
* Trim xtensa-lx-rt deps
* Remove unused dep
* Replace chrono with jiff
* Yeet minijinja
* Save a bit on toml_edit
* Disable some default features
* Disable regex log filters
* Reduce xtensa-lx-rt build script
* Remove unnecessary dependencies
* Remove darling
* Update embedded-test
* lol
* Clean up
* Only validate loaded config once
* fmt
* Changelog
* inter-state
* inter-state (2)
* warnings fix
* fix warnings
* fmt + changelogs
* another unsafe extern "C" doode
* real fmt now
* MSRV + format
* Ignore unsafe_op_in_unsafe_fn lint for now in esp-hal and esp-wifi
* msrv + fmt
* ugh....
* get lcd_cam example right
* expr_2021 -> expr experiment
* gagagugu
* reviews
* more unneeded unsafes (help)
* finish esp-hal unsafe cleanup
* each unsafe call is marked separately
fmt
* should be good now (?)
* piece was never an option...
* dumb
* apply_feature_rules applies more things
* apply features in one place only, fix missing features and clippy warnings
* move various logic to package enum, re-add the ability to test packages with custom feature sets
* small cleanup
* simplify msrv check, fix CI
* review feedback
* try and fix msrv check
* rebase fixups
* use msrv toolchain in check
* Add a derive procmacro to implement the Builder Lite pattern for a struct
* Add `#[non_exhaustive]` and derive `BuilderLite` where necessary in I2C module
* Add `#[non_exhaustive]` and derive `BuilderLite` where necessary in UART module
* Add `#[non_exhaustive]` and derive `BuilderLite` where necessary in SPI module
* Update `CHANGELOG.md`
* Fix build errors in HIL tests
* Fix generated doc comments
* Return a `ParseError` rather than panicking
* Add a method to set the value to `None` for `Option` types
* Rewrite time driver
* Don't store priority
* Changelog
* Fix doc example
* Use separate locks for Alarms
* Mention generic queues
* Cache the next wakeup timestamp
* Immediately repoll if timestamp is in the past
* Add benchmark
* Remove equality check for now
* Enable interrupts when allocating the alarm
* Clean up
* Use relaxed ordering
* wut
* Typo
* Move benchmar
* fmt
* Keep a single PinType trait
* Merge impl blocks
* Deduplicate usb pad workaround
* Deduplicate some bit manipulation
* Remove gpio dispatch proc macro
* Inline PinType into GpioProperties
* Re-export the `main` procmacro from `esp-hal-embassy` rather than `esp-hal`
* Fix documentation warnings
* Flatten the `time_driver` module
* clippy
* Update `CHANGELOG.md`
* Fix warning in `esp-hal-procmacros` when building for `esp-lp-hal`
* Document cargo features, use `embedded-hal@1.x.x` by default
* Derive more traits on public types, assorted cleanup and improvements
* Implement `embedded-hal-nb` and `embedded-io` traits for UART
* Update `CHANGELOG.md`
* Silence `clippy` for now...
* Module documentation for UART
* Update module documentation format
* Check docs examples II
* rebase and update
* fix root crate macro expansion in doctest snippets
* clean up and fmt
* add xtask run-doc-test subcommand and check in CI
* address review comments
* remove commented printlns
* fix the host target check
* rebase and update
* hide docs for before_snippet macro and remove commented block code in twai
* Extract embassy support into `esp-hal-embassy` package
* Update relevant packages/examples/tests to get CI green again
* Add back `defmt` support
* Re-export `Executor` and `InterruptExecutor` rather than making `executor` module public
* Document the `esp-hal-embassy` package
* Update `CHANGELOG.md`
* Hack together a "fix" for the `SYSTIMER` time driver
* Make `clippy` shut up
* Remove TODO comments from linker scripts for ESP32-C6/H2
* Small refactor in Xtensa interrupt module to get rid of some allow attributes
* Remove unused function and attribute from `esp-hal-procmacros`
* 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>
* 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
* 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>
* After more analysis and coding
* More work is done, writing/reading WIP
* `write` prototype done, small fixes. Read next
* pre-rebase
* Rebased and updated
* Pre-final state of driver
* More work (near-final state) done
* WIP
* WIP
* working
* cleanup
* changelog
* address review comments
* remove Option from conjure and improve lp-i2c example description
---------
Co-authored-by: Kirill Mikhailov <konnor1980@yandex.ru>