Fun Maker
46eed04403
Add Config structure for I2s ( #3985 )
...
* Add Config structure for I2s
* Add apply_config for I2sTx/I2sRx
2025-09-04 10:16:49 +00:00
Dániel Buga
92aba1ae6e
Make sure all tests define the app descriptor ( #3989 )
2025-08-26 10:45:21 +00:00
Juraj Sadel
c6437c7a44
Update examples and qa-test to new bootloader ( #3541 )
2025-05-26 10:37:41 +00:00
Dániel Buga
cb4b09fb62
Rework GPIO matrix impl ( #3395 )
...
* WIP
* Clean up init_gpio
* Expand docs a bit
* Remove Input/OutputConnection
* Not everything has PCNT and it's not important for the example
* Remove Frozen, enable input when creating the signal
* Hide fields, add getters
* Update MG
* Add force GPIO matrix fns
* Fix formatting
* Mention latency in the docs
* Rename number to gpio_number
* Deduplicate pin setup code
* Reword associated peripheral
* Rename with_inverted_input/output
* Remove link to doc-hidden OutputSignal
* Fix link syntax
2025-04-25 10:33:29 +00:00
Kirill Mikhailov
b33b877592
Bump edition to 2024, bump MSRV to 1.85 ( #3391 )
...
* inter-state
* inter-state (2)
* warnings fix
* fix warnings
* fmt + changelogs
* another unsafe extern "C" doode
* real fmt now
* MSRV + format
* Ignore unsafe_op_in_unsafe_fn lint for now in esp-hal and esp-wifi
* msrv + fmt
* ugh....
* get lcd_cam example right
* expr_2021 -> expr experiment
* gagagugu
* reviews
* more unneeded unsafes (help)
* finish esp-hal unsafe cleanup
* each unsafe call is marked separately
fmt
* should be good now (?)
* piece was never an option...
* dumb
2025-04-22 10:39:11 +00:00
Dániel Buga
11ba2509d2
Peripheralize DMA channels ( #3372 )
2025-04-14 09:09:54 +00:00
Dániel Buga
9db968b473
Remove Peripheral
/PeripheralRef
( #3305 )
...
* Rework GPIOs without Peripheral/PeripheralRef
* Completely remove Peripheral/Ref
* Remove lifetime from DMA Channel structs
* Try to document changes
* Explain reborrow
* Add lifetime to Instance traits, make them public
* Add Trace to changelog
* Remove lifetimes from Instance traits
* Rewrite section about singletons
* Remove unintended doc comment
* Remove inherent degrade
* Fix reiniting esp-wifi
* Add examples to the root-level docs
2025-04-03 10:40:07 +00:00
Dominic Fischer
5cec008506
Refactor I2S driver to take DmaDescriptor
s later in construction ( #3324 )
...
* Refactor I2S driver to take `DmaDescriptor`s later in construction
* unused import
* stray test
2025-04-03 07:53:56 +00:00
Dániel Buga
8c69e8cb51
Newtype fugit Rate, Instant and Duration ( #3083 )
...
* Newtype fugit Rate, Instant and Duration
* Document, remove time::now
* Fix perf
* Tweak docs
2025-02-04 17:23:08 +00:00
Dániel Buga
ae35b465bf
Fix DMA not having data available in time ( #3003 )
...
* Fix DMA not having data available in time
* Fix not registering I2S interrupts when only using TX
2025-01-21 20:28:15 +00:00
Dániel Buga
0894e301c9
Replace pointer derefs with regs
function ( #2974 )
...
* Do not mix peripheral singletons with PAC types
* Replace pointer derefs with regs function
2025-01-20 08:30:05 +00:00
Dániel Buga
571760884b
Update our time driver for upcoming embassy changes ( #2701 )
...
* Add a timer-driven task
* Spawn another timer
* Log
* foo
* Do not access current time on each schedule
* Update generic queue
* Minimize alarm priorities
* Point to github with patches
* Fix build without any queue impl selected
* Remove explicit generic-queue features
* Define cfgs, fix calling something uninitialized
* Clean up RefCell+generic queue
* Fix arg order
* Feature
* Fix single integrated-timer queue
* Fix next expiration when arming
* Add note
* Adjust impl to latest changes
* Local patch
* Refactor the refactor refactor
* Track the timer item's owner
* Clear owner on dequeue
* Clean up
* Point at the right branch
* Fix panic message
* Hide private function
* Remove integrated-timer references
* Point at upstream embassy
* Configure via esp-config
* Document, clean up, fix
* Hack
* Remove patches
* Update config separator, test the complex variant
* Undo esp-config hack
* Remove trouble example, update edge-net
* Update test deps
* Document
* Update bt-hci.
* Fix generic queue
* Fix panic message
* Fix UB
* Fix rebase
* Resolve UB
* Avoid mutable reference in interrupt executor
---------
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2025-01-14 16:17:58 +00:00
Dániel Buga
848029b152
Test all feature sets ( #2901 )
...
* Mark interconnect as unstable
* Explicitly set unstable feature in HIL tests
* WIP append feature set name to artifact
* Add name to feature sets, build all combinations
* Fix tests
* Provide a looping executor for stable async tests
* Fix usb serial jtag
* Hide interconnect types
2025-01-09 13:58:14 +00:00
Dániel Buga
7f8af8a651
Remove prelude ( #2845 )
...
* Remove prelude
* Changelog
2024-12-20 10:24:57 +00:00
Juraj Sadel
d54f8440a5
HIL(QOL): Use global timeout instead of timeout macros ( #2489 )
...
* HIL(QOL): Add missing timeouts to various tests
* Increase timeouts for ECC
* Use global timeout in hil tests
* sha: increase test_digest_of_size_1_to_200 timeout from 10 to 15 seconds
2024-12-04 12:03:39 +00:00
Dániel Buga
ef98e2b24f
[DMA 7/8]: Remove Dma
, move channels to Peripherals
( #2545 )
...
* Move DMA channels into Peripherals
* Initialize DMA in the critical section needed for clock management
* Update esp-hal/MIGRATING-0.22.md
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
---------
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2024-11-25 09:31:18 +00:00
Dániel Buga
3a4a7632b1
[DMA 4/8]: Apply Peripheral pattern ( #2526 )
...
* Create DMA Channels inside peripherals
* Add PARL_IO into_async functions
* Update tests and examples
* Restore configurable priority via DmaChannel
* Add mode param to DPI driver
* Fix test by raising SPI frequency
* Fix split
* Changelog
* Update esp-hal/CHANGELOG.md
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
2024-11-22 09:05:22 +00:00
Dániel Buga
973671c3cb
[DMA 3/8] Remove ChannelCreator types, temporarily disable burst mode ( #2403 )
...
* Remove ChannelCreator types and burst mode
* Fix up I2sParallel
* Always enable burst transfering descriptors
* Configure burst transfer with a non-bool for future chip support
* Reuse buffer preparation code
* Update LoopBuf as well
* Update lcd_cam tests
* Rename config, fix changelog
2024-11-21 15:01:29 +00:00
Dániel Buga
fbc57542a8
Remove pins from Io
( #2508 )
...
* Split pins off of Io
* Remove the GPIO peripheral
* p.GPIO
2024-11-12 10:36:25 +00:00
Dániel Buga
0da6eec089
Move I2S drivers to i2s::master and i2s::parallel ( #2472 )
...
* Move I2S drivers to i2s::master and i2s::parallel
* Remove mention of master mode
2024-11-07 09:39:08 +00:00
Dániel Buga
0c86740418
Peripheral interconnect redo, vol 2 (split()
) ( #2418 )
...
* Replace peripheral connection conversions with split
* Constrain Flex conversions
2024-11-04 11:29:28 +00:00
Dániel Buga
40c0a6944e
into_async
(#2430 )
...
* Remove configure_for_async
* Add into_async and into_blocking to I2c
* Add into_async and into_blocking to UsbSerialJtag
* Rework LCD_CAM
* Rmt
* RSA
* TWAI
* Uart
* Documentation
* Disable interrupts set on other core
* Move configure into RegisterAccess
* Disable interrupts on the other core
* Use EnumSet in RMT
2024-11-04 09:32:12 +00:00
Dániel Buga
f9c7d06a6e
Disable i2s test ( #2439 )
2024-10-31 14:16:39 +00:00
Björn Quentin
416c1481ae
Circular dma improvements ( #2409 )
...
* Check for error when pushing into a circular dma transaction too late
* Adapt tests
* Adapt example
* Don't block forever if trxing to pop from a circular DMA transfer too late
* Have a dedicated error for circular-DMA reading/writing too late
* Stop I2S RX before resetting it
* Migration guide
* Address review comment, make CI pass
* Adopt ideas from review
* Fix
* Update esp-hal/MIGRATING-0.21.md
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
* assert
---------
Co-authored-by: Dominic Fischer <14130965+Dominaezzz@users.noreply.github.com>
2024-10-30 16:25:29 +00:00
Dániel Buga
d914a0301f
Erase i2s ( #2367 )
...
* Implement I2S type erasure
* Clean up
2024-10-22 06:33:27 +00:00
Dániel Buga
99a579973a
Preparatory i2s refactor ( #2316 )
...
* Take self
* Consolidate signal impls
* Remove traits
* Deduplicate impls
* Seal AcceptedWord
* Changelog
* Migration guide
---------
Co-authored-by: Jesse Braham <jessebraham@users.noreply.github.com>
2024-10-16 13:04:00 +00:00
Dániel Buga
7ca1b4376f
Erase DMA type params ( #2261 )
...
* Split PdmaChannel into two
* Take &self in PDMA traits
* Implement type-erased PDMA channels
* Remove Degraded assoc type
* Move degrade fns to base trait
* Use PeripheralDmaChannel on constructors only
* Remove WithDmaAes use
* Erase DMA type params
* Clean up examples/tests
* Remove redundant trait bounds
* Remove peripheral-specific DMA traits
* Document i2s change
* Clean up parl_io
* Deduplicate InterruptAccess
* Fix cfg
* Implement runtime compatibility check
* Clean up a bit
* Document changes
* Swap Channel type params, erase dma channel
* Unsplit traits
* Remove redundant cfg
* Fix docs
* Simplify DmaEligible
* Remove unsafe code
* Revert "Swap Channel type params, erase dma channel"
This reverts commit 415e45e44b297fd3cb55b4261c9ce151cca4b9c9.
* Allow different degraded DMA types
* Allow converting into peripheral-specific DMA channel, use it for compat check
* Erase PDMA types without AnyPdmaChannel
* Hide degrade fns for now, remove from MG
* Clean up SPI slave
* Fix QSPI test
* Fix mem2mem, fix S3 peripherals
* Fix S2
* Remove AnyPdmaChannel
* Remove PeripheralDmaChannel
* Remove unnecessary degrade call
2024-10-08 14:09:27 +00:00
Dániel Buga
c7a2368845
Print test panics using semihosting
( #2257 )
...
* 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
2024-10-04 06:31:39 +00:00
Dániel Buga
25eff6a255
Enable I2S tests on ESP32 and work around first sample issue ( #2194 )
...
* Enable I2S tests on ESP32 and work around first sample issue
* Fix sample->channel assignment inconsistency
* Add to changelog
2024-09-19 15:13:25 +00:00
Dániel Buga
46be3b19b5
Some minor I2S cleanups ( #2190 )
...
* Clean up rx_start
* Improve readability of register manipulation
* Enable failing tests on ESP32
* Improve consistency
* Merge tests
* Disable ESP32 for now
* Clean up some cfgs
* Avoid as pointer-casts
* Inline wait_for_dma_done
* Remove a level of indirection
* Fix typos
* Resolve questionmarks
2024-09-19 07:33:52 +00:00
Dániel Buga
d9532bbba7
Fix and enable I2S tests on ESP32-S2 ( #2181 )
...
* Fix PDMA channels, use peripheral signal instead of external connection
* Fix i2s test setup for esp32s2
2024-09-18 09:43:37 +00:00
Dániel Buga
562c891ef9
SPI pins are no longer optional ( #2133 )
...
* SPI pins are no longer optional, rename DummyPin
* Swap QSPI test expected levels
* Tweak documentation around Level, implement PeripheralOutput
* Fmt
2024-09-12 10:59:12 +00:00
Dániel Buga
f8e2341116
Fix pin collision in I2S tests ( #2147 )
2024-09-12 06:34:31 +00:00
Juraj Sadel
f374d6a102
Enable SPI_DMA_XX_ASYNC and _PCNT tests on ESP32 and S2, remove GPIO usage from description ( #2140 )
2024-09-11 10:23:07 +00:00
Sergio Gasquez Arcos
b5f0246129
Reordered RX-TX pairs to be consistent ( #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 <bugadani@gmail.com>
* fix: Diff
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* 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 <bugadani@gmail.com>
2024-09-06 09:56:10 +00:00
Dániel Buga
99bf346898
Remove the need to manually pass clocks around ( #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
2024-09-04 14:13:51 +00:00
Kirill Mikhailov
9bec6a1806
Adding I2C
HIL test ( #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
2024-09-04 12:45:58 +00:00
Dániel Buga
447411fb58
Rework hal initialization ( #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
2024-09-02 13:38:46 +00:00
Dániel Buga
ec130877b7
Disable RTT polling in HIL tests by default ( #1960 )
...
* Disable defmt-rtt by default
* Update i2s test based on changes done to async
* fmt
* Update readme
* Update more tests
2024-08-19 13:47:22 +00:00
Kirill Mikhailov
163f45076e
Enable i2s
HIL test for esp32h2
( #1755 )
...
Delete invalid comment
2024-07-04 15:28:37 +00:00
Dominic Fischer
7753551671
[2/3] DMA Move API: Move DMA descriptors to peripheral drivers ( #1719 )
...
Co-authored-by: Dominic Fischer <git@dominicfischer.me>
2024-06-26 14:31:41 +00:00
Sergio Gasquez Arcos
e46e80b8c1
Enable C2 HIL ( #1680 )
...
* ci: Enable c2 hil
* docs: Update pins and add C2
* feat: Update C2 probe-rs args
* test: Update pins and disable failing tests
* docs: Update S3 wires
* ci: Enable C2 hil tests
2024-06-26 14:17:40 +00:00
Björn Quentin
1630868d06
Improve DMA pop
implementation ( #1664 )
...
* Improve DMA `pop` implementation
* CHANGELOG.md
* Minor Fixes
* Cover more edge-cases in DMA pop, make sure the test is testing these
* Fixes
* Working available/pop
* Remove misleading `last_in_dscr_address`
* Remove unnecessary check from `available`
* Remove now-unused function
* Remove duplicate change-log entry
2024-06-19 12:51:24 +00:00
Björn Quentin
79d617da38
Add I2S HIL test ( #1635 )
...
* Add I2S HIL test
* Disable I2S HIL test for H2
* Disable interrupt latency test for now
* Avoid triggering rustfmt check
2024-05-29 13:56:54 +00:00