113 Commits

Author SHA1 Message Date
clubby789
2be8be0747 Use unsafe block in IRQ handlers 2025-07-20 20:25:26 +01:00
Ralph Ursprung
117eb45fa0
add the possibility to document bind_interrupts structs
the `bind_interrupts` macro creates a `struct` for the interrupts. it
was so far not possible to document those (except for STM32) and there
was no generic documentation being generated/added either, thus the
`missing_docs` lint was triggered for consumers which enabled it.

with this change it is now possible to manually add a comment on the
`struct` being defined in the macro invocation.

to show that this works one RP example has been modified accordingly.
2025-05-15 18:27:40 +02:00
Sebastian Quilitz
05a6f7a795 embassy-rp: Implementation of a SpinlockMutex 2025-04-07 21:59:36 +02:00
Sebastian Quilitz
d17d43735f embassy-rp: Move Spinlock implementation out of critical_section_impl 2025-03-27 20:10:34 +01:00
Dario Nieuwenhuis
d41eeeae79 Remove Peripheral trait, rename PeripheralRef->Peri. 2025-03-27 15:18:06 +01:00
9names
4cc5ab9474 Add rp235x imagedef features (based on rp2040 boot2 features)
rp235x firmwares need an Image Definition if they want to be called
from the rp235x bootrom.

Currently this Image Definition is manually added to each project/example,
but for most users it will always be the default (Secure Exe).

This commit adds crate features to allow users to configure this, with the
default of including a Secure Exe Image Definition in.
Just like the boot2-* features, this includes an opt-out (imagedef-none)
to allow the user to not make use of this included Image Definition.
2025-02-16 15:43:01 +11:00
Dario Nieuwenhuis
9da04cc38e rp: make atomics work properly between cores in rp235x. 2025-02-05 00:57:43 +01:00
Dario Nieuwenhuis
bb2d9ec7f8 rp: Workaround "SIO spinlock stuck bug", reset PROC1 at boot.
Just like RP2040. The bug was "working as intended" on rp2040, so it is on rp235x.
2025-02-05 00:57:15 +01:00
Dario Nieuwenhuis
0de204ccd7 Fix "non-local impl definition" warning from recent nightlies. 2024-11-08 13:20:13 +01:00
Dario Nieuwenhuis
8eb80c6816
Merge pull request #3444 from dnbln/main
feat: allow `bind_interrupts!` to accept conditional compilation attrs
2024-10-22 15:18:35 +00:00
Dinu Blanovschi
c797915525 fix: review comments 2024-10-22 16:56:05 +02:00
Dario Nieuwenhuis
ee669ee5c5 Update nighlty, fix warnings.
Fixes #2599
2024-10-14 00:11:16 +02:00
Caleb Jamison
57c1fbf308 Move pio programs into embassy-rp 2024-10-09 10:18:00 -04:00
Ugljesa Jovanovic
2bc49763c6
TRNG support for 235x 2024-09-17 21:26:59 +02:00
Caleb Jamison
0434798439 Import otp from rp-hal, helper fns for chipid and randid
Again, credit to @thejpster for doing the hard part and figuring out the
otp.
2024-08-29 21:08:25 -04:00
Caleb Jamison
372270a9b9 rp235x flash support.
The 2350 doesn't have a boot2 like the 2040, but it does have the
concept of a xip setup function that could be customized. By default the
bootrom searches for the attached flash chip and provides an xip setup
func at the base of the bootram. That bootram is not executable, so it
still needs to be copied to ram like boot2 would be.

Currently does not use inline assembly.

Also switch to picotool, as elf2uf2 has not been patched to support the
2350.
2024-08-29 10:47:03 -04:00
Caleb Jamison
0a33edc997 Import rom_data for the rp235x, don't use intrinsics on rp235x
Many thanks to @thejpster for his work on the rom_data!
Working around boot2 is currently a bit hacky for the rp235x, that will
improve in upcoming rp235x flash pr.
2024-08-26 09:43:08 -04:00
Dario Nieuwenhuis
eab3a57263 rp: use the rp-binary-info crate for binary info. 2024-08-17 22:12:39 +02:00
Caleb Jamison
13cb431472 Enable rp235x doc tests, fixup feature doc
The rp235x doc test requires an unfortunate workaround using a private
feature, "_test", in order compile.
2024-08-12 05:47:16 -04:00
Caleb Jamison
752fbc662a Fix docs, ci 2024-08-12 05:06:59 -04:00
Caleb Jamison
778241fd71 Fix CI, rename private feature, address comments from dirbaio. 2024-08-12 04:32:31 -04:00
Caleb Jamison
ffdc60d6fb Move #![cfg]s to lib.rs 2024-08-09 16:09:16 -04:00
Caleb Jamison
05cb1baf37 Fix ci/rustfmt 2024-08-09 15:54:30 -04:00
Caleb Jamison
e5d8d8b18e Switch to single pac 2024-08-09 12:31:29 -04:00
Caleb Jamison
6f03c40516 cargo fmt 2024-08-08 21:54:21 -04:00
Caleb Jamison
b185e02a42 Initial rp235x support
Examples have been run, but there is not yet a test suite.
2024-08-08 21:35:21 -04:00
Dion Dokter
5dbc531671 RP: Shut up missed warning boot2-none 2024-06-25 16:54:34 +02:00
Dion Dokter
92343551aa RP: add option to provide your own boot2 2024-06-25 14:31:15 +02:00
Dario Nieuwenhuis
d18a919ab9 rp: wait until read matches for PSM accesses. 2024-05-27 00:14:44 +02:00
Dario Nieuwenhuis
33bdc9e85f rp: fix spinlocks staying locked after reset.
Fixes #1736
2024-05-24 20:04:14 +02:00
Alexandru RADOVICI
aa9eb2ab01 rename PWM_CH to PWM_SLICE 2024-04-02 17:20:35 +03:00
Dario Nieuwenhuis
eca9aac194 Fix warnings in recent nightly. 2024-03-20 16:39:09 +01:00
Rafael Bachmann
5221965a1f
Fix minor typos in embassy_rp/src/lib.rs 2024-03-18 23:02:46 +01:00
Dario Nieuwenhuis
15f94fb0fc time: split driver into a separate embassy-time-driver crate. 2024-01-11 16:56:08 +01:00
Barnaby Walters
6a1bdb7e3b [embassy-rp] auto-documented feature flags 2023-12-22 23:50:37 +01:00
Dario Nieuwenhuis
8b36a32ed5 ci: use beta, add secondary nightly ci. 2023-12-21 15:03:57 +01:00
Ulf Lilleengen
f4b77c967f docs: document all embassy-rp public apis
Enable missing doc warnings.
2023-12-19 14:19:46 +01:00
Ulf Lilleengen
e45e3e76b5 docs: embassy-rp rustdoc and refactoring 2023-12-19 10:56:22 +01:00
Dario Nieuwenhuis
6c746dcf39 Document how to bind multiple interrupts and handlers in bind_interrupts!. 2023-12-08 21:26:28 +01:00
Dario Nieuwenhuis
c6989dfbca Remove nightly and unstable-traits features in preparation for 1.75. 2023-11-29 17:26:33 +01:00
Dániel Buga
ad07ea0290 Re-add impl_trait_projections 2023-10-30 19:10:45 +01:00
Dario Nieuwenhuis
d4ed8e5779 rp/bootsel: change it to a method on the peripheral. 2023-10-07 01:47:20 +02:00
Scott Mansell
3e054a6f0d rp2040: implement BOOTSEL button support 2023-10-07 01:39:29 +02:00
Dario Nieuwenhuis
eb12114345 Remove impl_trait_projections. 2023-10-02 14:00:49 +02:00
Dario Nieuwenhuis
bd9021ca1d Make irq token Copy+Clone 2023-09-25 22:35:31 +02:00
Caleb Jamison
2d9f50addc I2c slave take 2
refactored to split modules
renamed to match upstream docs
slight improvement to slave error handling
2023-09-10 23:01:15 +02:00
pennae
b166ed6b78 rp: generalize adc inputs from pins to channels
this lets us treat pins and the temperature sensor uniformly using the
same interface. uniformity in turn lets us add more adc features without
combinatorial explosion of methods and types needed to handle them all.
2023-08-01 18:31:28 +02:00
pennae
cbc8871a0b rp: relocate programs implicitly during load
this removed the RelocatedProgram construction step from pio uses.
there's not all that much to be said for the extra step because the
origin can be set on the input program itself, and the remaining
information exposed by RelocatedProgram can be exposed from
LoadedProgram instead (even though it's already available on the pio_asm
programs, albeit perhaps less convenient). we do lose access to the
relocated instruction iterator, but we also cannot think of anything
this iterator would actually be useful for outside of program loading.
2023-07-28 19:33:02 +02:00
Dario Nieuwenhuis
036e6ae30c
Rename embassy-hal-common to embassy-hal-internal, document it's for internal use only. (#1700) 2023-07-28 13:23:22 +02:00
pennae
e9445ec72d rp: allow for MPU-based stack guards on core 0 as well
using these will require some linker script intervention. setting the
core0 stack needs linker intervention anyway (to provide _stack_start),
having it also provide _stack_end for the guard to use is not that much
of a stretch.
2023-07-21 18:51:35 +02:00