* chore: update bt-hci version
* chore: use released version of trouble-host
* Make sure clippy fails, fix warning
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Abstract out LP-core targeting packages
* Encode targets_lp_core in Cargo.toml
* Encode architecture compatibility in Cargo.toml
* Move semver_checked into Cargo.toml
* Cache parsed tomls
* Parse simple feature sets from Cargo.toml
* Move all basic feature rules to Cargo.toml
* Add check configs
* Limit command length on Windows
* Update cargo.rs
* Add clippy configs
* Use a single syntax, use a single doc-config line
* Fix known problems
* Run cargo check in CI command
* Fix more problems
* Fix esp-storage
* Make a singleton form FlashStorage constructor, removed Default
* changelog
* Simplify, don't need the Singleton
* changelog
* reviews and build errors
* fix dead links
* fmt
* Use cargo-batch
* Run CI on mac runner
* Rely on MSRV and nightly jobs to lint
* Build docs separately
* Don't copy examples - fix builds on stable
* Run everything by default, set CI env var in ci command
* Run batched commands with RUSTC_BOOTSTRAP enabled
* Force cargo-batch to correctly ignore unstable option
* Test with nightly
* Use a persistent target folder, remove cache
* Don't delete the lp examples
* Restore target dir
* Build with stable again
* Fix rebase fail
* Remove handling tests
* Remove redundant code
* Restore repeated test run option
* Add simpler cargo check
* Introduce check-packages
* Remove stabilized -Zdoctest-xcompile
* Clean up commented code
* Remove more stuff
* Fix uart_uhci test
* No badger for us
* RMT: add check_data_eq to log more details on test failure
if defmt is enabled
* RMT: add minimal RmtWriter
- de-duplicates the copy-to-hardware code
- splits copying data to the buffer and `start_send`
- this also paves the way for supporting other data types (like
iterators instead of slices)
* RMT: add minimal RmtReader
- de-duplicates the copy-from-hardware code
- this also paves the way for supporting other data types (like
iterators instead of slices) and wrapping rx (RmtReader as implemented
here already supports that, but it's unused for now)
* Make UHCI more configurable
* UHCI hil tests improvements
* change DMA to use DmaXXChannel
* further merging
* Apply suggested changes
* split structs
* changelog
* changelog + format
* First draft of multicore strategies implementation
* Implemented second core active detection mechanism
Removed dependency to esp-hal
* Guarded flash unlock as well
Made esp_metadata_generated only check for chips if not building with "emulation"
Added more documentation
* Applied suggestions
* Restored second core active detection for esp32
* Flipped check of stall condition on esp32
* Implement defmt::Format and common traits
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Add defmt to esp-storage
* changelog
* Fix technically-incorrect feature comment
* Add some docs for pub API
* Move demft in the optional deps
* reviews
* reviews
* Turn country code and default power mode into runtime configs
* Move G_CONFIG setup to wifi::new
* Turn most configs into runtime options
* Set core ID to current one
* Mark most options unstable
* Define a metadata symbol for SWD
* Use `cfg_if` rather than multiple `cfg`s
* Eliminate some pointless variable declarations
* Make derives match for both versions of `RtcCalSel`
* Disallow instantiation of `Rtwdt` or `Swd` outside of `Rtc`
* Add a CI workflow for checking links in .rs, .md, and .toml files accross esp-hal workspace
fix dead links
* exclude unpublished crate documentation's links
* Add .lycheeignore with excluded links
* play with patterns
* don't forget to remove
* RMT: move configure_*x_channel to Channel impl
These methods are essentially (unsafe) constructors for Channel, so it
makes sense for them to be part of the Channel rather than free-standing
functions.
Importantly, this refactoring also reorders channel configuration and
creation of GenericPeripheralGuard. Note that it's still not guranteed
that the peripheral is clocked when configuring it, since code like the
following compiles:
```
let ch0_creator = {
let rmt = Rmt::new(peripherals.RMT, freq).unwrap();
rmt.channel0;
// Other fields of `rmt` are dropped, including the
// `Rmt.peripheral: RMT` field.
// Since not GenericPeripheralGuard has been created at this
// point, this will disable the peripheral's clock.
};
// This re-enables RMT clocks. With this commit, it does so before
// actually accessing RMT registers. However, the clock configuration that
// happens in Rmt::new() will have been lost!
// -> will be fixed in a later PR
let ch0 = ch0_creator.configure_tx(pin, config).unwrap();
```
There's no change to the API here.
* RMT: merge transmit_continuously{,with_loopcount}
...by introducing an extra loopcount argument.
Add the LoopCount enum such that the resulting code remains readable.
This is in preparation for adding more variants of rx/tx methods in
order to avoid combinatoric explosion.
* RMT: use stop_tx if available, only for esp32 fill buffer with end markers
note that stop_tx requires an update() call (according to TRMs and to IDF code)
for consistency, this also removes all update() calls from the low-level
methods in favor of explicit calls
this de-duplicates some update calls for start_tx()
* RMT: deduplicate ContinuousTxTransaction::{stop, stop_next}
* RMT: remove spurious ch_tx_thr_event access on Rx channel
for esp32 + esp32s2, which don't support the ch_rx_thr_event (this was
partially cleaned up in #3701 already, but this instance was overseen)
* RMT: assert!(...is_ok()) -> unwrap in HIL tests
* Clean up arch-specific task code
* Avoid a few redundant unwraps in run_scheduler
* Pass TaskPtr to alarm callback
* Ensure the radio runs on the scheduler's core
* clippy
* Add warnings
* Add priority to tasks
* Separate Mutex out of counting Semaphore
* Add priority inheritance to mutexes
* Test priority inheritance, fix issues
* Compare against the owner's current priority
* Use riscv-rt's startup code
* CHANGELOG.md
* Enable v-trap - get rid of one unused function
* Re-use riscv-rt's TrapFrame instead of keeping a copy of it
* fmt
* Update riscv-rt rev
* Enable defmt
* use riscv-rt's trap handling
* Compile on stable
* (Re)add the SP fixing code
* Move comment
* Update `riscv*` deps
* esp-riscv-rt: Remove the (unused) CI feature
* Add wait queue to semaphores
* Spawn idle task, prevent re-waking a ready task
* Add wait queues to queues
* Clean up wait queues
* Remove task from wait queue on timeout/resume
* Do not re-schedule deleted task
* Implement simple stack overflow detection
* Task deletion: remove task from queues in one place
* Fix storing context into freed memory
* Restore idle task stack size
* Undo alloc changes
* Don't let task sleep if wakeup time is in the past
* Improve codegen of esp_preempt_now