Björn Quentin
5d1472d73e
Use doc_replace
more ( #3786 )
...
* Use `doc_replace` more
* Fix
* Fix
2025-07-11 09:32:12 +00:00
Chris Mumford
d585f75997
Add configuration option to pin the RMT driver in RAM ( #3778 )
...
* Add configuration option to pin the RMT driver in RAM
Allow the RMT driver to pinned in RAM. Doing so avoids
a costly load from flash as using the RMT peripheral is often
a very time senstive operation.
Controlled by the `ESP_HAL_CONFIG_PLACE_RMT_DRIVER_IN_RAM`
environment variable.
* Update esp-config/CHANGELOG.md
* Add PR's
* Remove ESP_HAL_PLACE_RMT_DRIVER_IN_RAM from esp-config/README.md
* Make internal functions inline
This also results in a smaller executable. With a release build:
| | In RAM | inline |
|-----------|----------:|----------:|
| File size | 1,108,028 | 1,104,956 |
| .rwtext | 0016d0 | 00153c |
2025-07-11 09:29:18 +00:00
mennovf
b2c3b1d9bb
ESP32-S2: Go into hibernation if there's only Ext1 WakeupSource ( #3785 )
...
* Don't request rtc_perip power up in ext1 and enable hold for pad in case of rtc_peri power down.
* Update CHANGELOG.md with pull-request id
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2025-07-11 08:00:35 +00:00
Dániel Buga
547afd5cb9
Fix warnings, lint esp-hal without unstable ( #3782 )
...
* Prevent warnings
* Test esp-hal with no features enabled
* Update wording of error variants
* Re-generate semver baseline
2025-07-11 07:14:59 +00:00
Dániel Buga
c907645422
Add downcast to AnyPeripherals ( #3784 )
2025-07-10 14:10:28 +00:00
Dániel Buga
fbac30993a
Add AnyPin::downcast ( #3783 )
2025-07-10 12:53:30 +00:00
Juraj Sadel
cbdb4f05ba
Fix nightly CI ( #3755 )
...
* fix nightly ci
* reviews
2025-07-10 11:00:14 +00:00
Björn Quentin
3700497d7a
Better deal with multiple config files ( #3774 )
...
* Better deal with multiple config files
* Improve key handling
* Apply suggestion from review
2025-07-09 12:47:02 +00:00
Sergio Gasquez Arcos
3bc667ee4f
Add missing c-examples ( #3770 )
...
* docs: Add missing c-examples
* feat: Config docflags for `run doc-tests`
* docs: Update before/after macro and format code in docs
* docs: Improve chip! example
* docs: Fix format and error
* feat: Add ESP_HAL_DOCTEST environment variable for documentation tests
2025-07-09 12:46:22 +00:00
Dániel Buga
7343929d0e
Fix ADC resolution variant name ( #3777 )
...
* Fix ADC resolution variant
* Update esp-hal/src/analog/adc/xtensa.rs
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
---------
Co-authored-by: Juraj Sadel <jurajsadel@gmail.com>
2025-07-09 09:38:31 +00:00
Simon Neuenhausen
3d6e522cbc
Allow splitting control over modem clocks. ( #3687 )
...
* Minimal architecture for split RCC.
* Removed critical section.
* Add all modem clock controllers and adjust esp-ieee802154.
* Fixed incorrect cfg.
* Fixed unstable attribute usage.
* Replaced AtomicU8 with Cell<u8>
* Reverted example channel back to 15
* Added unstable attribute to ModemClockController impls.
* Remember to actually increase the ref count.
* Experimentally removed RadioClockController
* Merged ref counters and made decrease panic if zero is reached.
* Removed RADIO_CLK peripheral.
* Removed RADIO_CLK again.
* Revert "Removed RADIO_CLK again."
This reverts commit 6da2d2834850068aa21bc52b141de2cfd8154acc.
* Removed RADIO_CLK without reformatting the files.
* Applied changes to examples and hil-tests.
* Fixed OS adapter for C2 and H2
* Adjusted docs and used unwrap!
* Fixed comments.
* Added changelog.
* Fixed esp-wifi for esp32h2.
* Changed comment for PHY_CLOCK_REF_COUNTER.
* Fixed lint for esp32c2.
* Update esp-hal/src/clock/mod.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Update esp-hal/src/clock/mod.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Removed unnecessary comments and made init_radio_clocks unstable.
* Update esp-hal/src/clock/mod.rs
Co-authored-by: Dániel Buga <bugadani@gmail.com>
* Fixed lint.
* Removed clocks_ll functions for chips that don't have those peripherals.
* fmt
* Changed modem clock controller stealing.
* Added lifetime
* fixed peripheral stealing again
* Made modem_clock_controller not const.
* Used type alias instead of function for peripheral stealing.
* fmt
* Adjusted remaining comments.
* Added note about coex.
* fmt
* misc
* Revert "misc"
This reverts commit d8740421e0dff84af605160939e246f2308a48e1.
* Regenerated esp metadata
---------
Co-authored-by: Dániel Buga <bugadani@gmail.com>
2025-07-08 17:23:55 +00:00
Dániel Buga
1a9b4bafe0
Calculate max input/output signal ID automatically ( #3773 )
2025-07-08 13:39:00 +00:00
Björn Quentin
41fed590c2
Requires unstable feature ( #3772 )
...
* Add `requires-unstable` feature
* Docs
* CHANGELOG.md
* Advise for library authors
2025-07-08 11:40:06 +00:00
Dániel Buga
3537b5ecae
Use indexmap to ensure stable iteration order ( #3771 )
2025-07-08 09:51:43 +00:00
Björn Quentin
8b810c43bc
Move rtc_clk_xtal_freq_get
impl to esp-rom-sys ( #3769 )
...
* Move `rtc_clk_xtal_freq_get` impl to esp-rom-sys
* Fix comment
2025-07-08 08:18:11 +00:00
Dániel Buga
940f318b68
Remove some unnecessary caches ( #3768 )
2025-07-08 07:43:09 +00:00
Dániel Buga
692a768b3a
Introduce esp-metadata-generated
( #3754 )
...
* Move macros to new crate
* Generate a single file
* Pre-generate esp-metadata-generated
* Move saving code to xtask
* Format with both rustfmt and prettyplease
* Fix doc build
* Unhide macros
* Fix doc string
* Update semver-check baseline
2025-07-07 15:37:05 +00:00
Sergio Gasquez Arcos
d28bf16777
Resolve C-EXAMPLE
: Gpio and I2c ( #3746 )
...
* docs: C-example for i2c
* docs: C-example for gpio
* feat: Mark Flex as unstable
* docs: Remove outdate fixmes
* fix: Clippy lint
* docs: Add time doc examples
* docs: Dont hide imports
* docs: Add link to Peripheral section
* docs: Avoid unsafe when posible
* feat: Generate api baseline
2025-07-07 14:21:05 +00:00
Dániel Buga
ad445752ae
Add clean and build timings to xtask ( #3759 )
...
* Add --timings
* Add alias to clean all packages
* Update readme
* Add alias
2025-07-07 13:03:39 +00:00
Dániel Buga
9b59942824
Use MD5 from ROM ( #3758 )
2025-07-07 12:12:19 +00:00
Sergio Gasquez Arcos
4f7b46df27
docs: Add app desc macro examples ( #3750 )
2025-07-04 12:48:56 +00:00
Dániel Buga
86e006b601
Rework how peripheral singletons are generated ( #3747 )
...
* Handle GPIOs as stable peripherals
* Define interrupts in create_peripheral
* Remove the rest of paste from the peripherals macro
* Move create_peripheral calls out of peripherals!
* Merge macros
* Merge peripherals files
* Delete the peripheral module
* Replace the peripherals macro with for_each generated code
* Do not generate code directly in GPIO metadata
2025-07-04 12:15:12 +00:00
Dániel Buga
68b992f6d6
Add macro to let rustfmt format code blocks in doc comments ( #3744 )
...
* Add insert_doc_snippet proc macro
* Replace placeholders
* Allow defining (conditional) replacements
* Use unstable features for module-level docs
* Document the new macro
* Rename macro
* Lint
* Remove nonsense code block check, change syntax
* Remove redundant doc_switch macro
2025-07-04 08:25:37 +00:00
Scott Mabin
ce469d3fd2
make peripheral module private ( #3745 )
...
* make peripheral module private
* update api baseline
2025-07-03 15:57:42 +00:00
Dániel Buga
c6df02190b
Use 1.88 & bump HAL MSRV ( #3742 )
...
* Update MSRV to 1.88
* Clean up lints
* Generate new baseline
* Bump MSRV of xtensa-lx-rt
* Do not try to replace in semver baseline, bump dependent msrvs
* Changelog
2025-07-03 13:44:27 +00:00
Dániel Buga
583be70559
Allow hooking into the executor ( #3737 )
...
* Allow hooking into the executor
* Attempt to test that the callback API is not dysfunctional
2025-07-03 09:17:34 +00:00
Sergio Gasquez Arcos
f8b43a9ca9
Resolve C-EXAMPLE
: Spi ( #3743 )
...
* docs: Resolve C-example for spi
* style: Update format
2025-07-03 09:15:51 +00:00
Dániel Buga
517b5ccbe2
Make cargo xfmt respect the format config ( #3739 )
...
* Make cargo xfmt respect the format config
* Make sure comments and doc code have the same width
2025-07-03 08:18:02 +00:00
Dániel Buga
9146407573
Fix and extend pin layouts ( #3726 )
...
* Fix ESP32 pin layout
Co-authored-by: rmsyn <github@weathered-steel.dev>
* Tabulate ESP32
* Fix C2 pin layout
* Fix C3 pin layout
* Fix C6 pin layout
Co-authored-by: rmsyn <github@weathered-steel.dev>
* Note AF availability on IoMuxSignal
* Add mising AFs to H2
* Remove unavailable pins
* Add mising signals to S2
* Add mising signals to S3
* Changelog
* Update semver baseline
---------
Co-authored-by: rmsyn <github@weathered-steel.dev>
2025-07-02 13:16:48 +00:00
Dániel Buga
a7798f6902
Tweak config table ( #3734 )
...
* Tweak config table
* Restore active condition on xtal-frequenc
* Print values using display hint
* Fix clippy lints
2025-07-02 10:11:54 +00:00
Björn Quentin
b76a738263
Improve esp-wifi cfg docs ( #3733 )
2025-07-02 08:53:48 +00:00
Dániel Buga
21f1d89f15
Generate peripherals macro call & remove paste ( #3713 )
...
* Expand peripheral metadata
* Generate peripherals macro call
* Remove paste from peripherals
* Add missing peris
* Fix ETM and TRACE0 naming
* Remove redundant tsens symbol
* Remove RTCIO stuff from h2
* Rename S2 RTC_CNTL
* Add missing SYSCON back to S2
* Do not mark the GPIO singleton stable
* Treat unlisted drivers as not available
* Assign stability based on driver info
* Fmt
* Remove unused info
2025-07-01 19:31:21 +00:00
Björn Quentin
54c073fcd2
Prepare changelog ( #3731 )
...
* Prepare changelog
* Check for esp-rom-sys CHANGELOG
2025-07-01 16:03:45 +00:00
Björn Quentin
8fffa6ccec
esp-config TUI ( #3649 )
...
* Introduce esp-config TUI
* Validate more
* Improve chip-selection, support alternate config.toml files
* Minor improvements
* Clippy --fix
* Do crate-level checks on every change
* de-dup
* Address review comments
* Address review comments
* Remove the safety-belt
2025-07-01 15:14:26 +00:00
Dániel Buga
8c4878cb03
Refactor AssistDebug symbols ( #3730 )
2025-07-01 14:42:27 +00:00
Dániel Buga
d315816680
Fix broken link ( #3729 )
2025-07-01 14:08:49 +00:00
Dániel Buga
745cfd71b6
de-paste!
the any_peripheral
macro ( #3699 )
...
* Stop using paste in any_peripheral
* Drop unused macro
* Generate a delegate macro for any-peripheral dispatching
* Fix up PDMA
2025-07-01 13:48:40 +00:00
Björn Quentin
cc2083fd1a
Introduce esp-rom-sys crate ( #3688 )
...
* Move ROM function definitions to esp-hal-rom crate
* Patch ESP32 ROM-functions, use it in esp-storage
* Allow placing additional code in IRAM
* esp-storage depends on esp-hal-rom
* Move ROM function wrappers from esp-hal to esp-hal-rom
* Make bootloader-support crate use CRC ROM function
* Minor polishing
* changelogs
* Make CI green
* Define (some) spiflash ROM functions in esp-hal-rom
* Lint
* Avoid duplicate definition of `__assert_func`
* Rename to `esp-rom-sys`
* Mention versioning this crate in the README
* Fixes
* Check self-version
* Docs
* Clippy
* Check if version bump is allowed
* Unconditionally place spiflash ROM function patches (if present) in rwtext
* Cleanup
* Change how unacceptable version bump requests are detected
* Initial version 0.1.0
* Docs
* Use correct version
* Force esp-rom-sys bumps to patch
* Fix
esp-rom-sys-v0.1.0
2025-07-01 13:05:01 +00:00
Sergio Gasquez Arcos
f0913769d4
Resolve C-EXAMPLE
: Uart ( #3712 )
...
* feat: Add examples to Uart
* feat: Simplify doc examples based on review comments
* feat: Use `uart` as variable name and use UART0
* feat: Remove empty lines
* feat: Include initialization lines
* docs: Add general into_blocking/async examples
2025-07-01 12:49:15 +00:00
Dániel Buga
72fd9a0c74
Fix mcpwm docs ( #3727 )
2025-07-01 11:26:37 +00:00
Dániel Buga
175f4a16b6
Extract SPI metadata ( #3702 )
...
* Extract SPI M/S metadata
* Clean up additional instance trait
* Further SPI cleanups, add OSPI pin setters
* Re-generate semver baseline
* Fix typo
2025-07-01 11:13:26 +00:00
Gabriel Hansson
9eadaa147f
Adjust ESP32-S2 and ESP32-S3 memory region lengths to reflect those defined in ESP-IDF ( #3709 )
...
* fix(esp-hal/ld): adjust esp32s2 SRAM size from 188K to 184K
* fix(esp-hal/ld): extend esp32s2 heap size from 130.5K to 136K
* fix(esp-hal/ld): reduce esp32s3 SRAM size with 1K
* docs(changelog): add esp-rs#3709 entry
2025-07-01 08:17:41 +00:00
Dániel Buga
0e8bc25b70
Fix defmt timestamp ( #3725 )
2025-07-01 06:59:32 +00:00
Dániel Buga
b2a8d6bcee
Move UART instance info to esp-metadata ( #3698 )
...
* Move UART instance info to esp-metadata
* Fix typo
2025-06-30 16:38:15 +00:00
Dániel Buga
1d30c2e425
Place I2C async interrupt handler into ram, wait for bus_busy to actually clear ( #3722 )
...
* Place I2C async interrupt handler into ram
* Wait for bus_busy to go away
* Changelog
2025-06-30 16:12:33 +00:00
Dániel Buga
b11d810d97
Tweak and make use of the old bind_X_interrupt
functions ( #3689 )
...
* Rename bind_interrupt functions
* Generate enable/disable functions, remove redundant irq mapping from metadata
* Clean up PARL_IO
* Refactor SPI master, I2S, Uart
* Update USB_DEVICE
2025-06-30 15:28:42 +00:00
Dániel Buga
03a3b6f5d6
Simplify peripheral resets ( #3720 )
...
* Update PAC to fix naming inconsistencies, simplify reset code
* Update PAC and simplify
* Remove mcpwm1 reset
* Fix gen register name
* Fixup
* Finalize PAC rev
2025-06-30 15:09:21 +00:00
Gabriel Hansson
541240b460
chore(esp-hal/ld): include metadata.x with the other shared sections ( #3673 )
2025-06-30 15:07:57 +00:00
Gabriel Hansson
a8af564313
Minor linker script touchups. ( #3717 )
...
* refactor(esp-hal/ld): inline `rodata_desc.x`
* refactor(esp-hal/ld): consolidate `.trap` section definition
2025-06-30 13:19:02 +00:00
Gabriel Hansson
cc199a26f3
fix: increase esp32 DRAM by 16K ( #3703 )
...
* fix: increase esp32 DRAM by 16K
* docs(changelog): add #3703 entry
2025-06-30 12:09:44 +00:00