105 Commits

Author SHA1 Message Date
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
pennae
4b63829110 rp/pio: use bind_interrupts for irqs
closes #1338
2023-07-07 16:27:10 +02:00
Dario Nieuwenhuis
837ebe405f rp: update rp-pac. 2023-06-16 01:41:07 +02:00
Dario Nieuwenhuis
98c821ac39 Remove embassy-cortex-m crate, move stuff to embassy-hal-common. 2023-06-09 16:44:20 +02:00
Dario Nieuwenhuis
dc8e34420f Remove executor dep+reexports from HALs.
Closes #1547
2023-06-09 16:29:45 +02:00
Dario Nieuwenhuis
8c93805ab5 Add rt feature to HALs, cfg out interrupt handling when not set. 2023-06-08 18:57:03 +02:00
Dario Nieuwenhuis
5c2f02c735 Reexport NVIC_PRIO_BITS at HAL root.
This allows using RTIC with `#[rtic::app(device = embassy_nrf, ...)]`
2023-06-08 18:07:49 +02:00
Dario Nieuwenhuis
921780e6bf Make interrupt module more standard.
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.

This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
  - It works with `cortex-m` functions for manipulating interrupts, for example.
  - It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
2023-06-08 18:00:48 +02:00
Dario Nieuwenhuis
9f7392474b Update Rust nightly. 2023-05-19 17:12:39 +02:00