Derek Hageman
b8ef969d92
Generate intrinsic aliases directly
...
Using the full module structure generated by the intrinsics macro
interacts oddly with inlining on some optimization levels, causing
a duplicate identical function body to be generated. This doesn't
affect performance, but it wastes space, so just declare the alias
directly which seems to cause the symbol to be aliased as it should
be.
2022-04-12 08:50:56 -06:00
9names
12cbab967c
Update all BSP examples to use the BSP's re-exported entry macro
2022-04-10 21:54:56 +10:00
9names
f38847a318
Update BSPs to use rp2040_hal::entry instead of cortex_m_rt::entry
2022-04-10 21:43:15 +10:00
Jan Niehusmann
f67b650bb3
Remove some unused fields from UartPeripheral and Reader ( #315 )
...
* Remove unused field `effective_baudrate` from uart code
* Remove unused field `config` from uart code
2022-03-18 20:57:45 +11:00
Marius Meißner
990085948a
Using thread send safe UART* marker, as suggested by @danielzfranklin in #Issue-284 ( #314 )
2022-03-18 20:56:27 +11:00
Jan Niehusmann
6026ea4ae3
Allow to start multiple state machines in sync ( #301 )
...
* add example of synchronized PIOs
* Synchronize state machines using WAIT IRQ instruction
* Use "irq wait 0" instead of "wait 1 irq 0"
This way, the initial value of the interrupt flag doesn't matter
* Start state machines synchronized without IRQ WAIT instruction
* Improve API
Co-authored-by: Andrew Straw <strawman@astraw.com>
2022-03-18 20:55:31 +11:00
Jan Niehusmann
f8de8755cc
Add an rp2040 specific #[entry] macro. ( #300 )
...
* Add an rp2040 specific #[entry] macro.
This macro extends the one from cortex-m-rt by code to unlock
all spinlocks on boot.
* Idiomatic pointer arithmetic
Apply suggestion by @9names, improving address calculations.
(This doesn't change the generated code at opt levels 2 or "z".)
Co-authored-by: 9names <60134748+9names@users.noreply.github.com>
2022-03-13 12:35:59 +11:00
9names
7aefb8680d
Update BSPs prior to release ( #313 )
...
* Update BSP authors to include 'rp-rs developers'
* Update BSP readme's to reflect current release version
* Update BSP changelogs
* Fix version number in HAL README
2022-03-12 22:43:16 +11:00
9names
b81955c2a8
Prep for 0.4.0 release ( #312 )
...
* Update changelog for 0.4.0 release
* Enable rt feature for irq example in Cargo.toml
* Bump pio/pio-proc deps to 0.2.0, update pio examples
* Update BSPs to latest ws2812-pio, remove unused pio dep
* Fix usage of pio_proc in doc comment
* Clean up pio doc-example
* Update rp-pico to latest i2c-pio
Co-authored-by: Jan Niehusmann <jan@gondor.com>
2022-03-11 22:37:34 +11:00
Liam Murphy
56aa96769d
Don't assume usize
is 32 bits
2022-03-05 21:57:35 +11:00
Liam Murphy
51cd52bb8c
fmt
2022-03-05 18:53:11 +11:00
Liam Murphy
f0b46c0f58
Remove the alloc requirement for Core::spawn
2022-03-05 14:55:32 +11:00
Eivind Alexander Bergem
da2372b19c
Fixed broken link in rp-pico Cargo.toml
2022-03-04 21:27:43 +11:00
9names
a40bcc94ea
Add changes since 0.3.0 to changelog ( #295 )
2022-03-03 14:34:51 +11:00
Mike Bell
70be6ac766
Add Tiny2040 board support ( #305 )
...
* Add Tiny2040 board support
* Remove unnecessary dev-dependencies
* Remove unnecessary dependencies
2022-03-01 07:21:52 +11:00
9names
111654fc28
Merge pull request #291 from jannic/avoid-64bit-division
...
Avoid 64bit division
2022-02-27 10:42:56 +11:00
Jan Niehusmann
021e942e47
Fix clippy warnings
2022-02-27 09:29:54 +11:00
Jan Niehusmann
00b49d52b5
Actually run fractional_div test case from CI
2022-02-26 13:33:58 +00:00
Jan Niehusmann
b46ddd7351
Add test cases for fractional_div()
2022-02-26 13:33:58 +00:00
Jan Niehusmann
fecde70cf9
Derive several traits for ClockError
2022-02-26 13:33:58 +00:00
Jan Niehusmann
402b7f1eb8
Use u32 instead of u64 division in clock calculations
...
This saves about 1kB of flash by removing
compiler_builtins::int::specialized_div_rem::u64_div_rem if
no other code uses u64 divisions.
2022-02-26 13:33:58 +00:00
Jan Niehusmann
7750781650
Implement embedded-hal 1.0.0-alpha.7 traits ( #298 )
...
* embedded-hal v1.0.0-alpha.7 removed several traits
* bump dependency to embedded-hal 1.0.0-alpha.7
* Mention embedded-hal alpha changes in changelog
2022-02-26 21:06:55 +11:00
Emil Fresk
b7e56d0869
Added so stopped PIO state machines can change their clock divider
2022-02-26 20:57:12 +11:00
Jonathan 'theJPster' Pallant
212ffec6ca
Merge pull request #294 from 9names/gpio_irq_example
...
Add GPIO interrupt example
2022-02-21 18:10:27 +00:00
9names
4075f81b2d
Merge pull request #272 from 9names/watchdog_fix
...
Set hw reset bits for watchdog
2022-02-20 16:46:12 +11:00
9names
8063882801
Add note about #[interrupt] mut -> &mut transform
...
Co-authored-by: Jan Niehusmann <github@gondor.com>
2022-02-16 22:48:52 +11:00
9names
35875c8756
Store pins together in a tuple to reduce boilerplate
2022-02-15 20:17:18 +11:00
9names
44a9b0f541
Add GPIO interrupt example
2022-02-14 22:47:46 +11:00
9names
78cad0df97
Merge pull request #290 from PavanKumarPothula/main
...
Just a typo in the hyperlink. Nothing much.
2022-02-13 13:37:43 +11:00
9names
fff980611a
Merge pull request #289 from astraw/fix-typo
...
fix typo
2022-02-13 13:37:12 +11:00
9names
f46c23d3b7
Merge pull request #288 from Sizurka/rom-intrinsics
...
Connect Bootrom Instrinsics
2022-02-13 13:36:39 +11:00
Derek Hageman
80c84b13ba
Add ROM floating point math library
...
Hook up the ROM functions to floating point intrinsics.
2022-02-12 11:56:24 -07:00
Derek Hageman
ce681b4f10
Move divider intrinsics to the new intrinsics macro
2022-02-12 11:56:24 -07:00
Derek Hageman
a70eb89799
Add basic ROM intrinsics
...
Add a standardized macro for intrinsics export and connect the simple
ROM functions to intrinsics.
2022-02-12 11:56:24 -07:00
Pavan Kumar Pothula
438ffccf69
Just a typo in the hyperlink. Nothing much.
2022-02-09 22:08:16 +05:30
Derek Hageman
81ab38fd71
Add ROM version check
...
Add a check for a V2 bootrom when using floating point functions that
require it. Panic when it's not present.
2022-02-06 17:14:27 -07:00
Andrew Straw
799449dd1a
fix typo
2022-02-06 09:03:30 +01:00
Derek Hageman
a6f2453440
Fix ROM function signatures
...
Fix a few function signatures that don't match the ROM according to the
datasheet.
_memset4 also has a wrong code in the datasheet, so match it to the
actual ROM.
2022-02-04 07:18:11 -07:00
Jonathan 'theJPster' Pallant
8bdecd2058
Merge pull request #283 from Sizurka/rom-functions
...
Improve ROM function access
2022-02-04 09:53:59 +00:00
Derek Hageman
98fd6c1724
Add ROM function caching
...
Add a feature to enable automatic caching of the result of ROM table
function lookups.
2022-02-03 13:45:18 -07:00
Derek Hageman
a6daaf9fa3
Standardize ROM function access
...
Make all ROM functions (normal and floating point) provide both a direct
call that does the operation and a module with a ptr() function to get
the function pointer.
2022-02-03 13:32:18 -07:00
Jonathan 'theJPster' Pallant
16c9064c52
Merge pull request #280 from 9names/alarm-ergonomics
...
Use atomic operations for altering Timer alarm interrupts
2022-02-03 19:47:40 +00:00
Jonathan 'theJPster' Pallant
385c92392b
Merge pull request #278 from Sizurka/divider-intrinsics
...
Implement intrinsics for the hardware divider
2022-02-03 19:46:00 +00:00
Jonathan 'theJPster' Pallant
1a58449cf4
Merge pull request #285 from astraw/pio-side-set-example
...
example of side setting using PIO
2022-02-03 19:40:28 +00:00
Andrew Straw
cd15d268f6
run 'cargo fmt'
2022-02-02 22:10:39 +01:00
Andrew Straw
a1ed9ef93c
example of side setting using PIO
2022-02-01 11:09:09 +01:00
Jonathan 'theJPster' Pallant
354a2a5e5e
Merge pull request #281 from rp-rs/update_pac
...
Use new spinlock API provide by PAC 0.3.0
2022-01-31 10:40:02 +00:00
9names
baff438f53
Merge pull request #279 from jannic/dht11_example
...
Add an example reading a dht11 sensor
2022-01-31 20:37:44 +11:00
Jonathan 'theJPster' Pallant
4a540d041a
Hide spinlock 31.
2022-01-30 16:43:59 +00:00
Jonathan 'theJPster' Pallant
efda22c9ea
Update spinlock docs.
2022-01-30 16:43:53 +00:00