* Print panic messages using semihosting
* Don't use defmt's asserts
* Make RA_OFFSET available without panic-handler
* Re-add defmt imports where missing
* Revert unintended test change
* Initialise hal in critical-section test
* Disable defmt in tests by default
* 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>
* Update `hil-test` package dependencies, add simple test for async delay with `SYSTIMER`
* Implement `embedded_hal_async::delay::DelayNs` for the `TIMGx` timers
* Improve tests slightly
* Update `CHANGELOG.md`
* Enable `delay` and `delay_async` tests for the ESP32-H2
* Fix error in `delay_async` test after rebasing
* ESP32 does not have `SYSTIMER`, so don't try to test it :)
* Protect int_ena modifications with INT_ENA_LOCK, clear int_clr in ISRs, move interrupt binds from Future constructor into new_async constructor
* Fix wrong imports
* Address reviews: Remove duplicated/useless code and add HIL test for delay_us and delay_ms
* Implement DelayNs on Target instead of Periodic
* clean dead code
* fix after rebase
* fix build errors
* More accurate nanos to ticks calculation
* Fix wrong handler passed to set_interrupt_handler()
* Update esp-hal/src/timer/timg.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* cleanup left over
---------
Co-authored-by: Juraj Sadel <juraj.sadel@espressif.com>
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* per TRM the TX clock should only be re-enabled after tx_start
* CHANGELOG
* added tests to check the for the correct number of clocks during valid
* parl_io: fix test for esp32h2
* tests: parl_io: h2 PCNT does not like 20MHz
* Clean up qspi test cfgs, enable on ESP32
* Correct comments
* Clean up init_spi_data_mode
* Fix qspi_write on ESP32
* Further cleanup in SPI driver
* Clean up qspi_read
* Fix qspi_write_read test on ESP32
* Merge QSPI tests
* Clean up test
* Attempt to fix test GPIO assingment
* Update esp-hal/src/spi/master.rs
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* Update esp-hal/src/spi/master.rs
* Make sure pins have no internal pullups
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* feat: Allow configuring the watchdogs in the init config
* docs: Update changelog
* refactor: Remove unnecesary unsafe
* feat: Add a config module
* test: Add some init tests
* style: Rename all ocurrences to esp_hal::config::Config::default()
* style: Fix format
* fix: Doc errors
* revert: Move Config struct to lib.rs
* tests: Add default config test
* test: Add a test with CpuClock::max()
* test: Add timg1 test
* feat: Move Config struct to config module and reexport it in lib.rs
* fix: Fix init compilation for C2
* revert: Move Config struct to config module and reexport it in lib.rs
* fix: Use proper timergroup
* i2c hil test
* pin
* fmt
* Test
* WIP (gpio test left)
* Finalize the CODE part (to be cleaned up)
fmt
* Smaller cleanup
* cleanup
* rebase
* fix
* getting last chips ready
* Addressing reviews
* Update package dependencies and bump version numbers
* Update `CHANGELOG.md` for each package to be published
* Remember to update `xtensa-lx-rt` too :)
* Add and use TrapFrame::new() in esp-wifi
* Bump `xtensa-lx-rt` by minor instead of patch, as there are breaking changes
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* RSA cleanup & API consistency change, part 2
* RSA cleanup & API consistency change, part 3
* Add async tests
* Fix async for ESP32
* Merge impl blocks
* Backtrack on some mutability changes
* Use Acquire/Release ordering
* Fwd to write_multi_start instead of duplicating impl
* feat(SHA): Refactor SHA to use trait. Implement Digest traits for SHA
* Fix CI. Fix wrong sha mode for esp32
* Save hash register for interleaving operation
An example (wip) `sha_fuzz.rs` was added to test different functionalities of the SHA driver and to ensure proper functionning under all cases.
* Use random data when testing SHA
* fix(SHA): Buffer words until a full block before writing to memory
This fixes interleaving operations by buffering words into the SHA context until a full block can be processed.
* Fix(SHA): Use correct length padding for SHA384 and SHA512.
- This fixes a long running issue with SHA384 and SHA512, where some digest of specific sizes wouldn't compute correctly, by changing the padding length of the size field.
* Re-export digest for convenience
* Remove completed TODO
* Remove SHA peripheral requirement.
- Document safety of the SHA driver.
---------
Co-authored-by: Scott Mabin <scott@mabez.dev>
* Add more SPI DMA HIL tests (blocking and async)
* move test repetitions into loops instead, add a description about why PCNT is used, import embedded_hal_async::spi
* clean up
* Fix typos
* Add a function to detect debugger connection
* Do not reset USB peripheral
* Changelog
* Fix different register names
* Reuse xtensa_lx::is_debugger_attached
* Updated to latest release (`0.6.0`) for `embassy-executor`
* update changelog
* update hil-test version of embassy-executor to 0.6.0
* update embassy-executor in `examples`
* reflect esp_hal change in `OneShotTimer` to not have a lifetime.
* update changelog
* revert OneShotTimer changes
* Add failing test
Fix the name of the test fn
* Fix interrupt executor looping
* Fix formatting
* Fix changelog reference
* Move changelog to the right crate
* Remove dead code
* implement async for lcd_cam i8080
* lcd_cam: implement InterruptConfigurable for blocking and improve async
* lcd_cam: use new async interrupt semantics from #1835
* lcd_cam: move interrupt handler binding into `new_async()`
* lcd_cam: Instance::is_listening_lcd_done not used
* i8080: no need for seperate `new_async()`
* i8080: don't use DmaTxFuture, just test for dma error after complete
* add HIL tests for LCD_CAM i8080 in blocking and async.
* lcd_cam_i8080: test channels configured for async as well since teh compiler can't prevent it for now
* fmt :-/
* lcd_cam fix comment
* changelog
* lcd_cam async: no need to enable interrupts until polled
* lcd_cam: i8080 update for ReadBuffer changes
* Use published versions of all dependencies, update dependencies as needed
* Fix `embassy_usb_serial` example build errors after updating `embassy-usb`
* New package releases
* support dma chunk sizes other than 4092
* fmt
* update CHANGELOG
* fix 0 size static assert
* review changes:
- `.div_ceil()`
- return errors for bad chunk size and buffer sizes in Mem2Mem constructors
- correct 0 chunk size check in descripter macros
* dma: clear the mem2mem bit when channel is configured instead of in Drop
* dma: add Mem2Mem to support memory to memory transfer
* fmt
* update CHANGELOG
* removed some debugging
* use "gdma" as the selector for support
* fix empty else
* clippy
* Mem2Mem::new now accepts the peripheral to use
* mark Mem2Mem::new() unsafe
* fmt :-/
* add Mem2MemN values for gdma on non-esp32s3
tested on esp32c3,esp32c6 (will have an esp32h2 in a few days)
* support the esp32c2 (esp8684)
* DmaEligible trait providing dma peripheral value & safe constructor for Mem2Mem dma.
* added hil-test for Mem2Mem
* fmt dma_mem2mem test
* remove `debug!()`
* reset the mem2mem bit (mem_trans_en) in in_conf0 on drop
* 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 version from path dependencies in `examples` and `hil-test` packages
* Remove unused constant from `esp-println`
* Consistent badges across `README.md` files
* Remove interrupt and thread executor embassy features
* Reserve sw interrupt 3 (4) instead of 0 for multicore systems with the embassy feature enabled
* Remove uneeded #[feature()] from examples
* Fix HIL tests
* Add thread mode context id and fix up examples
* improve embassy module docs
* changelog
* fixup hil tests
* Fixup usb examples