Commit graph

477 commits

Author SHA1 Message Date
Jan Niehusmann c1988432c8 Avoid dead_code warning if critical-section-impl is not enabled
Also make Spinlock31 public if it's not used by the critical section impl
2022-11-12 14:17:45 +00:00
Jan Niehusmann 0ecf27450a
Merge pull request #484 from davidcole1340/program-wrap
Add ability to modify installed program wrap bounds
2022-11-07 20:34:35 +01:00
Jan Niehusmann f0d7cd998f
Merge pull request #473 from jannic/update-changelog
Update CHANGELOG
2022-11-02 00:13:00 +01:00
Jan Niehusmann 5ae1f90939
Merge pull request #488 from ptpaterson/eh1_0_alpha-spi
implement embedded-hal aplha SPI traits
2022-10-30 13:47:11 +01:00
9names 9bc48de974
Merge pull request #486 from 9names/error_add_debug_traits
Add derive(Debug) and derive(defmt::Format) to error types.

pll and xosc Error types didn't implement Debug, which made them annoying to work with.
And only a few of our Error types implemented derive(defmt::Format).
I added both to all the errors I could find to make things a little more consistent.
2022-10-29 08:31:02 +11:00
Jan Niehusmann f2d9fff0e2
Specify required feature critical-section-impl for some examples (#487) 2022-10-28 22:15:32 +01:00
Paul Paterson 98daa7a25d implement embedded-hal aplha SPI traits 2022-10-28 13:21:55 -04:00
Jan Niehusmann e60a979eda
Merge pull request #483 from zachs18/patch-1
Remove unnecessary `mut` from `static mut LOCK_OWNER: AtomicU8` in critical section impl.
2022-10-28 18:27:24 +02:00
Jan Niehusmann 4ca2dcfd20
Update rp2040-hal/CHANGELOG.md
Co-authored-by: 9names <60134748+9names@users.noreply.github.com>
2022-10-28 18:26:13 +02:00
9names 219d393085 Add derive(Debug) and derive(defmt::Format) to error types 2022-10-27 19:17:03 +11:00
David Cole 3c06a3359e do not include offset when checking wrap bounds 2022-10-27 12:57:35 +13:00
David Cole 1ba07b09e7 Add ability to modify installed program wrap bounds
The wrap source and target cannot change after installing the program
into the PIO at present, even though this is possible with the C/C++
HAL. This is useful when using the same program across multiple state
machines that have different wrap sources and targets.
2022-10-26 21:03:58 +13:00
Jan Niehusmann 8e79f438ba
Merge pull request #467 from jannic/fix-466
Use InstalledProgram::share() in examples/pio_synchronized.rs
2022-10-25 23:34:36 +02:00
zachs18 2b8dda74aa
Remove unnecessary mut from static mut LOCK_OWNER: AtomicU8 in critical section impl.
`LOCK_OWNER` is only accessed using the atomic APIs, which take `&self`, so it does not need to be `static mut`, `static` is fine.

(I haven't seen any miscompilations of this, but I'm unsure if Rust is allowed to assume `static mut`s are not aliased and apply optimizations based on that. If so, this would prevent that.)
2022-10-25 13:16:03 -05:00
Jan Niehusmann 018965d015 Update dependency on rp2040-pac to 0.4.0 2022-10-18 20:11:24 +00:00
Jan Niehusmann 95598ad199 Update CHANGELOG 2022-10-18 20:06:19 +00:00
Derek Hageman 04e245813a Add CHANGELOG entry for UART error field
Add a changelog entry documenting the change to the UART error field
name.
2022-10-16 20:22:17 -06:00
Derek Hageman c461d21136 Fix UART read error discard data
Limit the discarded data reference to the data that has actually been
read so far, instead of the whole input buffer.  Also fix a spelling
error in the field name.
2022-10-16 10:59:26 -06:00
Jan Niehusmann d8a0c64618 Make UartConfig::new(...) const 2022-10-15 17:34:13 +00:00
Jan Niehusmann e9428c3f57 Add CHANGELOG entries 2022-10-15 17:14:43 +00:00
Jan Niehusmann fb7fba03ad Add deprecation attribute to common_configs 2022-10-15 17:14:43 +00:00
Jan Niehusmann b81ad6f599 Use UartConfig::new constructor instead of common_configs in examples 2022-10-15 17:14:43 +00:00
Jan Niehusmann 0a86dad34c Implement UartConfig::new constructor method 2022-10-15 17:02:30 +00:00
Jan Niehusmann 84b92edd30 Check watchdog load value max value before multiplying by 2, to avoid integer overflow 2022-10-12 22:39:57 +00:00
Jan Niehusmann e9923cbcd2 Use InstalledProgram::share() in examples/pio_synchronized.rs 2022-10-11 21:04:04 +00:00
Derek Hageman 39190c357f
Fix watchdog counter load (#464)
Fix the watchdog load to reflect the 1us tick rate.  This was changed
in #361, which presumably used the field name (delay_ms) and assumed
it was in milliseconds.  So this also fixes the name to reflect that
it's microseconds.
2022-10-10 12:15:24 +01:00
Wilfried Chauveau eac51cdd16
remove unused future dependency (#463) 2022-10-06 21:39:48 +01:00
Wilfried Chauveau 305dfc9d1f
Add rtic-monotonic support for timer & alarms (feature gated) (#459)
* Add rtic-monotonic support for timer & alarms
* Force Alarm interrupt if timer is set too soon
* timer: Remove non_exhaustive attribute from ScheduleAlarmError
* timer: TooSoon is no longer emitted so it can be removed
2022-10-06 18:31:31 +01:00
9names fc110f07c3 Add comments for HAL features 2022-10-03 11:43:09 +11:00
Jan Niehusmann d5bfb0ca8d Fix typo in changelog 2022-09-30 16:53:37 +00:00
Jan Niehusmann 819f051cc2 Update changelog 2022-09-28 21:59:09 +00:00
Jan Niehusmann fcd6f7c19d Remove unnecessary custom Infallible types 2022-09-28 21:59:09 +00:00
Jan Niehusmann e4deaabb51 Upgraded embedded-hal alpha dependency to 1.0.0-alpha.9
For now, disabled non-blocking implementations.
2022-09-28 21:59:09 +00:00
Jan Niehusmann 8d9b4538c9
Merge pull request #453 from jannic/update-jmp-offset
simplify jump offset calculation when loading PIO programs
2022-09-27 22:25:22 +02:00
Olivier 69c047136c added SPI is_busy function 2022-09-19 15:27:46 +02:00
Jan Niehusmann 6a5747b213 Use u8 instead of usize for pio address calculation 2022-09-18 10:48:09 +00:00
Jan Niehusmann 7cca9a71d7 simplify jump offset calculation when loading PIO programs 2022-09-17 17:22:34 +00:00
Jan Niehusmann fa83510277 Provide rp2040_hal::gpio::pin::Pin::into_push_pull_output_in_state 2022-09-17 13:31:11 +00:00
Jan Niehusmann cbed25944a
Merge pull request #449 from papyDoctor/main
Added set_fifos/set_rx_watermark/set_tx_watermark
2022-09-17 10:25:52 +02:00
Wilfried Chauveau 4ddad4e74c
fix concurrent accesses to sm_execctrl and sm_instr when sideset isn't optional (#448)
* fix concurrent accesses to sm_execctrl and sm_instr when sideset isn't optional
* review & document unsafe blocks
2022-09-16 17:19:54 +01:00
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