* Teach `xtask` about the `qa-test` package
* Create the `qa-test` package and move some examples to it
* Check `qa-test` package in CI
* Add `README.md`
* Fail RMT one-shot transactions if end-marker is missing
* CHANGELOG.md
* Add test
* Fix
* Fix
* RMT: use u32, turn PulseCode into a convenience trait
* Clippy
* Adapt test
* implement event handling for apsta{,dis}connect and probe
add to wifi_access_point example
* hide internal `Option` to simplify api
* move handler call logic to event.rs
* update_handler_leak
* - Add comments
- match simpler api from `std::panic::update_hook`
- do not assume size_of in prelude
- make all events handleable
- box static instead of leak
* update changelog
* elide lifetime on default handler
* newtypes for all event types.
* add doc to newtypes
* fix previous doc example
* - `get_handler` -> `handler`
- pass critical section to event handlers
- comment on perf of Box<ZST>
- don't pass `prev` in `update_handler`, instead call previous handler first unconditionally
* pass cs to dispatch_event_handler
* don't print "unhandled event" for handled events.
* Remove hidden public SPI API
* Fix in_progress flags not being set
* Remove redundant checks, fix full-duplex flag
* Remove now-redundant Send impl
* apply_config
* SetConfig
* Return ConfigError
* Unwrap config result in ctor
* Remove configure_for_async
* Add into_async and into_blocking to I2c
* Add into_async and into_blocking to UsbSerialJtag
* Rework LCD_CAM
* Rmt
* RSA
* TWAI
* Uart
* Documentation
* Disable interrupts set on other core
* Move configure into RegisterAccess
* Disable interrupts on the other core
* Use EnumSet in RMT
* More granular init and deinit per driver
- Rework EspWifiInit
- No longer require EspWifiInitFor
- Add Drop impls for each driver, and add Drop for EspWifiController to
fully deinit the stack
* unwrap! more stuff
* fixup examples and esp-now
* unwrap less stuff
* review feedback
* seal wifi traits, allow rng or trng to init esp-wifi
* changelog and migration guide
* return wifi error in esp now constructor instead of panic
* i2s_parallel for esp32 - partially working
* i2s_parallel for esp32 - works sync 16bit (still WIP)
* i2s_parallel - add 8-bit
* i2s_parallel - naive async implementation
* i2s_parallel - clippy
* add examples (mainly for testing now and we can reduce these before merge)
* set tx_wrx2 in 8 bit mode or it updates on half clocks!
* adjust clock config (still really a hack)
* better clock calculation/configuration
* no need to reset dma or interrupts in start, the DMA DmaTxBuf handles that
* seems to need a short delay during tx_reset
* use 20 clocks instead of 1us
* 1us delay between dma start and tx_start (like idf)
* changelog & documentation
* remove debugging functions
* no need for option in example
* make async example actually use async & remove Option
* implement Drop for I2sParallelTransfer
* fix signal offset comment for I2S0
* small cleanup in i2s_parallel examples
* added a note re I2S0 not supporting true 8bit
* update doc & fmt
* instace functions take &self
* fmt
* if run at 240MHz (CPU) delay needs to be bigger
* wait for fifo on start and fixes for 240MHz
* update for esp-hal-changes
* fmt
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Check for error when pushing into a circular dma transaction too late
* Adapt tests
* Adapt example
* Don't block forever if trxing to pop from a circular DMA transfer too late
* Have a dedicated error for circular-DMA reading/writing too late
* Stop I2S RX before resetting it
* Migration guide
* Address review comment, make CI pass
* Adopt ideas from review
* Fix
* Update esp-hal/MIGRATING-0.21.md
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* assert
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* Include ROM API symbols
* Fixes and CHANGELOG.md
* Fix
* Move migration steps to the right crate's migration guide
* Remove `-Trom_functions.x` where necessary
* WIP
* cleanup
* WIP (BLE)
* WIP (BLE)
* c2 ble deinit doesn't work with ble alone, works in coex (WIP)
* fmt
* cleanup
* changelog entry
changelog entry
* WIP (do not check it)
it's just to save things before weekend!
* polishing, refactor
* cleanup
* lint
* Addressing reviews
* address reviews
* utilize `EspWifiInitialization` in deinit
* example -> description
* reviews
* reviews
* fix memory leak + rebase
* typo
* fix
* init -> initialize
screwed up after rebase
* make esp32c6/h2 buildable again
* edit safety comment
* Migrate Camera to a move based API
* update
* update
* ManuallyDrop
* Add default channel to transfer struct
---------
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
* support psram in DmaTxBuf
* add example that sometimes works :-(
* fmt
* cleanups
* allow chunk_size upto (including) 4095
* this test is passing for me now
* remove chunk_size and compute based on block_size
* return error in `prepare_transfer` if psram is found on non-esp32s3
add `dma_tx_buffer` macro
* missing parens
* changelog
* default 4092 for esp32 & fmt
* no errors anymode
* use block_size is_some to flag invalid psram in prepare_transfer
* drop block_size from macro, the buffer allocation was not being aligned - its not needed for dram anyway.
* missed macro example
* use defmt::Format that decodes owner like Debug
* fix typo
* DmaTxBuf: its an error if buffer is in psram and block_size is none
* DmaTxBuf: its an error if buffer is in psram and block_size is none
* update for PSRAM feature changes
* address alignment comments
add simple test
* fmt
* better alignment test
* revert alignment test
---------
Co-authored-by: Juraj Sadel <juraj.sadel@espressif.com>
* Some more gpio cleanup
* Allow TWAI loopback using the same pin, enable ESP32
* Impl Format for ErrorKind
* Generic frame constructors
* More TWAI cleanups
* Fix signals
* Set self-reception bit
* Teach users to use const blocks
* Fix resetting TWAI
* Set opmode when starting
* Apply errata workaround
* Fix ESP32 baudrate
* Clean up read_frame a bit
* Changelog
* Clean up clippy
* Fix compile errors
---------
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
* Make most of PSRAM features into run-time configs
* Make CI green again
* Make CI green again
* Update esp-hal/MIGRATING-0.20.md
Co-authored-by: Scott Mabin <scott@mabez.dev>
* Use Range
* CI
* Rebase fixes
* Update esp-hal/src/lock.rs
Co-authored-by: Scott Mabin <scott@mabez.dev>
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>
* Move lock impls out of lib.rs
* Reimplement Lock using ReentrantMutex
* Reimplement Lock using ReentrantMutex
* Refactor away some duplicate lock logic
* Return owner from try_lock
* Rework critical section to avoid spinning in irq-free context
* Fail compilation on unknown architectures
* Explain what RESERVED_MASK is
* Create one lock per timer group