* Provide malloc, free and friends in esp-alloc
* Mute warning
* Remove some (now unused) global symbols
* Have a way to opt-out of esp-alloc's malloc,free etc.
* Fixes
* Move some common C functions from esp-radio to esp-rom-sys
* Fix
* Make esp-readio symbols weakly linked
* CHANGELOG.md
* Align MSRV, cleanup visibility
* Init before `assume_init`
* Linker script fixes
* Fix examples
* Remove heapless - esp-radio is alloc
* Fix examples
* Whitespace
* realloc_internal
* Make `__esp_radio_putchar` a no-op if `sys-logs` is not enabled
* Implement a generic work queue
* Implement AES work queue backend with software block modes
* Move tail after enqueueing
* Use NonNull more liberally
* Tweak the queue a bit
* Merge the AES-DMA test into the AES test suite
* Drop AesFlavour
* Document things
* Stop the driver when its handle is dropped
* Fix docs
* Address some correctness concerns
* Move exception handler from esp-backtrace to esp-hal
* CHANGELOG.md
* Fix
* Only use defmt compatible display hints
* Workaround xtensa-lx-rt and riscv-rt not implementing defmt::Format
* Add `defmt` feature to xtensa-lx-rt and esp-riscv-rt
* Favor feature gates over random `allow`s - remove unnecessary `allow`s
* esp-wifi: Add unstable feature, mark ble, esp-now and csi features and APIs as unstable
* changelog
* fix hils
* rebase and reviews
* rebase
* Make at least wifi_embassy_dhcp work without unstable feature
* remove rand_core
* rebase
* Check if a feature is selected which needs unstable
* reviews and fix ci
* reviews
* use `riscv::interrupt::nested` for nesting
* Only save/restore caller saved registers in trap-frame (risc-v)
* Replace RISC-V scheduler
* Cleanup
* Clippy
* CHANGELOG.md
* Make sure to reset the runlevel to current, not prio-1
* Clippy
* Fix it for real
* Address review comments
* Address review comments
* More docs, optimize away one instruction
* Address review comments
* Address review comments
* Use a bool for the nested flag again
* Fix
* Clippy
* RMT: add get_tx_status, get_rx_status methods
Unused right now; these methods allow to look at all flags without several
volatile reads (in contrast to calling is_tx_done/is_rx_done,
is_tx_threshold_set, is_error individually). `match`ing on their result
leads to very idiomatic code, and also result in blocking and async code
that is very similar.
The #[inline] attribute might not be required, but better be sure: We
really don't want the Option<Event> to actually be constructed, but
rather that the compiler completely optimized it away in favor of direct
bit tests in the calling function.
* RMT: optimize RmtTxFuture to avoid repeated register reads
* RMT: optimize RmtRxFuture to avoid repeated register reads
* RMT: Optimize ContinuousTxTransaction by avoiding repeated register reads
* RMT: Optimize/simplify SingleShotTxTransaction (1/2)
by merging two loops into one
* RMT: Optimize/simplify SingleShotTxTransaction (2/2)
by avoiding repeated register reads
* RMT: add poll() method to blocking transactions
This allows properly interleaving several such transactions (as the HIL
loopback tests do, in fact) or other work.
Regarding the implementation of the place_rmt_driver_in_ram feature for these
methods, note that `#[ram]` implies `[inline(never)]`.
Thus, this uses `#[inline(always)]` for `poll` and `wait` in that case,
which are rather simple methods.
If putting them in ram actually matters, the calling user code should
probably be placed in ram as well, and then, forced inlining of both
methods should have the desired effect.
`poll_internal` in turn
- contains more code and is called from `poll` and `wait`
-> it seems sensible that it is not inlined to reduce code size.
- includes the hot loop that copies to the hardware buffer
-> should be forced to ram
so `#[ram]` makes sense.
Note that none of this was benchmarked.
* RMT: Remove unused low-level methods
Their use has entirely be replaced by get_tx_status and get_rx_status
* rename `esp_wifi`-prefixed symbols to match new `esp-radio` crate name
* fmt
* rename the rest of functions + example variable renaming
* add migration guide
* reword 😅
* block `ADC2` usage simultaneously with radio (esp32)
* implement `Drop` for `ADC2` (esp32)
fmt
format
* multiple fixes
* make functions internal, lint package
* Cleanup
* use `fetch_or` instead
* take it easy
* Read register once
* Move TIMG clock sources to metadata
* Also describe C2/3/S2/S3 clock source options
* H2: Use PLL as WDT clock source
* Fix H2 WDT calculation
* Initialize clocks before setting up WDT
* Set clock source for all timers in the timer group
* rename `esp-wifi` to `esp-radio`
* Add migration guide entry
* changelog entry
* address reviews
* more fixes
* address reviews
* Thank you for this rebase!
* mmm, rebase
* Remove unnecessary diff
bob
* get rid off all `esp-wifi` references
* drop the links ƒrom the table
* use riscv 0.14.0
* Don't use the re-exports from esp-riscv-rt because of the RT feature
* fmt
* More fixes caused by the existence of the `rt` feature
* feat(esp-wifi): add Country Code
* fix: fmt, changelog
* fix: cast
* chore: cargo xtask fmt-packages
* chore: remove example
* fix: use Option<[u8;2]> for country code
* fix: return Some
* Use an opaque type
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>