Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
695 commits
Select commit Hold shift + click to select a range
2254957
examples: added rtic compatibility examples for stm32l4
michelrandahl Jan 15, 2026
067c04a
stm32,exti: added PeriMode to ExtiInput and implemented blocking version
michelrandahl Jan 26, 2026
be2c65d
Merge pull request #5303 from HybridChild/fix/stm32-i2c-v1
xoviat Jan 26, 2026
268ce21
add Wiznet W6300-EVB-Pico2 UDP echo example
lhalf Jan 26, 2026
1b31782
Merge pull request #5297 from arthurbabu/ble-split
xoviat Jan 26, 2026
4b5be21
Implement WakeGuard
jamesmunns Jan 21, 2026
debeb9c
Address review comment
jamesmunns Jan 22, 2026
ae41f71
wpan: use pac to disable/enable clocks
xoviat Jan 26, 2026
a68a1e1
Merge pull request #5276 from jamesmunns/james/wakeguard
jamesmunns Jan 26, 2026
393ef1b
[MCXA] i2c: remove Result type alias
Jan 22, 2026
60e1e4e
[MCXA] i2c: Add target driver
Jan 22, 2026
099c67f
microchip: Add UART driver
kurtjd Jan 25, 2026
13d5c6a
Merge pull request #5307 from lhalf/main
lulf Jan 27, 2026
90f58ec
Allow user to define DMA interrupts
everdrone Jan 27, 2026
a7f9a2d
Merge pull request #4962 from dobrowolski-lukasz/pioclk
Dirbaio Jan 27, 2026
aff8ee9
Merge pull request #4950 from Ragarnoy/aon-timer
Dirbaio Jan 27, 2026
3fb4a3d
use ChannelInterrupt instead of creating a new trait
everdrone Jan 27, 2026
70e8e04
Merge branch 'main' into user_dma_irq
everdrone Jan 27, 2026
80ae10b
Update examples to use DMA in bind_interrupts
everdrone Jan 27, 2026
bb2ecf1
rustfmt examples
everdrone Jan 27, 2026
d968863
fix(sdmmc): respect peripheral bus width configuration in SD card init
vincentberthier Jan 27, 2026
dea2437
Merge pull request #5301 from kurtjd/microchip-uart
felipebalbi Jan 27, 2026
4f91e2b
[MCXA] i2c: review comments
Jan 27, 2026
7e59a58
[MCXA] lpi2c: allow application to configure clocks
Jan 27, 2026
a48caae
static checking for bound dma interrupts
everdrone Jan 27, 2026
8f29eb2
rustfmt
everdrone Jan 27, 2026
0f12483
update tests
everdrone Jan 27, 2026
1c195a3
bindings must be passed down for generic channel functions
everdrone Jan 27, 2026
472e82c
fix irqs passed before dma buffer
everdrone Jan 27, 2026
e44c3ad
pass dma buffer before irqs in pwm functions
everdrone Jan 27, 2026
78608f4
fix dma binding assertion function visibility, move ChannelExt into
everdrone Jan 28, 2026
bcc92ca
Merge pull request #5315 from everdrone/user_dma_irq
xoviat Jan 28, 2026
7e5d73e
stm32,exti: change ExtiInput::new::<Blocking>, to ExtiInput::new_bloc…
michelrandahl Jan 28, 2026
9d6fb60
stm32-i2c_v2: Handle early STOP and drain excess bytes in blocking sl…
HybridChild Jan 28, 2026
cc1c97a
stm32: replace assert_dma_binding with dma_into
xoviat Jan 28, 2026
517414f
Merge pull request #5319 from xoviat/dma
xoviat Jan 28, 2026
f11f94a
chore(sdmmc): reformat (nightly)
vincentberthier Jan 28, 2026
fff20d1
Merge pull request #5317 from vincentberthier/fix/sdmmc-bus-width-sel…
xoviat Jan 28, 2026
7759288
[MCXA] i2c: remove unnecessary non_exhaustive
Jan 28, 2026
cf585ff
Merge pull request #5311 from felipebalbi/mcxa/i2c
felipebalbi Jan 28, 2026
8563fc2
[MCXA] i2c: split errors into Setup and I/O variants
Jan 28, 2026
04798b1
[MCXA] i3c: add Instance trait
Jan 28, 2026
4e1c6d2
Merge pull request #5321 from felipebalbi/mcxa/i3c
felipebalbi Jan 28, 2026
697143d
[MCXA] i3c: split errors into Setup and I/O variants
Jan 28, 2026
590f46c
Fix typo's in examples for rp235x
codeyorick Jan 28, 2026
bed13c6
stm32: simplify low-power wake guard
Dirbaio Jan 29, 2026
c876805
Merge pull request #5326 from embassy-rs/stm32-simplify-lowpower
Dirbaio Jan 29, 2026
bfa41e8
Merge pull request #5325 from codeyorick/fix-typos-in-rp235x-examples
Dirbaio Jan 29, 2026
48db92c
More hacks
jamesmunns Jan 29, 2026
d6b6a33
stm32/i2c_v2: Fix async slave by using DMA completion instead of TC f…
HybridChild Jan 29, 2026
ab7cbfc
Add optional perf counter feature
jamesmunns Jan 29, 2026
ce26489
Fix doc comments
jamesmunns Jan 29, 2026
9a30398
examples/stm32f0 i2c slave, blocking and async
HybridChild Jan 29, 2026
55522de
Merge branch 'main' into stm32-i2c-v2
HybridChild Jan 29, 2026
9fff790
make binding require copy
xoviat Jan 29, 2026
dff15ae
Merge pull request #5330 from xoviat/binding
xoviat Jan 29, 2026
4fc9792
[MCXA] i2c: review comments
Jan 29, 2026
b32b05e
[MCXA] i3c: review comments
Jan 29, 2026
8932de6
Merge pull request #5322 from felipebalbi/mcxa/i2c
felipebalbi Jan 29, 2026
68f831a
Merge pull request #5324 from felipebalbi/mcxa/i3c
felipebalbi Jan 29, 2026
ec506cf
Add some docs and future impl notes
jamesmunns Jan 29, 2026
3082d45
Merge pull request #5329 from jamesmunns/james/mcxa-perf-counters
jamesmunns Jan 29, 2026
4ae4e0b
Add initial pass of a development guide
jamesmunns Jan 29, 2026
23d37ea
Error docs
jamesmunns Jan 29, 2026
8ebbc38
Address review comments
jamesmunns Jan 29, 2026
7dcdce3
Merge pull request #5331 from jamesmunns/james/initial-devguide
jamesmunns Jan 29, 2026
7b0521c
Set the source and destination port for GPDMA and HPDMA
kevswims Jan 29, 2026
6b6fb01
Merge pull request #5332 from lucimobility/bugfix/hpdma-port-selection
Dirbaio Jan 29, 2026
0e7600f
stm32: add DMA Channel driver
Dirbaio Jan 29, 2026
ea1d944
Merge pull request #5327 from embassy-rs/loldma
xoviat Jan 30, 2026
acdb320
stm32/i2_v2c: Fix async slave RESTART detection and clear NACKF on STOP
HybridChild Jan 30, 2026
7a61bdb
examples/stm32f0: Add i2c loopback test
HybridChild Jan 30, 2026
ecfaf7b
examples/stm32f0: Add more tests to i2c loopback test
HybridChild Jan 30, 2026
e5b07ea
examples/stm32f0: Move i2c_loopback_test_async to new stm32f072 folder
HybridChild Jan 30, 2026
c34879f
stm32: Add entry to CHANGELOG
HybridChild Jan 30, 2026
8899dd0
Merge branch 'main' into fix/stm32-i2c-v2-slave
HybridChild Jan 30, 2026
34b208d
Merge pull request #5333 from HybridChild/fix/stm32-i2c-v2-slave
xoviat Jan 30, 2026
b93f200
Clean up hacks into usable config
jamesmunns Jan 30, 2026
e798dc7
Revert some hacks
jamesmunns Jan 30, 2026
236278f
Merge pull request #5243 from michelrandahl/blocking-exti
lulf Jan 30, 2026
91bebe8
Auto-gate some clocks, add a blinky example to show processor and OsT…
jamesmunns Jan 30, 2026
76c9c96
Address review comments, fix some remaining docs
jamesmunns Jan 30, 2026
6fd9228
Fix some dead import
jamesmunns Jan 30, 2026
b440256
Merge pull request #5336 from jamesmunns/james/corepow
jamesmunns Jan 30, 2026
95f437d
stm32/qspi - add support for AutoPolling mode
orukusaki Jan 30, 2026
5a5ef3c
update stm32l432 mmap example
orukusaki Jan 30, 2026
1601718
update stm32f7 qspi example
orukusaki Jan 30, 2026
c485f4c
Merge pull request #5339 from orukusaki/qspi-autopoll
xoviat Jan 30, 2026
241d704
tuntap: store hardware address in TunTapDevice
chrysn Jan 30, 2026
4959dde
tuntap: allow setting hardware address
chrysn Jan 30, 2026
a6f1d8f
tuntap: use CStr literal
chrysn Jan 30, 2026
cb389aa
tuntap: use libc constants
chrysn Jan 30, 2026
13e431c
Merge pull request #5341 from chrysn-pull-requests/tuntap-enhancements
Dirbaio Jan 30, 2026
5c1ca25
rp/dma: add Channel driver struct.
Dirbaio Jan 30, 2026
d730586
Merge pull request #5338 from embassy-rs/loldma-rp
Dirbaio Jan 31, 2026
5dd8511
Update heapless, smoltcp, micropb.
Dirbaio Jan 31, 2026
544a674
Merge pull request #5342 from embassy-rs/update-heapless-smoltcp
Dirbaio Jan 31, 2026
74309c4
flash: align STM32WBA/U5 with RM (quad-word, WDW, explicit NSSR clear)
leftger Jan 31, 2026
341df85
Merge pull request #5344 from leftger/fix/wba-on-chip-memory
xoviat Jan 31, 2026
61797d5
Merge pull request #5309 from xoviat/wpan
xoviat Jan 31, 2026
b00ad80
fix compilation of embassy-rp with chrono feature
Jan 31, 2026
a9cba2f
bumped chrono version to fix #5119
Jan 31, 2026
25c9646
stm32 Add mdma support for H7 + example
orukusaki Jan 21, 2026
5adb300
better matrix bot
Dirbaio Feb 1, 2026
8632190
Ping danielb about esp issues
bugadani Feb 1, 2026
5308002
Merge pull request #5349 from bugadani/bender
Dirbaio Feb 1, 2026
3114abd
Don't try to redeclare body
bugadani Feb 1, 2026
be06760
Merge pull request #5351 from bugadani/bender
Dirbaio Feb 1, 2026
43bb59d
formatting + update gpdma mod
orukusaki Feb 1, 2026
287be3f
fix config for dual-core
orukusaki Feb 1, 2026
251e52f
Merge pull request #5347 from orukusaki/add-mdma2
xoviat Feb 1, 2026
5e03366
Added a few functions
Jan 22, 2026
a7c5153
Formatting
Jan 22, 2026
3e4383e
Etr source not available for stm32l0
Feb 2, 2026
7d2f8d7
emvassy-rp: Include chrono (+ opt deftm) builds in ci
fakusb Feb 2, 2026
a34c8d4
Merge pull request #5285 from Wratox/timer_additions
xoviat Feb 2, 2026
941de6a
Correct LPUART buffered interrupt enabling
jamesmunns Feb 2, 2026
7404fdb
rustfmt
jamesmunns Feb 2, 2026
db65b00
Merge pull request #5355 from jamesmunns/james/mcxa-lpuart-int
diondokter Feb 2, 2026
45e1c68
Enable EARQ for (all) DMA requests
jamesmunns Feb 2, 2026
92be1ed
embassy-rs: fixed ci warnings for new feature combinations
Feb 2, 2026
73e2e69
embassy-rp: dma: Add byte swap option
dobrowolski-lukasz Jan 22, 2026
894e8e5
embassy-rp: pio: Don't use custom dma logic
dobrowolski-lukasz Jan 22, 2026
0eaeb0d
embassy-rp: dma: Add read_repeated fn
dobrowolski-lukasz Jan 22, 2026
63f08f4
embassy-rp: Pio remove last custom dma logic
dobrowolski-lukasz Jan 22, 2026
709267e
embassy-rp: dma: Disallow construction Transwer outside dma.rs
dobrowolski-lukasz Jan 23, 2026
278824d
stm32/dma remove redundant asserts
orukusaki Feb 2, 2026
70aa658
Merge pull request #5357 from orukusaki/dma-redundant-assert
xoviat Feb 2, 2026
24e43d0
Merge pull request #5345 from fakusb/fix-chrono-main
Dirbaio Feb 2, 2026
224a291
Merge pull request #5314 from dobrowolski-lukasz/dma-refactor
Dirbaio Feb 2, 2026
b8fb8b6
Enabled the PLL2 S,T channels for the STM32H7RS .
Feb 3, 2026
96548b9
Merge branch 'embassy-rs:main' into main
TomDeRybel Feb 3, 2026
dfac266
embassy-rp: dma: Rename read_repeated->read_discard
dobrowolski-lukasz Jan 27, 2026
af98aa2
Add i2s_ckin to stm32g4 rcc
everdrone Feb 3, 2026
c23b406
embassy-rp: dma: Rename write_repeated to write_zeros
dobrowolski-lukasz Jan 27, 2026
948148d
embassy-rp: pio: Rename dma_pull_repeated to dma_pull_discard
dobrowolski-lukasz Jan 27, 2026
4f658db
Merge pull request #5360 from TomDeRybel/main
Dirbaio Feb 3, 2026
cd62bc9
Fully disable the pin when `set_as_disabled()` is called
jamesmunns Feb 3, 2026
ba4e534
Merge pull request #5356 from jamesmunns/james/mcxa-dma-earq
Wassasin Feb 3, 2026
14c4fe0
Merge pull request #5362 from jamesmunns/james/mcxa-disable-fully
Wassasin Feb 3, 2026
ed3e955
embassy-rp: Rename dma_push_repeated to dma_push_zeros
dobrowolski-lukasz Jan 27, 2026
8b36b65
Update stm32-metapac tag
everdrone Feb 3, 2026
877a46a
Merge pull request #5363 from dobrowolski-lukasz/dma-refactor-2
Dirbaio Feb 3, 2026
18a7919
Merge pull request #5361 from everdrone/g4_clk_mux
Dirbaio Feb 3, 2026
431a32f
[MCXA] switch i2c examples to LPI2C2
Feb 3, 2026
16b92b1
embassy-rp: dma: Rm needless pub(crate)
dobrowolski-lukasz Feb 3, 2026
8ef0862
embassy-rp: dma: Don't pub Channel::regs
dobrowolski-lukasz Feb 3, 2026
0489e78
Switch over embassy-mcxa to nxp-pac
Wassasin Jan 26, 2026
f78208f
Merge pull request #5366 from dobrowolski-lukasz/dma-refactor-3
Dirbaio Feb 3, 2026
8751bb2
Merge pull request #5316 from Wassasin/mcxa256/chiptool
Wassasin Feb 3, 2026
c823480
Remove test code
jamesmunns Feb 3, 2026
0f90f67
Merge pull request #5365 from felipebalbi/mcxa/i2c-examples
jamesmunns Feb 3, 2026
48c6994
[MCXA] CTIMER: Add Ctimer PWM driver
Jan 20, 2026
6e8ab33
Moved None-check on config to before calls to init_pll functions, to …
WillaWillNot Feb 3, 2026
a00bab6
Redundant assignment
WillaWillNot Feb 3, 2026
0886072
stm32/spi-i2s: Add dedicated I2sSdPin trait for I2S data pins
HybridChild Feb 4, 2026
645460e
stm32/spi: fix set_direction to disable SPE before changing BIDIOE an…
beeelias Feb 4, 2026
1827fac
stm32/spi-i2s: Add entry to CHANGELOG
HybridChild Feb 4, 2026
0ac791e
Merge pull request #5364 from jamesmunns/james/fixup-remove-test-code
jamesmunns Feb 4, 2026
8b00110
Merge pull request #5373 from beeelias/fix-spi-bidioe
Dirbaio Feb 4, 2026
8d45f23
Merge pull request #5374 from HybridChild/stm32-i2s-pins
xoviat Feb 4, 2026
c325a8e
stm32/i2s: Add new_rxonly_nomck and new_full_duplex_nomck constructors
HybridChild Feb 4, 2026
e277f4b
stm32/spi-i2s: Add entry to CHANGELOG
HybridChild Feb 4, 2026
a8986d3
[MCXA] implement OutputPin for Output too
Feb 3, 2026
1d25cd3
Merge pull request #5375 from felipebalbi/mcxa/gpio
felipebalbi Feb 4, 2026
1a2848f
[MCXA] i2c: controller: send STOP in case of NAK
Feb 4, 2026
039300f
Merge pull request #5376 from felipebalbi/mcxa/i2c
jamesmunns Feb 4, 2026
5617917
Merge pull request #5337 from felipebalbi/mcxa/ctimer
felipebalbi Feb 4, 2026
29d2e66
Merge pull request #5377 from HybridChild/stm32-i2s-no-mck
xoviat Feb 4, 2026
a120d4a
Adjust phrasing of Duration::checked methods
shepmaster Feb 4, 2026
9808876
Merge pull request #5378 from shepmaster/patch-1
Dirbaio Feb 4, 2026
bac1372
[MCXA] CTimer: only enable ctimer when we're about to use it
Feb 4, 2026
765f3f8
[MCXA] CTimer: rename match_ch to duty_ch
Feb 4, 2026
2c125b7
[MCXA] CTimer: enable glitch-free PWM duty cycle change
Feb 4, 2026
46f49ae
[MCXA] CTimer: add Single, Dual, TriplePwm types
Feb 4, 2026
a444f1d
Fix N6 EXTI
jake-taf Feb 4, 2026
f06647b
Fix formatting
jake-taf Feb 4, 2026
8b9b84d
N6 LTDC Support
jake-taf Feb 4, 2026
794604a
LTDC clock
jake-taf Feb 4, 2026
d9d26c6
Merge pull request #5380 from turnaroundfactor/n6-exti-fix
Dirbaio Feb 4, 2026
40c8979
N6 PLL3 / 4 Support
jake-taf Feb 4, 2026
b152e85
Fix division
jake-taf Feb 4, 2026
02addf8
Fix IC Selection Names
jake-taf Feb 4, 2026
30c858e
stm32: better fix for exti
xoviat Feb 4, 2026
c1c11d9
Merge pull request #5384 from xoviat/n6
xoviat Feb 4, 2026
797dd46
DMA XSPI for APS256XX PSRAM
jake-taf Feb 4, 2026
a71b7f0
Remove warning
jake-taf Feb 4, 2026
d9ae8f8
Use new stm32-data
jake-taf Feb 4, 2026
6a0f7f9
Merge pull request #5385 from turnaroundfactor/n6-xspi-dma
xoviat Feb 4, 2026
b04101d
Merge pull request #5383 from turnaroundfactor/n6-pll34
xoviat Feb 4, 2026
ea41bb5
Remove special case
jake-taf Feb 4, 2026
61e3c5e
Implement Sink for Channel and channel::Sender
wojciech-graj Feb 5, 2026
e74c832
Implement an initial proof-of-concept version of deep sleep
jamesmunns Feb 4, 2026
702f09e
Merge pull request #5390 from jamesmunns/james/deep-sleep-poc
jamesmunns Feb 5, 2026
6d4decb
Merge pull request #5379 from felipebalbi/mcxa/ctimer
jamesmunns Feb 5, 2026
3e4b65a
stm32: replace peri<anypin> with flex
xoviat Feb 5, 2026
550c964
Merge pull request #5389 from wojciech-graj/main
xoviat Feb 5, 2026
e621f8e
Merge branch 'embassy-rs:main' into n6-ltdc-fix
jake-taf Feb 5, 2026
c7c320e
Merge pull request #5391 from xoviat/flex
xoviat Feb 5, 2026
d5da83b
Merge pull request #5368 from WillaWillNot/allow_linker_elision_of_pl…
xoviat Feb 5, 2026
ba35614
Pixel formats
jake-taf Feb 5, 2026
040a462
embassy-usb-logger: fix doc url
fakusb Feb 6, 2026
7248a6c
Merge pull request #5396 from fakusb/patch-1
Dirbaio Feb 6, 2026
00388d6
Formatting
jake-taf Feb 6, 2026
c8ee8ab
stm32: more gpio cleanup
xoviat Feb 6, 2026
c21bd73
Merge pull request #5398 from xoviat/flex
xoviat Feb 6, 2026
f2e2d79
stm32 I2C: Emit STOP when address not acknowledged
kriomant Feb 6, 2026
6796fd5
Merge pull request #5399 from kriomant/stm32f407-i2c-addr-nack
xoviat Feb 6, 2026
126d107
usb-logger: improved doc
Feb 6, 2026
af0257c
On WfeUngated mode, force settings back to defaults
jamesmunns Feb 6, 2026
763e05f
Merge pull request #5402 from jamesmunns/james/force-ckmode
felipebalbi Feb 6, 2026
d0e6ca2
spi: wait for TXE/BSY before disabling SPE in set_direction
beeelias Feb 7, 2026
2fba48f
stm32: store flex for simple pwm, one pulse
xoviat Feb 7, 2026
739f7b7
stm32/gpio: add drop trace
xoviat Feb 7, 2026
b4dc8a9
Merge pull request #5403 from beeelias/fix/spi-set-direction-bsy-wait
xoviat Feb 7, 2026
ea8d533
Merge pull request #5404 from xoviat/flex
xoviat Feb 7, 2026
c9e4cfd
stm32: prettier trace log when dropping flex pin
GrantM11235 Feb 7, 2026
af83333
Transparently forward Peri Debug/Display/defmt
GrantM11235 Feb 7, 2026
134e60b
Remove Driver param
bugadani Feb 7, 2026
f7a6bae
[MCXA] Remove stale doc
jamesmunns Feb 7, 2026
37d2412
Merge pull request #5407 from embassy-rs/jamesmunns-patch-1
jamesmunns Feb 7, 2026
7ff425c
Merge pull request #5406 from bugadani/type-param
Dirbaio Feb 7, 2026
364b108
Merge pull request #5401 from fakusb/patch1
Dirbaio Feb 7, 2026
acf444e
stm32 I2C: Emit STOP when address not acknowledged on write
kriomant Feb 7, 2026
fab39af
Merge pull request #5408 from kriomant/stm32f407-i2c-addr-nack-write
xoviat Feb 7, 2026
373c043
Merge pull request #5405 from GrantM11235/trace-flex-drop
xoviat Feb 7, 2026
b644376
stm32: fix I2S clock source for STM32F2 and F7 to use PLLI2S instead …
HybridChild Feb 5, 2026
7c6fdd7
stm32: Add entry to CHANGELOG.md
HybridChild Feb 5, 2026
57e42f9
stm32/i2s: defer I2SE enable from constructor to start() for proper s…
HybridChild Feb 8, 2026
535ab3e
Merge branch 'main' into stm32-i2s
HybridChild Feb 8, 2026
7949989
stm32/i2s: Add entry to CHANGELOG
HybridChild Feb 8, 2026
38d946d
stm32: Run cargo fmt
HybridChild Feb 8, 2026
ea785ee
Merge pull request #5387 from HybridChild/stm32-i2s
xoviat Feb 8, 2026
ba66be1
stm32/i2s: use plli2s1_r for all F7 variants (confirmed by hardware t…
HybridChild Feb 8, 2026
5de2669
Merge pull request #5415 from HybridChild/stm32-i2s
xoviat Feb 8, 2026
6054a1b
low_power: Add STOP support for STM32L0
akheron Feb 8, 2026
bbae54b
Merge pull request #5416 from akheron/stm32l0-stop
xoviat Feb 8, 2026
e105d3c
stm32: make gpio-init-analog more generic
xoviat Feb 8, 2026
13d4ce7
Merge pull request #5417 from xoviat/analog
xoviat Feb 8, 2026
5998832
Refactor uart for perf and add a warning on drop
diondokter Feb 9, 2026
da4b31b
Undo extra waker since churn isn't an issue after all
diondokter Feb 9, 2026
fe1635e
Merge pull request #5420 from diondokter/mcxa-uart-refactor
diondokter Feb 9, 2026
013bb92
Update stm32-data
jake-taf Feb 9, 2026
b71eacc
Fix missing documentation
jake-taf Feb 9, 2026
71d1217
Merge pull request #5381 from turnaroundfactor/n6-ltdc-fix
xoviat Feb 9, 2026
0cf8c87
[MCXA] ctimer: add capture driver
felipebalbi Feb 2, 2026
3c79ee7
[MCXA] ctimer: capture: add perf counters
Feb 9, 2026
d707fe3
[MCXA] ctimer: capture: simplify example
Feb 9, 2026
26ec5a5
[MCXA] ctimer: review comments
Feb 9, 2026
930269e
Merge pull request #5424 from felipebalbi/mcxa/ctimer
felipebalbi Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ci/build-nightly.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fi
hashtime restore /ci/cache/filetime.json || true
hashtime save /ci/cache/filetime.json

cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev c60400e213f7eb0296581183140ec147dd7a848b
cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev 786e8e05ef2de5fc1421a4fcd50e79c5dd2d3e4d

./ci-nightly.sh

Expand Down
4 changes: 2 additions & 2 deletions .github/ci/build-xtensa.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export PATH=$CARGO_HOME/bin:$PATH
export CARGO_NET_GIT_FETCH_WITH_CLI=true

cargo install espup --locked
espup install --toolchain-version 1.90.0.0
espup install --toolchain-version 1.92.0.0

# Restore lockfiles
if [ -f /ci/cache/lockfiles.tar ]; then
Expand All @@ -25,7 +25,7 @@ fi
hashtime restore /ci/cache/filetime.json || true
hashtime save /ci/cache/filetime.json

cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev c60400e213f7eb0296581183140ec147dd7a848b
cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev 786e8e05ef2de5fc1421a4fcd50e79c5dd2d3e4d

./ci-xtensa.sh

Expand Down
2 changes: 1 addition & 1 deletion .github/ci/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ fi
hashtime restore /ci/cache/filetime.json || true
hashtime save /ci/cache/filetime.json

cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev c60400e213f7eb0296581183140ec147dd7a848b
cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev 786e8e05ef2de5fc1421a4fcd50e79c5dd2d3e4d

./ci.sh

Expand Down
3 changes: 2 additions & 1 deletion .github/ci/doc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ export CARGO_TARGET_DIR=/ci/cache/target
export PATH=$CARGO_HOME/bin:$PATH
mv rust-toolchain-nightly.toml rust-toolchain.toml

cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev c60400e213f7eb0296581183140ec147dd7a848b
cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev 786e8e05ef2de5fc1421a4fcd50e79c5dd2d3e4d
cargo install --git https://github.com/embassy-rs/docserver --locked --rev 92a9d9e63c539df0b8d84107f9155473e48e723f

cargo embassy-devtool doc -o webroot

Expand Down
2 changes: 1 addition & 1 deletion .github/ci/janitor.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export CARGO_HOME=/ci/cache/cargo
export CARGO_TARGET_DIR=/ci/cache/target
export PATH=$CARGO_HOME/bin:$PATH

cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev c60400e213f7eb0296581183140ec147dd7a848b
cargo install --git https://github.com/embassy-rs/cargo-embassy-devtool --locked --rev 786e8e05ef2de5fc1421a4fcd50e79c5dd2d3e4d

cargo embassy-devtool check-crlf
cargo embassy-devtool check-manifest
2 changes: 2 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
# - 'embassy-futures/**'
# embassy-imxrt:
# - 'embassy-imxrt/**'
# embassy-microchip:
# - 'embassy-microchip/**'
# embassy-mspm0:
# - 'embassy-mspm0/**'
# embassy-net:
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/matrix-bot-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Matrix bot for issues
on:
issues:
types: [opened]

jobs:
notify:
if: github.repository == 'embassy-rs/embassy'
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: send message
uses: actions/github-script@v8
with:
script: |
const action = context.payload.action;
const title = context.payload.issue.title;
const issueBody = context.payload.issue.body;
const url = context.payload.issue.html_url;

// Determine message prefix
let prefix;
let roomId;
if (action === 'opened' && (title + ' ' + issueBody).toLowerCase().includes('esp32')) {
// Nag danielb
prefix = 'New Issue';
roomId = '!oENPKPHeKwiPfIVHER:matrix.org';
} else {
return; // Unknown action, skip
}

// HTML escape the title
const titleEscaped = title
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;');

const body = `${prefix}: ${title} - ${url}`;
const formattedBody = `${prefix}: <a href="${url}">${titleEscaped}</a>`;

const accessToken = process.env.MATRIX_ACCESS_TOKEN;

const response = await fetch(
`https://matrix.org/_matrix/client/r0/rooms/${roomId}/send/m.room.message`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`
},
body: JSON.stringify({
msgtype: 'm.text',
format: 'org.matrix.custom.html',
body: body,
formatted_body: formattedBody
})
}
);

if (!response.ok) {
throw new Error(`Matrix API request failed: ${response.status} ${response.statusText}`);
}
env:
MATRIX_ACCESS_TOKEN: ${{ secrets.MATRIX_ACCESS_TOKEN }}
90 changes: 57 additions & 33 deletions .github/workflows/matrix-bot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,65 @@ on:
types: [opened, closed]

jobs:
new-pr:
if: github.event.action == 'opened' && github.repository == 'embassy-rs/embassy'
notify:
if: github.repository == 'embassy-rs/embassy'
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: send message
uses: s3krit/matrix-message-action@v0.0.3
with:
room_id: ${{ secrets.MATRIX_ROOM_ID }}
access_token: ${{ secrets.MATRIX_ACCESS_TOKEN }}
message: "New PR: [${{ github.event.pull_request.title }}](${{ github.event.pull_request.html_url }})"
server: "matrix.org"
- name: send message
uses: actions/github-script@v8
with:
script: |
const action = context.payload.action;
const merged = context.payload.pull_request.merged;
const title = context.payload.pull_request.title;
const url = context.payload.pull_request.html_url;

merged-pr:
if: github.event.action == 'closed' && github.event.pull_request.merged == true && github.repository == 'embassy-rs/embassy'
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: send message
uses: s3krit/matrix-message-action@v0.0.3
with:
room_id: ${{ secrets.MATRIX_ROOM_ID }}
access_token: ${{ secrets.MATRIX_ACCESS_TOKEN }}
message: "PR merged: [${{ github.event.pull_request.title }}](${{ github.event.pull_request.html_url }})"
server: "matrix.org"
// Determine message prefix
let prefix;
if (action === 'opened') {
prefix = 'New PR';
} else if (action === 'closed' && merged) {
prefix = 'PR merged';
} else if (action === 'closed' && !merged) {
prefix = 'PR closed without merging';
} else {
return; // Unknown action, skip
}

abandoned-pr:
if: github.event.action == 'closed' && github.event.pull_request.merged == false && github.repository == 'embassy-rs/embassy'
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: send message
uses: s3krit/matrix-message-action@v0.0.3
with:
room_id: ${{ secrets.MATRIX_ROOM_ID }}
access_token: ${{ secrets.MATRIX_ACCESS_TOKEN }}
message: "PR closed without merging: [${{ github.event.pull_request.title }}](${{ github.event.pull_request.html_url }})"
server: "matrix.org"
// HTML escape the title
const titleEscaped = title
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;');

const body = `${prefix}: ${title} - ${url}`;
const formattedBody = `${prefix}: <a href="${url}">${titleEscaped}</a>`;

const roomId = '!YoLPkieCYHGzdjUhOK:matrix.org';
const accessToken = process.env.MATRIX_ACCESS_TOKEN;

const response = await fetch(
`https://matrix.org/_matrix/client/r0/rooms/${roomId}/send/m.room.message`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`
},
body: JSON.stringify({
msgtype: 'm.text',
format: 'org.matrix.custom.html',
body: body,
formatted_body: formattedBody
})
}
);

if (!response.ok) {
throw new Error(`Matrix API request failed: ${response.status} ${response.statusText}`);
}
env:
MATRIX_ACCESS_TOKEN: ${{ secrets.MATRIX_ACCESS_TOKEN }}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ out/
.zed
.neoconf.json
*.vim
**/.idea
**/.idea
**/.nvim.lua
2 changes: 2 additions & 0 deletions cyw43-firmware/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.exe
*.pdb
Binary file added cyw43-firmware/nvram_rp2040.bin
Binary file not shown.
Binary file added cyw43-firmware/nvram_sterling_lwb+.bin
Binary file not shown.
118 changes: 118 additions & 0 deletions cyw43-firmware/write_nvrams.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
use std::fs::File;
use std::io::{self, BufWriter, Write};

fn main() -> io::Result<()> {
let nvrams = [
(
"rp2040",
&b"NVRAMRev=$Rev$\x00\
manfid=0x2d0\x00\
prodid=0x0727\x00\
vendid=0x14e4\x00\
devid=0x43e2\x00\
boardtype=0x0887\x00\
boardrev=0x1100\x00\
boardnum=22\x00\
macaddr=00:A0:50:b5:59:5e\x00\
sromrev=11\x00\
boardflags=0x00404001\x00\
boardflags3=0x04000000\x00\
xtalfreq=37400\x00\
nocrc=1\x00\
ag0=255\x00\
aa2g=1\x00\
ccode=ALL\x00\
pa0itssit=0x20\x00\
extpagain2g=0\x00\
pa2ga0=-168,6649,-778\x00\
AvVmid_c0=0x0,0xc8\x00\
cckpwroffset0=5\x00\
maxp2ga0=84\x00\
txpwrbckof=6\x00\
cckbw202gpo=0\x00\
legofdmbw202gpo=0x66111111\x00\
mcsbw202gpo=0x77711111\x00\
propbw202gpo=0xdd\x00\
ofdmdigfilttype=18\x00\
ofdmdigfilttypebe=18\x00\
papdmode=1\x00\
papdvalidtest=1\x00\
pacalidx2g=45\x00\
papdepsoffset=-30\x00\
papdendidx=58\x00\
ltecxmux=0\x00\
ltecxpadnum=0x0102\x00\
ltecxfnsel=0x44\x00\
ltecxgcigpio=0x01\x00\
il0macaddr=00:90:4c:c5:12:38\x00\
wl0id=0x431b\x00\
deadman_to=0xffffffff\x00\
muxenab=0x100\x00\
spurconfig=0x3\x00\
glitch_based_crsmin=1\x00\
btc_mode=1\x00\
\x00\x00"[..],
),
(
"sterling_lwb+",
&b"NVRAMRev=$Rev$\x00\
manfid=0x2d0\x00\
prodid=0x0727\x00\
vendid=0x14e4\x00\
devid=0x43e2\x00\
boardtype=0x0887\x00\
boardrev=0x1102\x00\
boardnum=22\x00\
macaddr=00:A0:50:b5:59:5e\x00\
sromrev=11\x00\
boardflags=0x00404001\x00\
boardflags3=0x08000000\x00\
xtalfreq=26000\x00\
nocrc=1\x00\
ag0=255\x00\
aa2g=1\x00\
rssicorrnorm=0\x00\
pa0itssit=0x20\x00\
extpagain2g=0\x00\
pa2ga0=-155,6912,-779\x00\
AvVmid_c0=0x0,0xc8\x00\
cckpwroffset0=5\x00\
maxp2ga0=78\x00\
txpwrbckof=6\x00\
cckbw202gpo=0\x00\
legofdmbw202gpo=0x40000000\x00\
mcsbw202gpo=0x60000000\x00\
propbw202gpo=0xdd\x00\
ofdmdigfilttype=18\x00\
ofdmdigfilttypebe=18\x00\
papdmode=1\x00\
papdvalidtest=1\x00\
pacalidx2g=45\x00\
papdepsoffset=-30\x00\
papdendidx=58\x00\
il0macaddr=00:90:4c:c5:12:38\x00\
wl0id=0x431b\x00\
deadman_to=0xffffffff\x00\
muxenab=0x1\x00\
spurconfig=0x3\x00\
glitch_based_crsmin=1\x00\
btc_mode=0\x00\
bt_default_ant=0\x00\
edonthd20l=-72\x00\
edoffthd20ul=-78\x00\
\x00\x00"[..],
),
];

for (name, bytes) in nvrams {
let file = File::create(format!("nvram_{}.bin", name))?;
let mut writer = BufWriter::new(file);

writer.write_all(bytes)?;
writer.flush()?;

println!("Wrote {}", name);
}

Ok(())
}
Loading