Skip to content

Commit

Permalink
Feat/issue template (#4)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
19 people authored Sep 9, 2024
1 parent 888e942 commit 25c25ac
Show file tree
Hide file tree
Showing 408 changed files with 16,953 additions and 12,644 deletions.
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ["bug", "status:needs-attention"]
assignees: ''

---

## Bug description

<!-- A clear and concise description of what the bug is. -->

- Would you like to work on a fix? [y/n]

## To Reproduce

<!-- Steps to reproduce the behavior. -->
1. ...
2. ...

<!-- Feel free to share the project where the bug can be reproduced. -->

<!-- Make sure you are able to reproduce the bug in the `main` branch, too. -->

## Expected behavior

<!-- A clear and concise description of what you expected to happen. Attach screenshots if needed. -->

## Environment

- Target device: [e.g. ESP32-S3] <!-- Use `espflash board-info` to get the target device iformation. -->
- Crate name and version: [e.g. esp-hal 0.20.0]
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Ask a question (Matrix Channel)
url: https://github.com/esp-rs/esp-hal/discussions/new
about: Ask questions in our Matrix channel.
- name: Ask a question (GitHub Discussions)
url: https://github.com/esp-rs/esp-hal/discussions/new
about: Ask questions and discuss via GitHub Discussions.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ["enhancement", "status:needs-attention"]
assignees: ''

---

## Motivations

<!--
If your feature request is related to a problem, please describe it.
-->

- Would you like to implement this feature? [y/n]

## Solution

<!-- Describe the solution you'd like. -->

## Alternatives

<!-- Describe any alternative solutions or features you've considered. -->

## Additional context

<!-- Add any other context or screenshots about the feature request here. -->
5 changes: 3 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ To help us review it efficiently, please ensure you've gone through the followin
- [ ] I have updated existing examples or added new ones (if applicable).
- [ ] I have used `cargo xtask fmt-packages` command to ensure that all changed code is formatted correctly.
- [ ] 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.
- [ ] My changes are in accordance to the [esp-rs API guidelines](https://github.com/esp-rs/esp-hal/blob/main/API-GUIDELINES.md)
- [ ] 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).
- [ ] My changes are in accordance to the [esp-rs API guidelines](https://github.com/esp-rs/esp-hal/blob/main/documentation/API-GUIDELINES.md)

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

### Pull Request Details 📖

Expand Down
4 changes: 3 additions & 1 deletion .github/actions/check-esp-hal/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,7 @@ runs:
--target=${{ inputs.target }} \
esp-hal
- name: Build (examples)
env:
CI: 1
shell: bash
run: cargo +${{ inputs.toolchain }} xtask build-examples esp-hal ${{ inputs.device }}
run: cargo +${{ inputs.toolchain }} xtask build-examples esp-hal ${{ inputs.device }} --debug
2 changes: 2 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ jobs:
- 'esp-println/**'
esp-riscv-rt:
- 'esp-riscv-rt/**'
xtensa-lx-rt:
- 'xtensa-lx-rt/**'
esp-storage:
- 'esp-storage/**'
esp-wifi:
Expand Down
63 changes: 16 additions & 47 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@ on:
push:
branches-ignore:
- "gh-readonly-queue/**"
- "main"
merge_group:
workflow_dispatch:

env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MSRV: "1.76.0"
MSRV: "1.77.0"
RUSTDOCFLAGS: -Dwarnings

# Cancel any currently running workflows from the same PR, branch, or
Expand Down Expand Up @@ -133,13 +134,26 @@ jobs:
cargo xtask build-package --features=esp32c6,ci --target=riscv32imac-unknown-none-elf esp-hal
cargo xtask build-package --features=esp32h2,ci --target=riscv32imac-unknown-none-elf esp-hal
# Verify the MSRV for all Xtensa chips:
- name: msrv RISCV (esp-wifi)
run: |
cargo xtask build-package --features=esp32c2,wifi,ble,async --target=riscv32imc-unknown-none-elf esp-wifi
cargo xtask build-package --features=esp32c3,wifi,ble,async --target=riscv32imc-unknown-none-elf esp-wifi
cargo xtask build-package --features=esp32c6,wifi,ble,async --target=riscv32imac-unknown-none-elf esp-wifi
cargo xtask build-package --features=esp32h2,ble,async --target=riscv32imac-unknown-none-elf esp-wifi
# Verify the MSRV for all Xtensa chips:
- name: msrv Xtensa (esp-hal)
run: |
cargo xtask build-package --toolchain=esp --features=esp32,ci --target=xtensa-esp32-none-elf esp-hal
cargo xtask build-package --toolchain=esp --features=esp32s2,ci --target=xtensa-esp32s2-none-elf esp-hal
cargo xtask build-package --toolchain=esp --features=esp32s3,ci --target=xtensa-esp32s3-none-elf esp-hal
- name: msrv Xtensa (esp-wifi)
run: |
cargo xtask build-package --toolchain=esp --features=esp32,wifi,ble,async --target=xtensa-esp32-none-elf esp-wifi
cargo xtask build-package --toolchain=esp --features=esp32s2,wifi,async --target=xtensa-esp32s2-none-elf esp-wifi
cargo xtask build-package --toolchain=esp --features=esp32s3,wifi,ble,async --target=xtensa-esp32s3-none-elf esp-wifi
- name: msrv (esp-lp-hal)
run: |
cargo xtask build-package --features=esp32c6 --target=riscv32imac-unknown-none-elf esp-lp-hal
Expand All @@ -164,48 +178,3 @@ jobs:

# Check the formatting of all packages:
- run: cargo xtask fmt-packages --check

# --------------------------------------------------------------------------
# Tests

hil:
name: HIL Test | ${{ matrix.target.soc }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
target:
# RISC-V devices:
- soc: esp32c2
rust-target: riscv32imc-unknown-none-elf
- soc: esp32c3
rust-target: riscv32imc-unknown-none-elf
- soc: esp32c6
rust-target: riscv32imac-unknown-none-elf
- soc: esp32h2
rust-target: riscv32imac-unknown-none-elf
# Xtensa devices:
- soc: esp32
- soc: esp32s2
- soc: esp32s3

steps:
- uses: actions/checkout@v4

# Install the Rust toolchain for RISC-V devices:
- if: ${{ !contains(fromJson('["esp32", "esp32s2", "esp32s3"]'), matrix.target.soc) }}
uses: dtolnay/rust-toolchain@v1
with:
target: ${{ matrix.target.rust-target }}
toolchain: stable
components: rust-src
# Install the Rust toolchain for Xtensa devices:
- if: contains(fromJson('["esp32", "esp32s2", "esp32s3"]'), matrix.target.soc)
uses: esp-rs/[email protected]
with:
buildtargets: ${{ matrix.target.soc }}
ldproxy: false

- uses: Swatinem/rust-cache@v2
- run: cargo xtask build-tests ${{ matrix.target.soc }}
129 changes: 105 additions & 24 deletions .github/workflows/hil.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: HIL

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
merge_group:
workflow_dispatch:
inputs:
Expand All @@ -13,13 +15,61 @@ on:
required: true
default: "main"

# Cancel any currently running workflows from the same PR, branch, or
# tag when a new workflow is triggered.
#
# https://stackoverflow.com/a/66336834
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
build-xtasks:
name: Build xtasks | ${{ matrix.host.arch }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
host:
- arch: armv7
rust-target: armv7-unknown-linux-gnueabihf
- arch: aarch64
rust-target: aarch64-unknown-linux-gnu

steps:
- uses: actions/checkout@v4
if: github.event_name != 'workflow_dispatch'
- uses: actions/checkout@v4
if: github.event_name == 'workflow_dispatch'
with:
repository: ${{ github.event.inputs.repository }}
ref: ${{ github.event.inputs.branch }}

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: stable
components: rust-src

- name: Install cross
run: cargo install cross

- name: Build xtasks
run: cross build --release --target ${{ matrix.host.rust-target }} -p xtask

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: xtask-${{ matrix.host.arch }}
path: target/${{ matrix.host.rust-target }}/release/xtask

build-tests:
name: HIL Test | ${{ matrix.target.soc }}
name: Build HIL Tests | ${{ matrix.target.soc }}
runs-on: ubuntu-latest

strategy:
Expand All @@ -36,6 +86,8 @@ jobs:
- soc: esp32h2
rust-target: riscv32imac-unknown-none-elf
# # Xtensa devices:
- soc: esp32
rust-target: xtensa-esp32-none-elf
- soc: esp32s2
rust-target: xtensa-esp32s2-none-elf
- soc: esp32s3
Expand Down Expand Up @@ -92,8 +144,8 @@ jobs:
overwrite: true

hil:
name: HIL Test | ${{ matrix.target.soc }}
needs: build-tests
name: Run HIL Tests | ${{ matrix.target.soc }}
needs: [build-tests, build-xtasks]
runs-on:
labels: [self-hosted, "${{ matrix.target.runner }}"]
strategy:
Expand All @@ -103,46 +155,75 @@ jobs:
# RISC-V devices:
- soc: esp32c2
runner: esp32c2-jtag
usb: USB2
host: aarch64
hubs: "1 3"
- soc: esp32c3
runner: esp32c3-usb
usb: ACM0
host: armv7
hubs: "1-1"
- soc: esp32c6
runner: esp32c6-usb
usb: ACM0
host: armv7
hubs: "1-1"
- soc: esp32h2
runner: esp32h2-usb
usb: USB0
host: armv7
hubs: "1-1"
# Xtensa devices:
- soc: esp32
runner: esp32-jtag
host: aarch64
hubs: "1 3"
- soc: esp32s2
runner: esp32s2-jtag
usb: USB1
host: armv7
hubs: "1-1"
- soc: esp32s3
runner: esp32s3-usb
usb: USB0
host: armv7
hubs: "1-1"
steps:
- uses: actions/checkout@v4
if: github.event_name != 'workflow_dispatch'
- uses: actions/checkout@v4
if: github.event_name == 'workflow_dispatch'
with:
repository: ${{ github.event.inputs.repository }}
ref: ${{ github.event.inputs.branch }}

- uses: actions/download-artifact@v4
with:
name: tests-${{ matrix.target.soc }}
path: tests-${{ matrix.target.soc }}

- uses: actions/download-artifact@v4
with:
name: xtask-${{ matrix.target.host }}

- name: Cycle USB ports
run: |
export PATH=$PATH:/home/espressif/.cargo/bin
for i in {1..10}; do
# Disable all used hubs
for hub in ${{ matrix.target.hubs }}; do
sudo uhubctl -a off -l $hub
done
sleep 0.5
# Enable all used hubs
for hub in ${{ matrix.target.hubs }}; do
sudo uhubctl -a on -l $hub
done
sleep 0.5
if probe-rs list | grep -q "\[0\]:"; then
break
fi
done
- name: Run Tests
id: run-tests
run: |
export PATH=$PATH:/home/espressif/.cargo/bin
cargo xtask run-elfs ${{ matrix.target.soc }} tests-${{ matrix.target.soc }}
chmod +x xtask
./xtask run-elfs ${{ matrix.target.soc }} tests-${{ matrix.target.soc }}
- name: Erase Flash on Failure
if: ${{ failure() && steps.run-tests.conclusion == 'failure' }}
env:
ESPFLASH_PORT: /dev/tty${{ matrix.target.usb }}
- name: Clean up
if: always()
run: |
export PATH=$PATH:/home/espressif/.cargo/bin
espflash erase-flash
rm -rf tests-${{ matrix.target.soc }}
rm -f xtask
2 changes: 1 addition & 1 deletion .github/workflows/issue_handler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ jobs:
- uses: actions/[email protected]
with:
project-url: https://github.com/orgs/esp-rs/projects/2
github-token: ${{ secrets.PAT }}
github-token: ${{ secrets.PAT }}
Loading

0 comments on commit 25c25ac

Please sign in to comment.