Skip to content

Commit 25c25ac

Browse files
SergioGasquezplayfulFenceliebmanJurajSadeljessebraham
authored
Feat/issue template (#4)
* Add self-testing mode for `TWAI` peripheral. (esp-rs#1929) * Add self-testing mode for `TWAI` peripheral * changelog entry * fix docs build * fix async example * Restore example to original state fix comment * `NoAck` -> `SelfTest` * DMA: Don't require implementors of Read/WriteBuffer to be Sealed (esp-rs#1921) * DMA: Don't require implementors of Read/WriteBuffer to be Sealed * CHANGELOG * mark dma::ReadBuffer and dma::WriteBuffer traits unsafe * Reset peripherals on driver construction (where missing) (esp-rs#1893) * Reset peripherals on driver contruction (where missing) * Don't enable and reset SHA in HMAC ctor * changelog * Don't reset the TIMG0 * Deny missing docs at the package level, adding exceptions for relevant modules (esp-rs#1931) * Fix an infinite loop in interrupt executors (esp-rs#1936) * 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 * Fix `i2c` + get rid of unused constants/enums (esp-rs#1940) * Slightly clean up embassy HIL tests (esp-rs#1937) * Implemented queue_msg_waiting. (esp-rs#1925) * Implemented queue_msg_waiting. * Fmt. * Adjusted changelog. * Fixed CI. * Fixed pointer mutability. * Update to latest release (`0.6.0`) for `embassy-executor` in `esp-embassy-hal` (fixes esp-rs#1941) (esp-rs#1942) * 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 * ESP32C6: Make `ADC` usable after `TRNG` deinitialization (esp-rs#1945) * Make `ADC` usable after `TRNG` deinicialization (esp32c6) * Changelog entry * Adding `TWAI` HIL test (esp-rs#1946) * Adding `TWAI` HIL test * add `Frame` trait * mutability * Update probe-rs, prebuild xtask for HIL tests (esp-rs#1939) * Update probe-rs * Differentiate jobs * Explicitly print that probe-rs's execution failed * Do not capture stdin/stderr * Pre-build xtask binary * Use current_directory * Print more info when a file can't be read * Do not erase flash after a failure * get_time: fail faster * Make xtask runnable * Removing raw addresses manipulations - part 3 (esp-rs#1892) * WIP state * More fixes * Roll back `esp-storage` changes * Small fixes Will not work, needs another patch for PACs * update pacs dep * Lint * Get rid of unnecessary if-else fix * New pacs version * make contribution docs more visible (esp-rs#1947) * Clean up i2s_async test, add option to repeat (esp-rs#1951) * Simplify I2S async test * Allow running tests repeatedly * Fail at the first mismatch * Clean up * Further clean up timers/executors test (esp-rs#1953) * Further clean up embassy_timers_executors * Do not delay for so long * Print timer values on assert failure * Clean up some more * Retry test a few times to counteract probe-rs halting us * Fix formatting * Fix GPIO Touch pin I/O (esp-rs#1956) * Do not reset `UsbSerialJtag` peripheral (esp-rs#1961) * 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 * Improve SYSTIMER API (esp-rs#1871) * Improve SYSTIMER API * Remove config object * fix things * Allow erasure of unit and comparator numbers * Merge fail --------- Co-authored-by: Dominic Fischer <[email protected]> * Simplify initialization APIs (esp-rs#1957) * Accept more types in embassy::init * Apply the same treatment to esp-wifi * Changelog * Clean up * Add doc examples * Fix Alarm generic parameters * Some xtask/metadata cleanups (esp-rs#1965) * Clean up almost all clippy violations * Remove redundant variable from context * Do not clone configs * Do not collect all config symbols into a vec needlessly * Do not allocate so many strings * Implement Sniffer API (esp-rs#1935) * Implemented queue_msg_waiting. * Fmt. * Adjusted changelog. * Fixed CI. * Fixed pointer mutability. * Implemented experimental sniffer api. * Fixed CI.. * Added safety comment. * Featured gated, PromiscuousPkt * Format. * Adjusted imports. * Added injection example. * Made RxControlInfo::from_raw public. * Format. * Added sniffer example. * Add more SPI DMA (full-duplex) HIL tests (blocking and async) (esp-rs#1952) * 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 * Add basic HIL test for GPIO that can be configured as pin for (esp-rs#1963) * Patch typo in debug assist register name and used patched esp-pacs (esp-rs#1968) * Disable RTT polling in HIL tests by default (esp-rs#1960) * Disable defmt-rtt by default * Update i2s test based on changes done to async * fmt * Update readme * Update more tests * Refactor SHA to use trait. Implement Digest traits for SHA (esp-rs#1908) * 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 <[email protected]> * Fix 1GB elfs (esp-rs#1962) * [3/3] DMA Move API: Introduce DMA buffer objects (esp-rs#1856) * [3/3] DMA Move API: Introduce DMA buffer objects * Remove FlashSafeDma * Add async HIL test * Handle set_length(0) correctly * Fix tx/rx booleans * Unlucky * Preserve previous blocking semantics * Add delay between starting DMA TX and SPI driver * Update CHANGELOG * merge tidy * Add with_buffers builder --------- Co-authored-by: Dominic Fischer <[email protected]> * Run HIL tests as part of PR checks (esp-rs#1959) * Run HIL tests as part of PR checks * Cancel pending HIL runs * Only run for ready PRs * Remove `free(self)` in HMAC which goes against esp-hal API guidelines (esp-rs#1972) * Remove `free(self)` which goes against esp-hal API guidelines * changelog * correct changelog sections (esp-rs#1974) * Remove redundant WithDmaSpi traits (esp-rs#1975) Co-authored-by: Dominic Fischer <[email protected]> * Fix S2 systimers (esp-rs#1979) * Add basic systimer interrupt tests * Remove unnecessary condition * Fix edge interrupt bitmasks * Modify target_conf in critical section * Remove unnecessary fn call * Fix test * Add failing test case * Fix S2 systimer interrupts being fired unexpectedly * Add changelog entry * Format * Fix C2 delays (esp-rs#1981) * Re-enable delay tests on S2 and C2 * Systimer: use fn instead of constant to retrieve tick freq * Reformulate delay using current_time * Take actual XTAL into account * Re-enable tests * Fix changelog * Disable defmt * Remove unused esp32 code * Update esp-hal/src/delay.rs Co-authored-by: Jesse Braham <[email protected]> --------- Co-authored-by: Jesse Braham <[email protected]> * Get rid of `missing docs` in a number of modules (esp-rs#1967) * Get rid of missing docs in a number of modules * address reviews * Address the rest of reviews * remove all remaining `allows` * are you serious? * Add tests to ensure that we don't reset current_time drivers (esp-rs#1978) * tell cargo about all our custom cfgs (esp-rs#1988) * tell cargo about all our custom lints * fixup the unexpected cfg lints, including remove clic * HIL: Multiple featuresets & conditionally enable generic-queue feature (esp-rs#1989) * Conditionally enable generic-queue feature * Allow specifying multiple feature sets and run all of them * parl_io: use ReadBuffer/WriteBuffer for async DMA (esp-rs#1996) * parl_io: use ReadBuffer/WriteBuffer for async DMA * CHANGELOG * Use uhubctl to disable and enable usb ports (esp-rs#1997) * Remove files after test (esp-rs#1993) * Refactor SPI tests & re-enable S3 and some S2 (esp-rs#1990) * Deduplicate spi_full_duplex_dma_async * Refactor SPI tests * Separate out PCNT tests * Re-enable test on S3 * Re-enable some S2 tests * gpio: Make AnyPin, AnyInputOnlyPin, DummyPin available from gpio module (esp-rs#1918) Making these available straight from `gpio` aligns it with other Embassy implementations (mainly nrf and stm32). Signed-off-by: Priit Laes <[email protected]> * Clean up SHA, RSA, mandate `#[must_use]` on Futures (esp-rs#2000) * Janitor go brr * Clean up SHA * Use max CPU speed * RSA cleanup part 1 * Clean up nonsense comments * Mark all futures as must_use * Prefer `cfg_if` (esp-rs#2003) * SPI DMA: use `State` for both blocking and async operations (esp-rs#1985) * use `State` for both blocking and async operations, remove async version of SpiDmaBus in favour of being generic over the mode * reuse wait_for_idle more * changelog * rename generic params for consistency * Add duplex mode to SpiDmaBus * implement HalfDuplexReadWrite for SpiDmaBus * Docs on new async APIs * Limit half duplex transfers to the capacity of the DmaBuf * docs * rebase tests * address review comments * remove duplex traits from spi * fix tests * spi docs rejig * s/InUse/TemporarilyRemoved/g * Re-add feature gate for software_interrupt3 (esp-rs#2011) * Fix (esp-rs#2013) * Implement timer conversion for some arrays (esp-rs#2012) * Test and fix async RSA (esp-rs#2002) * 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 * Only reserve the interrupt when executors are needed (esp-rs#2014) * forward spi methods to SpiDmaBus (esp-rs#2016) * forward spi methods to SpiDmaBus * changelog * Fix defmt compatibility (esp-rs#2017) * Fix defmt compatibility * Update tests to cover macros * Remove unneeded logs (esp-rs#2022) * HIL: Don't skip cleanup (esp-rs#2024) * Don't skip cleanup * Make sure the power is off for a short while * Use newly published versions of all PACs in `esp-hal` (esp-rs#2025) * Use newly published versions of all PACs in `esp-hal` * Address additional review comments * Version 0.20.0 (esp-rs#2038) * 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 <[email protected]> * Fix before_snippet failing in release (esp-rs#2040) * Fix before_snippet failing in release * Fix esp-hal-embassy comment * Prepare v0.20.1 release (esp-rs#2046) * Try to be more helpful (esp-rs#2044) * Begin next release cycle (esp-rs#2039) Co-authored-by: Scott Mabin <[email protected]> * fix: Fix nightly errors (esp-rs#1934) * Disable object's unnecessary features in proc macro that loads LP code (esp-rs#2018) * Disable object/decompress * Only enable elf support in object * Random cleanups in non-checked packages (esp-rs#2034) * Deduplicate feature check macros * Re-enable rust-analyzer for most of the workspace * Cargo fix * Turn off defmt * Only build xtask * Clippy pls * Fix CI * Fix paths * Always create doc directory first * Revert r-a * Update esp-hal-procmacros/src/lp_core.rs Co-authored-by: Dominic Fischer <[email protected]> --------- Co-authored-by: Dominic Fischer <[email protected]> * QSPI tests (esp-rs#2015) * Add QSPI tests * Simplify * Add qspi_write_read test * Clean up gigantic GPIO eyesore (esp-rs#2048) * Save/restore coprocessor state on stack (esp-rs#2057) * Whitespace * Save and restore coprocessor enable state * release prep [email protected] (esp-rs#2060) * Protect SYSTIMER/TIMG shared registers (esp-rs#2051) * Protect SYSTIMER/TIMG shared registers * some review comments * more review comments * more review comments * bring back portable_atomic --------- Co-authored-by: Dominic Fischer <[email protected]> * automatically apply status:needs-attention to new esp-hal issues (esp-rs#2030) * Improve CP0-disabled error message (esp-rs#2061) * Improve CP0-disabled error message * CHANGELOG.md * Rework hal initialization (esp-rs#1970) * Rework hal initialization * Turn sw interrupt control into a virtual peripheral * Return a tuple instead of a named struct * Fix docs * Remove SystemClockControl * Move software interrupts under interrupt * Re-document what's left in system * Update time docs * Update sw int docs * Introduce Config * Fix tests * Remove redundant inits * Doc * Clean up examples&tests * Update tests * Add changelog entry * Start migration guide * Restore some convenience-imports * Remove Config from prelude * Fix hil-test xtask instruction (esp-rs#2062) * Fix hil-test xtask instruction * Fix another mention * [esp-metadata] Make clap dependency optional (esp-rs#2055) * Provide ehal impls for DummyPin (esp-rs#2019) Co-authored-by: Scott Mabin <[email protected]> * storage: Clean up ROM function declarations (esp-rs#2058) * Clean up external function declarations * Tweak syntax * Fix various SPI/DMA issues (esp-rs#2065) * Add failing test * Fix enabled interrupt * Fix using the correct waker * Changelog * Enable test on more devices that have SPI3 * WPA2 ENTERPRISE (esp-rs#2004) * WPA2 ENTERPRISE * Defmt, Clippy, Changelog * Defmt, again * Clippy, again * Mention corresponding JIRA ticket * Rename * fmt * Use Mutex in scheduler * Adapt wifi_delete_queue * Adapt log level * Bump to esp-wifi 0.9.0 (esp-rs#2066) * Remove NoPinType (esp-rs#2068) * Make esp-wifi build on stable, again. Bump to 0.9.1 (esp-rs#2067) * Make esp-wifi build on stable, again. Bump to 0.9.1 * CHANGELOG.md * MSRV check esp-wifi * ESP32-S2 doesn't support Bluetooth * Remove lazy_static in favor of OnceLock (esp-rs#2063) * [esp-metadata] Remove lazy_static in favor of OnceLock * [esp-wifishark] Remove lazy_static in favor of normal initialisation * [ieee802154-sniffer] Shorten SelectorConfig initialisation * [ieee802154-sniffer] Remove lazy_static in favor of normal initialisation * Remove most trait implementation features from `esp-hal` (esp-rs#2070) * Eliminate esp-hal's `ufmt` feature * Eliminate esp-hal's `embedded-hal-02` feature * Eliminate esp-hal's `embedded-hal` feature * Eliminate esp-hal's `embedded-io` feature * Eliminate esp-hal's `async` feature * Update `CHANGELOG.md` * Remove `async` from required features for HIL tests * Update migration guide * Adding `I2C` HIL test (esp-rs#2023) * 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 * Remove Gpio type aliasses (esp-rs#2073) * Remove Gpio type aliasses * Clean up examples * Remove the need to manually pass clocks around (esp-rs#1999) * Clean up passing clocks to drivers * Update changelog * Initialise Clocks in a critical section * Fix calling now() before init * Fix doc * Fix esp-wifi migration guide * Add safety comment * Update tests * Remove gpio dispatch macro-defining proc macro (esp-rs#2069) * 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 * Remove AnyInputOnlyPin (esp-rs#2071) * Remove AnyInputOnlyPin * Add section to migration guide * Remove unnecessary enum Co-authored-by: Dominic Fischer <[email protected]> --------- Co-authored-by: Dominic Fischer <[email protected]> Co-authored-by: Jesse Braham <[email protected]> * Accept ErasedPin in AnyPin (esp-rs#2072) Co-authored-by: Jesse Braham <[email protected]> * fix issue handler, don't rebuild on main the merge queue checks this for us (esp-rs#2077) * Fix nightly warnings (esp-rs#2082) * Build examples in debug mode (esp-rs#2078) * Build examples in debug mode * Allow building psram examples in debug mode in CI * Don't rebuild tests, try to avoid rebuilding dependencies * Improve SHA driver API (esp-rs#2049) Co-authored-by: Dominic Fischer <[email protected]> * [esp-hal-procmacros] Update to proc-macro-error2 (esp-rs#2090) * lcd_cam: fix wrong buffer length used if 16bit and len<=8192 (esp-rs#2085) * lcd_cam: fix wrong buffer length used if 16bit and len<=8192 * changelog * Implement sleep and wakeup functionalities for ESP32C2 esp-rs#1920 (esp-rs#1922) * i2c: fix embedded-hal transactions (esp-rs#2028) * i2c: fix embedded-hal transactions * changelog+fmt * small naming cleanup * i2c: fix 1 byte reads * typo * small cleanup and add a few internal docs * update changelog * rebase & CHANGELOG * extract next op conversion * fix `setup_read()` logic for 0 length reads. * return error for 0 length reads and 0 length writes where start=false * comment about max_len in setup_write() * filter out 0 length read operations in `transaction()` * Short circuit for problematic 0 lengths in read_operation and write_operation * don't short circuit a 0 length write operation if stop=true * handle write_read when the read bufer is empty * Optionally type-erased GPIO drivers (esp-rs#2075) * Remove type erased gpio structs * Implement Peripheral for ErasedPin * Simpler type erasing, accept ErasedPin in pin drivers, remove type erased drivers * Reformulate pin drivers using Flex * Erase gpio types by default * Accept any pin in AnyPin * Add changelog and migration guide * Fix tests and examples * Undo rename of clone_unchecked * Rename `esp_hal::time::current_time` to `esp_hal::time::now` (esp-rs#2091) * rename esp_hal::time::current_time to esp_hal::time::uptime * changelog * move more things to init * s/uptime/now/g * Add missing #[doc(hidden)] in xtensa-lx-rt-proc-macros (esp-rs#2097) * Enable ESP32 HIL (esp-rs#1977) * Enable ESP32 HIL * RMT fixed * SPI DMA partially works, _pcnt tests not working * bckup * finish * readme and cleanup * rebase + cleanup * RMT S2 pin typo + clean forgotten comments * review comments * update 10000 * indentation * replace cfg gate with cfg_if * esp-wifi: other crates also provide `strchr` (littlefs2-sys) (esp-rs#2096) * esp-wifi: other crates also provide strchr (littlefs2-sys) * esp-wifi: other crates also provide strchr (littlefs2-sys) * changelog * fmt :-( * Reordered RX-TX pairs to be consistent (esp-rs#2074) * feat: Update rx-tx order in i2s * feat: Update rx-tx order in dma macros * feat: Update rx-tx order in spi * feat: Update rx-tx order in aes * feat: Update rx-tx order in mem2mem * feat: Update rx-tx order in twai and split methods * feat: Update rx-tx order in twai * feat: Update rx-tx order in twai and uart docs * docs: Add sentence about order * docs: Update changelog * feat: Update rx-tx order in embassy_interrupt_spi_dma tests * style: Rustfmt * docs: Migrating guide * fix: Typo Co-authored-by: Dániel Buga <[email protected]> * fix: Diff Co-authored-by: Dániel Buga <[email protected]> * fix: Tests rx-tx order * fix: Update new_with_default_pins order * feat: Update rx/tx order in hil_test::common_test_pins! * feat: Update dma_extmem2mem example * fix: Revert deleted input arg * style: rustfmt * feat: Disable test_asymmetric_dma_transfer for S2 --------- Co-authored-by: Dániel Buga <[email protected]> * Random additional GPIO cleanups, implement Peripheral for drivers (esp-rs#2094) * Reuse enable_iomux_clk_gate * Remove public functions * Remove set_to_input * Deduplicate constructor * Deduplicate is_listening * Hide PinFuture better * Deduplicate set_int_enable * Align macro indentation * Typo * Slightly simplify the touch_into macro * Implement the AnalogPin trait directly * Provide default impls for simple forwarding methods * Newtype ErasedPin * Merge rtc_pin macros * Fmt * Changelog * Fix migration guide * Fix example * Fix ETM * Make additional memory available as `dram2_uninit` (esp-rs#2079) * Make additional memory available as `dram2_uninit` * CHANGELOG.md * Update esp-println version in usage section (esp-rs#2100) * Add integration with bt-hci crate (esp-rs#1971) * Add integration with bt-hci crate Implementing traits from bt-hci allows the BleConnector to be used with the Trouble BLE stack. * use packed based read interface * Improve example to allow another connection after disconnect * update trouble version * Workaround for spurious command complete events * fix formatting * ignore notify errors in example * fix clippy warnings * remove async feature from hal dependency * remove deprecated feature from example * Adopt to api changes * Api fix for esp32 * Set rust-version of esp-wifi * bump MSRV to 1.77 for CI and esp-hal * Add changelog entry * ensure that clock init happens after rtc domain is initialized (esp-rs#2104) * Prepare esp-backtrace 0.14.1 (esp-rs#2107) * esp-wifi uses global allocator, esp-alloc supports multiple regions (esp-rs#2099) * esp-wifi uses global allocator, esp-alloc supports multiple regions * CHANGELOG.md * Apply suggestions * Use `alloc` when linting esp-wifi * Make coex example build for ESP32 * Re-enable some wifi examples for ESP32-S2 * Optionally depend on `esp-alloc` (by default) * Rename INSTANCE -> HEAP * feat: Add issue templates --------- Signed-off-by: Priit Laes <[email protected]> Co-authored-by: Kirill Mikhailov <[email protected]> Co-authored-by: liebman <[email protected]> Co-authored-by: Juraj Sadel <[email protected]> Co-authored-by: Jesse Braham <[email protected]> Co-authored-by: Dániel Buga <[email protected]> Co-authored-by: Frostie314159 <[email protected]> Co-authored-by: Sycrosity <[email protected]> Co-authored-by: Scott Mabin <[email protected]> Co-authored-by: Fan Jiang <[email protected]> Co-authored-by: Dominic Fischer <[email protected]> Co-authored-by: Dominic Fischer <[email protected]> Co-authored-by: Anthony Grondin <[email protected]> Co-authored-by: Priit Laes <[email protected]> Co-authored-by: Björn Quentin <[email protected]> Co-authored-by: Gnome! <[email protected]> Co-authored-by: M4tsuri <[email protected]> Co-authored-by: Szybet <[email protected]> Co-authored-by: Ulf Lilleengen <[email protected]>
1 parent 888e942 commit 25c25ac

File tree

408 files changed

+16953
-12644
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

408 files changed

+16953
-12644
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ["bug", "status:needs-attention"]
6+
assignees: ''
7+
8+
---
9+
10+
## Bug description
11+
12+
<!-- A clear and concise description of what the bug is. -->
13+
14+
- Would you like to work on a fix? [y/n]
15+
16+
## To Reproduce
17+
18+
<!-- Steps to reproduce the behavior. -->
19+
1. ...
20+
2. ...
21+
22+
<!-- Feel free to share the project where the bug can be reproduced. -->
23+
24+
<!-- Make sure you are able to reproduce the bug in the `main` branch, too. -->
25+
26+
## Expected behavior
27+
28+
<!-- A clear and concise description of what you expected to happen. Attach screenshots if needed. -->
29+
30+
## Environment
31+
32+
- Target device: [e.g. ESP32-S3] <!-- Use `espflash board-info` to get the target device iformation. -->
33+
- Crate name and version: [e.g. esp-hal 0.20.0]

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Ask a question (Matrix Channel)
4+
url: https://github.com/esp-rs/esp-hal/discussions/new
5+
about: Ask questions in our Matrix channel.
6+
- name: Ask a question (GitHub Discussions)
7+
url: https://github.com/esp-rs/esp-hal/discussions/new
8+
about: Ask questions and discuss via GitHub Discussions.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ["enhancement", "status:needs-attention"]
6+
assignees: ''
7+
8+
---
9+
10+
## Motivations
11+
12+
<!--
13+
If your feature request is related to a problem, please describe it.
14+
-->
15+
16+
- Would you like to implement this feature? [y/n]
17+
18+
## Solution
19+
20+
<!-- Describe the solution you'd like. -->
21+
22+
## Alternatives
23+
24+
<!-- Describe any alternative solutions or features you've considered. -->
25+
26+
## Additional context
27+
28+
<!-- Add any other context or screenshots about the feature request here. -->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ To help us review it efficiently, please ensure you've gone through the followin
77
- [ ] I have updated existing examples or added new ones (if applicable).
88
- [ ] I have used `cargo xtask fmt-packages` command to ensure that all changed code is formatted correctly.
99
- [ ] My changes were added to the [`CHANGELOG.md`](https://github.com/esp-rs/esp-hal/blob/main/esp-hal/CHANGELOG.md) in the **_proper_** section.
10-
- [ ] My changes are in accordance to the [esp-rs API guidelines](https://github.com/esp-rs/esp-hal/blob/main/API-GUIDELINES.md)
10+
- [ ] I have added necessary changes to user code to the [Migration Guide](https://github.com/esp-rs/esp-hal/blob/main/esp-hal/MIGRATING-0.21.md).
11+
- [ ] My changes are in accordance to the [esp-rs API guidelines](https://github.com/esp-rs/esp-hal/blob/main/documentation/API-GUIDELINES.md)
1112

1213
#### Extra:
13-
- [ ] I have read the [CONTRIBUTING.md guide](https://github.com/esp-rs/esp-hal/blob/main/CONTRIBUTING.md) and followed its instructions.
14+
- [ ] I have read the [CONTRIBUTING.md guide](https://github.com/esp-rs/esp-hal/blob/main/documentation/CONTRIBUTING.md) and followed its instructions.
1415

1516
### Pull Request Details 📖
1617

.github/actions/check-esp-hal/action.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,7 @@ runs:
5757
--target=${{ inputs.target }} \
5858
esp-hal
5959
- name: Build (examples)
60+
env:
61+
CI: 1
6062
shell: bash
61-
run: cargo +${{ inputs.toolchain }} xtask build-examples esp-hal ${{ inputs.device }}
63+
run: cargo +${{ inputs.toolchain }} xtask build-examples esp-hal ${{ inputs.device }} --debug

.github/workflows/changelog.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ jobs:
4747
- 'esp-println/**'
4848
esp-riscv-rt:
4949
- 'esp-riscv-rt/**'
50+
xtensa-lx-rt:
51+
- 'xtensa-lx-rt/**'
5052
esp-storage:
5153
- 'esp-storage/**'
5254
esp-wifi:

.github/workflows/ci.yml

Lines changed: 16 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@ on:
1616
push:
1717
branches-ignore:
1818
- "gh-readonly-queue/**"
19+
- "main"
1920
merge_group:
2021
workflow_dispatch:
2122

2223
env:
2324
CARGO_TERM_COLOR: always
2425
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25-
MSRV: "1.76.0"
26+
MSRV: "1.77.0"
2627
RUSTDOCFLAGS: -Dwarnings
2728

2829
# Cancel any currently running workflows from the same PR, branch, or
@@ -133,13 +134,26 @@ jobs:
133134
cargo xtask build-package --features=esp32c6,ci --target=riscv32imac-unknown-none-elf esp-hal
134135
cargo xtask build-package --features=esp32h2,ci --target=riscv32imac-unknown-none-elf esp-hal
135136
136-
# Verify the MSRV for all Xtensa chips:
137+
- name: msrv RISCV (esp-wifi)
138+
run: |
139+
cargo xtask build-package --features=esp32c2,wifi,ble,async --target=riscv32imc-unknown-none-elf esp-wifi
140+
cargo xtask build-package --features=esp32c3,wifi,ble,async --target=riscv32imc-unknown-none-elf esp-wifi
141+
cargo xtask build-package --features=esp32c6,wifi,ble,async --target=riscv32imac-unknown-none-elf esp-wifi
142+
cargo xtask build-package --features=esp32h2,ble,async --target=riscv32imac-unknown-none-elf esp-wifi
143+
144+
# Verify the MSRV for all Xtensa chips:
137145
- name: msrv Xtensa (esp-hal)
138146
run: |
139147
cargo xtask build-package --toolchain=esp --features=esp32,ci --target=xtensa-esp32-none-elf esp-hal
140148
cargo xtask build-package --toolchain=esp --features=esp32s2,ci --target=xtensa-esp32s2-none-elf esp-hal
141149
cargo xtask build-package --toolchain=esp --features=esp32s3,ci --target=xtensa-esp32s3-none-elf esp-hal
142150
151+
- name: msrv Xtensa (esp-wifi)
152+
run: |
153+
cargo xtask build-package --toolchain=esp --features=esp32,wifi,ble,async --target=xtensa-esp32-none-elf esp-wifi
154+
cargo xtask build-package --toolchain=esp --features=esp32s2,wifi,async --target=xtensa-esp32s2-none-elf esp-wifi
155+
cargo xtask build-package --toolchain=esp --features=esp32s3,wifi,ble,async --target=xtensa-esp32s3-none-elf esp-wifi
156+
143157
- name: msrv (esp-lp-hal)
144158
run: |
145159
cargo xtask build-package --features=esp32c6 --target=riscv32imac-unknown-none-elf esp-lp-hal
@@ -164,48 +178,3 @@ jobs:
164178

165179
# Check the formatting of all packages:
166180
- run: cargo xtask fmt-packages --check
167-
168-
# --------------------------------------------------------------------------
169-
# Tests
170-
171-
hil:
172-
name: HIL Test | ${{ matrix.target.soc }}
173-
runs-on: ubuntu-latest
174-
175-
strategy:
176-
fail-fast: false
177-
matrix:
178-
target:
179-
# RISC-V devices:
180-
- soc: esp32c2
181-
rust-target: riscv32imc-unknown-none-elf
182-
- soc: esp32c3
183-
rust-target: riscv32imc-unknown-none-elf
184-
- soc: esp32c6
185-
rust-target: riscv32imac-unknown-none-elf
186-
- soc: esp32h2
187-
rust-target: riscv32imac-unknown-none-elf
188-
# Xtensa devices:
189-
- soc: esp32
190-
- soc: esp32s2
191-
- soc: esp32s3
192-
193-
steps:
194-
- uses: actions/checkout@v4
195-
196-
# Install the Rust toolchain for RISC-V devices:
197-
- if: ${{ !contains(fromJson('["esp32", "esp32s2", "esp32s3"]'), matrix.target.soc) }}
198-
uses: dtolnay/rust-toolchain@v1
199-
with:
200-
target: ${{ matrix.target.rust-target }}
201-
toolchain: stable
202-
components: rust-src
203-
# Install the Rust toolchain for Xtensa devices:
204-
- if: contains(fromJson('["esp32", "esp32s2", "esp32s3"]'), matrix.target.soc)
205-
uses: esp-rs/[email protected]
206-
with:
207-
buildtargets: ${{ matrix.target.soc }}
208-
ldproxy: false
209-
210-
- uses: Swatinem/rust-cache@v2
211-
- run: cargo xtask build-tests ${{ matrix.target.soc }}

.github/workflows/hil.yml

Lines changed: 105 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: HIL
22

33
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened, ready_for_review]
46
merge_group:
57
workflow_dispatch:
68
inputs:
@@ -13,13 +15,61 @@ on:
1315
required: true
1416
default: "main"
1517

18+
# Cancel any currently running workflows from the same PR, branch, or
19+
# tag when a new workflow is triggered.
20+
#
21+
# https://stackoverflow.com/a/66336834
22+
concurrency:
23+
cancel-in-progress: true
24+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
25+
1626
env:
1727
CARGO_TERM_COLOR: always
1828
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1929

2030
jobs:
31+
build-xtasks:
32+
name: Build xtasks | ${{ matrix.host.arch }}
33+
runs-on: ubuntu-latest
34+
35+
strategy:
36+
fail-fast: false
37+
matrix:
38+
host:
39+
- arch: armv7
40+
rust-target: armv7-unknown-linux-gnueabihf
41+
- arch: aarch64
42+
rust-target: aarch64-unknown-linux-gnu
43+
44+
steps:
45+
- uses: actions/checkout@v4
46+
if: github.event_name != 'workflow_dispatch'
47+
- uses: actions/checkout@v4
48+
if: github.event_name == 'workflow_dispatch'
49+
with:
50+
repository: ${{ github.event.inputs.repository }}
51+
ref: ${{ github.event.inputs.branch }}
52+
53+
- name: Install Rust toolchain
54+
uses: dtolnay/rust-toolchain@v1
55+
with:
56+
toolchain: stable
57+
components: rust-src
58+
59+
- name: Install cross
60+
run: cargo install cross
61+
62+
- name: Build xtasks
63+
run: cross build --release --target ${{ matrix.host.rust-target }} -p xtask
64+
65+
- name: Upload artifact
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: xtask-${{ matrix.host.arch }}
69+
path: target/${{ matrix.host.rust-target }}/release/xtask
70+
2171
build-tests:
22-
name: HIL Test | ${{ matrix.target.soc }}
72+
name: Build HIL Tests | ${{ matrix.target.soc }}
2373
runs-on: ubuntu-latest
2474

2575
strategy:
@@ -36,6 +86,8 @@ jobs:
3686
- soc: esp32h2
3787
rust-target: riscv32imac-unknown-none-elf
3888
# # Xtensa devices:
89+
- soc: esp32
90+
rust-target: xtensa-esp32-none-elf
3991
- soc: esp32s2
4092
rust-target: xtensa-esp32s2-none-elf
4193
- soc: esp32s3
@@ -92,8 +144,8 @@ jobs:
92144
overwrite: true
93145

94146
hil:
95-
name: HIL Test | ${{ matrix.target.soc }}
96-
needs: build-tests
147+
name: Run HIL Tests | ${{ matrix.target.soc }}
148+
needs: [build-tests, build-xtasks]
97149
runs-on:
98150
labels: [self-hosted, "${{ matrix.target.runner }}"]
99151
strategy:
@@ -103,46 +155,75 @@ jobs:
103155
# RISC-V devices:
104156
- soc: esp32c2
105157
runner: esp32c2-jtag
106-
usb: USB2
158+
host: aarch64
159+
hubs: "1 3"
107160
- soc: esp32c3
108161
runner: esp32c3-usb
109-
usb: ACM0
162+
host: armv7
163+
hubs: "1-1"
110164
- soc: esp32c6
111165
runner: esp32c6-usb
112-
usb: ACM0
166+
host: armv7
167+
hubs: "1-1"
113168
- soc: esp32h2
114169
runner: esp32h2-usb
115-
usb: USB0
170+
host: armv7
171+
hubs: "1-1"
116172
# Xtensa devices:
173+
- soc: esp32
174+
runner: esp32-jtag
175+
host: aarch64
176+
hubs: "1 3"
117177
- soc: esp32s2
118178
runner: esp32s2-jtag
119-
usb: USB1
179+
host: armv7
180+
hubs: "1-1"
120181
- soc: esp32s3
121182
runner: esp32s3-usb
122-
usb: USB0
183+
host: armv7
184+
hubs: "1-1"
123185
steps:
124-
- uses: actions/checkout@v4
125-
if: github.event_name != 'workflow_dispatch'
126-
- uses: actions/checkout@v4
127-
if: github.event_name == 'workflow_dispatch'
128-
with:
129-
repository: ${{ github.event.inputs.repository }}
130-
ref: ${{ github.event.inputs.branch }}
131-
132186
- uses: actions/download-artifact@v4
133187
with:
134188
name: tests-${{ matrix.target.soc }}
135189
path: tests-${{ matrix.target.soc }}
190+
191+
- uses: actions/download-artifact@v4
192+
with:
193+
name: xtask-${{ matrix.target.host }}
194+
195+
- name: Cycle USB ports
196+
run: |
197+
export PATH=$PATH:/home/espressif/.cargo/bin
198+
for i in {1..10}; do
199+
# Disable all used hubs
200+
for hub in ${{ matrix.target.hubs }}; do
201+
sudo uhubctl -a off -l $hub
202+
done
203+
204+
sleep 0.5
205+
206+
# Enable all used hubs
207+
for hub in ${{ matrix.target.hubs }}; do
208+
sudo uhubctl -a on -l $hub
209+
done
210+
211+
sleep 0.5
212+
213+
if probe-rs list | grep -q "\[0\]:"; then
214+
break
215+
fi
216+
done
217+
136218
- name: Run Tests
137219
id: run-tests
138220
run: |
139221
export PATH=$PATH:/home/espressif/.cargo/bin
140-
cargo xtask run-elfs ${{ matrix.target.soc }} tests-${{ matrix.target.soc }}
222+
chmod +x xtask
223+
./xtask run-elfs ${{ matrix.target.soc }} tests-${{ matrix.target.soc }}
141224
142-
- name: Erase Flash on Failure
143-
if: ${{ failure() && steps.run-tests.conclusion == 'failure' }}
144-
env:
145-
ESPFLASH_PORT: /dev/tty${{ matrix.target.usb }}
225+
- name: Clean up
226+
if: always()
146227
run: |
147-
export PATH=$PATH:/home/espressif/.cargo/bin
148-
espflash erase-flash
228+
rm -rf tests-${{ matrix.target.soc }}
229+
rm -f xtask

.github/workflows/issue_handler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ jobs:
1313
- uses: actions/[email protected]
1414
with:
1515
project-url: https://github.com/orgs/esp-rs/projects/2
16-
github-token: ${{ secrets.PAT }}
16+
github-token: ${{ secrets.PAT }}

0 commit comments

Comments
 (0)