* Create safe wrappers for some ROM functions in the `rom` module
* Replace transmute in ESP32-S3's `cpu_control` module with ROM function
* Inline *all* the things!
* Remove duplicate of `rom::regi2c_write` with ROM function
* 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
* Use the `xtask` to generate eFuse fields from CSV, instead of at build time
* Rewrite the CSV parser so that it can handle the newer eFuse definitions
* Regenerate eFuse field definitions from latest ESP-IDF commit
* Include generation date and ESP-IDF commit hash in file headers
* 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`
* update workflow
* Format `index.html`, update the URLs, add favicon, various other minor tweaks
* Move script into `.github/scripts`, add the package version to documentation path
* Split the building and deployment of documentation into its own workflow
---------
Co-authored-by: Kirill Mikhailov <konnor1980@yandex.ru>
* 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>
* Fix calculation of available buffer
* Lift requirement of circular DMA min buffer
* Have a separate set of convenience macros for circular DMA buffers
* Prefer `addr_of_mut!`
* Add `push_with` for I2S TX
* CHANGELOG.md
* Fix and document the get_core functions
* Fix UNUSED_THREAD_ID_VALUE to allow proper operation on the esp32p4
* fix multicore cfgs
* changelog
* fixup cfgs and update comments
* Implement builder pattern for cargo command-line args, refactoring
* Add an `xtask` subcommand to build a package (not its examples)
* Add an `xtask` subcommand to bump the versions of packages