Commit graph

760 commits

Author SHA1 Message Date
Wilfried Chauveau 322bba2cc0
pio: Move interrupt related (en|dis)abling/forcing methods to the statemachine (#447)
* pio: Move interrupt related (en|dis)abling/forcing methods to the statemachine

The SM knows its id using the type system so there's no need for checking it.
This commit also adds a `PioIRQ` enum to select the output IRQ.

* Move the interrupt control to Rx & Tx and make all accesses to inte atomic
* Adjust the ergonomics of IRQ handling.
* Elide lifetimes where they can be (clippy's advice)
2022-09-14 21:07:03 +01:00
Wilfried Chauveau 42fc266e67
timer: Mark Timer & Alarm* Send and Sync (#451) 2022-09-14 21:06:08 +01:00
Olivier b29cc2630c Added set_fifos/set_rx_watermark/set_tx_watermark
that permit to enable/disable the Rx/Tx FIFOs and to set
the watermarks for the DMA/interrupts triggering
2022-09-12 17:06:27 +02:00
Jan Niehusmann e681b67d9c
Merge pull request #444 from jannic/critical-section-default
Enable critical-section-impl by default only from board crates, not from hal
2022-09-02 12:12:45 +02:00
Wilfried Chauveau 39ffe70dab
Use rp2040_boot2::BOOT_LOADER_GENERIC_03H in the vector-table example (#445) 2022-09-02 08:02:34 +01:00
A. Gavin 993487443a
examples: clarify usage of boot2 section (#443) 2022-09-02 06:38:58 +01:00
Wilfried Chauveau 5ce10ff94e
timer: Use a fixed type in Alarm::schedule (#442) 2022-08-31 21:45:08 +01:00
Wilfried Chauveau 0e2b4cf7be
Add a method to allow setting the PIO's clock divisor without floats (#440)
* pio: Changes `PIOBuilder::clock_divisor` from f32 to fixed point)
* pio: mark clock_divisor as deprecated
2022-08-31 21:44:53 +01:00
Wilfried Chauveau 6d75cd8291
usb: Use the dedicated write_bitmask_* functions (#441) 2022-08-31 13:41:35 +01:00
Wilfried Chauveau 4dbd5667a6
Use TimerInstant in Timer::GetCounter & add Alarm::schedule_at (#439) 2022-08-31 06:54:57 +01:00
Wilfried Chauveau f30df4a0c7
doc: Fix the link under the logo in rp2040-hal's readme (#438) 2022-08-26 12:15:24 +01:00
Wilfried Chauveau 4ead633042
Revert "Make Pimoroni Badger 2040's crate name consistent with it's directory (#435)" (#437)
This reverts commit 1de8f9016d.
2022-08-26 12:15:17 +01:00
Wilfried Chauveau 685634e85b
Remove registry patches for i2c and ws2812-pio now that they are published (#436) 2022-08-26 10:49:51 +01:00
Wilfried Chauveau 1de8f9016d
Make Pimoroni Badger 2040's crate name consistent with it's directory (#435) 2022-08-26 10:49:43 +01:00
Wilfried Chauveau 8d52f37dd1
Prepare for HAL 0.6.0 release (#430)
* Prep for HAL 0.6.0 release

* Update changelog, readme and version number for HAL 0.5.0 release
* Bump HAL version in BSP deps
* Add the missing boards to the main README.md
2022-08-26 10:05:56 +01:00
Wilfried Chauveau 13cad64c29
remove unused dependencies & add GHA flow (#429) 2022-08-26 03:42:33 +01:00
Wilfried Chauveau 3261eccd4d
Fix interpolator example post migration to fugit (#434) 2022-08-26 02:32:24 +01:00
Wilfried Chauveau dbc691fb09
Temporary disable sticky-bit in set_pins too (#433) 2022-08-25 18:19:01 +01:00
Kasil 31469c232f
Add support for the Interpolator (#371)
* Implementation of the interpolator.
* corrected formatting
* fixed documentation code
* add clamp flag to LaneCtrl
* addition of an example for the interpolator
* put documentation behind ///
* rewording comment for clarity
* using more idiomatic fn new
2022-08-25 18:02:56 +01:00
Jan Niehusmann 00f5e8d184
Merge pull request #432 from jannic/fix-set_pindirs
Temporarily disable out_sticky in set_pindirs
2022-08-25 12:02:55 +02:00
Jan Niehusmann 6b0ea14ec1 Temporarily disable out_sticky in set_pindirs
Otherwise, it will change unrelated pindirs as well, if sticky is set
2022-08-25 07:49:59 +00:00
Wilfried Chauveau 47d8f4fc21
Add Debug and defmt::Format to the public types of rp2040_hal::gpio::dynpin (#431) 2022-08-25 05:54:26 +01:00
Wilfried Chauveau cd9570e7c4 The patches to -pio need to be commented out before release.
This will require an extra step before release but can be packed with
the usual version bump.
This helps making sure CI passes before merging.
2022-08-24 22:46:34 +01:00
Wilfried Chauveau bf66ae9a58 Bump -pio dependencies 2022-08-24 22:46:34 +01:00
Wilfried Chauveau e5eda48891 bump pio version on boards still using pio 0.1.0 2022-08-24 22:46:34 +01:00
Wilfried Chauveau 93ec18be07 migrate rp2040-hal from embedded_time to fugit 2022-08-24 22:46:34 +01:00
Wilfried Chauveau 6a29b3bb73 Make the i2c error render as text if eh1_0_alpha is on. 2022-08-24 18:23:16 +01:00
Jan Niehusmann 280de7cb99 Enable critical-section-impl by default only from board crates, not from hal
There are a lot of non-binary crates depending on rp2040-hal. That way,
the default-features of rp2040-hal may be activated unintentionally
through an indirect dependency. Therefore, a binary crate which wants
to disable the `critical-section-impl` feature to provide its own one
could have a hard time to do so.

In contrast, the board support crates are usually only used by top-level
binary crates. So disabling the default features on those should usually
just work.

Binary crates depending on rp2040-hal directly, which don't use any
board support crate, might need to activate the feature manually. This
is reasonable because those binary crates need to replicate some
boilerplate from the board crates anyhow.
2022-08-24 14:31:43 +00:00
Jan Niehusmann 6ef6838132
Merge pull request #428 from jannic/fix-embedded-sdmmc-2
Minimal fix for embedded-sdmmc build failure
2022-08-23 09:41:04 +02:00
Jan Niehusmann d5331d1ac7 Minimal fix for embedded-sdmmc build failure
Just pin the git dependency on the most recent working version
2022-08-23 07:28:28 +00:00
Wilfried Chauveau 42e929d7e1
Use rp2040-hal in all example (possibly through their bsp) (#423)
* Use rp2040-hal in all example (possibly through their bsp)

Some of the examples were using the cortex_m_rt::entry method which
misses the device specific spinlock re-initialisation.

This commits makes the usage more consistent by using rp2040_hal exported
macro as the only `entry` method used across examples.
2022-08-21 19:01:45 +01:00
Wilfried Chauveau 51db37a4cb
replace cortex_m::interrupt::Mutex with critical_section::Mutex in examples (#422) 2022-08-21 19:00:57 +01:00
Jan Niehusmann 735597b145
Merge pull request #425 from camrbuss/clocks_extended_doc
Fix clocks docs "extended usage" to match `init_clocks_and_plls`
2022-08-21 11:27:01 +02:00
camrbuss fea35b48bb doc: fix clocks extended usage xosc order 2022-08-21 02:51:53 -04:00
Jan Niehusmann f8bf06cb7f
Merge pull request #421 from jannic/issue-420
Enable rp2040-hal/defmt feature in dev-dependencies
2022-08-19 00:03:47 +02:00
Jan Niehusmann 68eb48be44 Enable rp2040-hal/defmt feature in dev-dependencies
This is a little bit hacky, as it relies on rp2040-hal actually
using (and therefore linking) some defmt code when the defmt feature is
enabled.

However this solution has the advantage that it only affects
dev-dependencies and therefore has no impact on the board crates
themselves.

Closes #420
2022-08-18 16:05:10 +00:00
Jan Niehusmann ead6c26eee
Merge pull request #414 from jannic/critical-section-1.0.0
Upgrade to critical-section 1.0.0
2022-08-18 17:23:16 +02:00
Jan Niehusmann c1c5e05989 Feature-gate critical-section-impl
For compatibility with earlier versions, this feature is activated by
default. This decision can be revisited later.
2022-08-18 06:35:04 +00:00
Jan Niehusmann b4d0d613e3 Update to critical-section 1.0.0 2022-08-18 06:34:28 +00:00
Wilfried Chauveau 7bfab4ffd2
Implements USB enumeration workaround (RP2040-E5). (#120)
* Implement rp2040-E5 workaround for usb enumeration.

* Expand documentation and add to pico_usb_serial & pico_usb_twitchy_mouse

* Fix errata-5 documentation around the bus-keep state.

* Update CHANGELOG.md
2022-08-17 22:22:36 +01:00
Wilfried Chauveau 9792408902
Merge pull request #418 from ithinuel/give-names-to-gha-steps
Add meaningful names to steps and remove quasi-repetition
2022-08-17 19:35:49 +01:00
Wilfried Chauveau 082281b10b
Use matrix in GHA workflow to reduce duplication 2022-08-13 17:22:04 +01:00
Jan Niehusmann 7e178acde5
Merge pull request #419 from alxpettit/patch-1
Fix typo
2022-08-13 07:16:06 +02:00
Alexandria 26356428bf
Update pico_usb_twitchy_mouse.rs
typo
2022-08-12 16:08:46 -07:00
Wilfried Chauveau f10c73f4fa
Add meaningful names to steps and remove quasi-repetition
The workflow only shows "Runs action-rs/cargo@v1" which does not tell us
much about what's actually being done.
The list and clean up done after each build varies by only the debug/release
part of the path that is repeated several times (2).

This commit gives each step a more meaningful name and simplify the list &
cleanup step with a generic one liner that can be copy/pasted without
modification.
2022-08-12 12:50:07 +01:00
Jan Niehusmann fbba3755ff
Merge pull request #417 from jannic/clippy
Fix clippy warnings
2022-08-12 00:22:27 +02:00
Jan Niehusmann c1df2bea2b Fix clippy warnings
Fixes a few instances of derive-partial-eq-without-eq and needless-borrow
clippy warnings.
2022-08-11 21:45:26 +00:00
Jan Niehusmann 96e15ee6de
Merge pull request #415 from jannic/features-vector_table
Enable feature "rt" when compiling vector_table example
2022-08-11 19:21:07 +02:00
Jan Niehusmann e9a720ffab
Merge pull request #416 from jannic/generic-boot-loader
Use generic boot loader for rp2040-hal examples
2022-08-11 19:20:43 +02:00
Jan Niehusmann 0f33d2b8a6 Enable feature "rt" when compiling vector_table example
Without this change, building the vector_table example fails when
building from the rp2040-hal directory:

```
rp2040-hal$ cargo build --release --example vector_table
   Compiling rp2040-hal v0.5.0 (rp2040-hal)
error[E0432]: unresolved import `pac::interrupt`
  --> rp2040-hal/examples/vector_table.rs:30:5
   |
30 | use pac::interrupt;
   |     ^^^^^---------
   |     |    |
   |     |    help: a similar name exists in the module (notice the capitalization): `Interrupt`
   |     no `interrupt` in the root

error: cannot determine resolution for the attribute macro `interrupt`
   --> rp2040-hal/examples/vector_table.rs:148:3
    |
148 | #[interrupt]
    |   ^^^^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports
```
2022-08-11 12:09:20 +00:00