Tobias Pisani
f9a576d13d
feat: Add spi support for STM32F1 variants
2021-10-11 22:39:48 +02:00
Ben Gamari
006bbea51a
stm32/adc: Add IN0 channel
2021-09-29 00:32:40 -04:00
Ben Gamari
5a38cc2140
stm32/dac: Ensure that clock is enabled
2021-09-29 00:32:40 -04:00
Ben Gamari
0b9961584b
stm32/adc: Ensure that clock is enabled
...
Sadly due to the inconsistency in clocking configuration across devices
we cannot use RccPeripheral.
2021-09-29 00:32:40 -04:00
Ben Gamari
573e6ec373
stm32g0: Add support for low-power run
2021-09-28 21:19:10 -04:00
Ben Gamari
794798e225
stm32g0: Add support for HSI divider
2021-09-28 21:19:10 -04:00
Ben Gamari
aa4069fe10
stm32/adc: Fix ADC support for STM32G0
2021-09-28 21:19:10 -04:00
Ben Gamari
e2e0464d04
stm32/adc: Factor out conversion logic
...
Also guard errata workaround correctly.
2021-09-28 18:00:05 -04:00
Mariusz Ryndzionek
ce361abb1b
Changing the casts (code review request)
2021-09-28 18:31:04 +02:00
Mariusz Ryndzionek
bce909ec1e
Initial STM32F1 family support with two examples for STM32F103C8 (Blue Pill)
2021-09-28 18:31:04 +02:00
Joshua Salzedo
ab60cfd64b
Patch additional regressions
2021-09-27 15:48:56 -07:00
Joshua Salzedo
67e2f9159c
set moder::ALTERNATE last when configuring pins to AF modes.
...
- as per STM32F4xx_hal's impl
2021-09-27 15:27:43 -07:00
Joshua Salzedo
07e20a7443
Pub use version-specific CRC symbols, not just the CRC struct.
2021-09-27 11:17:31 -07:00
Joshua Salzedo
a26ffeb84b
Cargo fmt
2021-09-27 10:49:32 -07:00
Joshua Salzedo
e36d4f460a
Fix variable names in crc_v2/v3.
...
removed `reclaim` in crc_v1.
used write instead of modify.
renamed `init` to `reset` in crc_v1.
2021-09-27 10:46:09 -07:00
Joshua Salzedo
43ad28b9f9
Use unborrow for CRC constructor
...
sort feature gates
fix repetition in CRC config names
2021-09-27 10:38:55 -07:00
Joshua Salzedo
7392e33ad5
cargo fmt
2021-09-26 19:20:21 -07:00
Joshua Salzedo
e67af514e9
Fix v2/3 module paths
2021-09-26 19:15:54 -07:00
Joshua Salzedo
642b0825a6
V3 is just an extension of V2, merge modules.
2021-09-26 19:14:08 -07:00
Joshua Salzedo
f9ff5336d4
Merge all of the crc_v2 configurations into a single modify call
2021-09-26 18:46:19 -07:00
Joshua Salzedo
8fac444c4e
Flesh out v2 config writes
2021-09-26 18:39:55 -07:00
Joshua Salzedo
afef19d813
Start work towards CRC_V2
2021-09-26 18:26:20 -07:00
Joshua Salzedo
7899d73359
Expose read so the value can be obtained without a write.
2021-09-26 17:28:58 -07:00
Joshua Salzedo
c892289b2c
Actually export CRC
2021-09-26 17:26:33 -07:00
Joshua Salzedo
24dea91f5a
Fix interface changes
2021-09-26 17:24:48 -07:00
Joshua Salzedo
e18a27eea2
First pass at CRC_V1
2021-09-26 16:46:17 -07:00
Joshua Salzedo
e527892d89
Start work on CRC_v1
2021-09-26 16:29:22 -07:00
Dario Nieuwenhuis
f8d833e0c5
Merge pull request #403 from mryndzionek/af_type
...
Small adjustment to 'set_as_af' interface
2021-09-24 20:20:45 +02:00
Mariusz Ryndzionek
e4b37c40c9
Code review request - moving OutputType
to mod sealed
2021-09-24 19:56:48 +02:00
Mariusz Ryndzionek
d371298a27
Small adjustment to 'set_as_af' interface
...
Small adjustment to 'set_as_af' interface - v2
2021-09-24 18:39:07 +02:00
Vincent Stakenburg
7d6d274d55
Add MSI and PLL clock source for L4
2021-09-24 18:27:39 +02:00
Ulf Lilleengen
b6fc19182b
Add pwr for L1 and update RCC to new reg block
2021-09-23 14:51:16 +02:00
Ulf Lilleengen
9d45018077
Refactor V1 SPI
2021-09-21 14:50:23 +02:00
Ulf Lilleengen
c79485c286
Support for STM32L1
...
* Add RCC
* Fix more issues with dash in chip names
* Update stm32-data version
* Add blinky and spi example
2021-09-21 14:50:23 +02:00
Ulf Lilleengen
fb697a2657
Updates
2021-09-15 12:46:20 +02:00
Dario Nieuwenhuis
bb72f7eb98
Merge pull request #390 from lulf/wasm-executor
...
Wasm executor support
2021-09-13 18:55:17 +02:00
Ulf Lilleengen
99a94f1d50
Update version of critical-section
2021-09-13 17:05:17 +02:00
Dario Nieuwenhuis
d6faf69e09
Merge pull request #378 from numero-744/gen-features-using-rust-not-python
...
Use our beloved Rust instead of Python
2021-09-13 16:47:01 +02:00
Ulf Lilleengen
e24528051b
Add WASM support for executor
...
* Adds an executor for WASM runtimes based on wasm_bindgen.
* Add time driver based on JS time handling.
* Add example that can run in browser locally.
* Update to critical-section version that supports 'std' flag
2021-09-13 16:42:39 +02:00
Côme ALLART
99ccf18160
fix(gen-features): keep data files order
2021-09-11 20:04:57 +02:00
Dario Nieuwenhuis
ead987245d
embassy: Refactor module structure to remove kitchen-sink util
.
2021-09-11 02:35:35 +02:00
Dario Nieuwenhuis
f2623e7e9b
Update lots of deps
2021-09-11 01:35:23 +02:00
Adam Greig
14fa6c2760
STM32H7: Ethernet: Disable RA in MAC filtering, fix order of MACA0 register writes.
2021-09-06 23:16:43 +01:00
Bob McWhirter
d4bf78a0c1
Don't set SAF=true, do set RA=true for Ethernet.
...
Source-Address-Filtering is not helping the board to receive packets.
For unknown reasons, the Receive-All is required, when in theory
it should not be required. Until we figure it out, follow the
stm32h7xx-hal example of setting RA=true.
2021-09-06 14:21:26 -04:00
Dario Nieuwenhuis
eff8ae9c4d
Merge pull request #381 from lulf/stm32wl55-subghz
...
Add HAL for SubGhz peripheral for STM32 WL series
2021-09-06 00:58:42 +02:00
Dario Nieuwenhuis
de016e8456
Remove trait_alias, allow(incomplete_features).
...
trait_alias seems unused. no idea why it's there.
2021-09-03 17:00:58 +02:00
Ulf Lilleengen
0f3d278ce3
Temporarily comment unused code
2021-09-02 11:31:38 +02:00
Ulf Lilleengen
4dccda085f
Add missing files for G0
2021-09-02 11:19:54 +02:00
Ulf Lilleengen
f175574bcf
Cargo fmt
2021-09-02 10:43:08 +02:00
Ulf Lilleengen
16aa1d1770
ADd missing file
2021-09-02 10:42:11 +02:00
Ulf Lilleengen
7ad6280e65
Add HAL for SubGhz peripheral for STM32 WL series
...
Based on the HAL from stm32wl, the peripheral driver has been
modified to fit into embassy, using the embassy APIs, providing
operation of the radio peripheral.
The initial version does not offer any async APIs, but the example
shows how the radio IRQ can be used to perform async TX of the radio.
2021-09-02 10:39:56 +02:00
Bob McWhirter
37ceae908b
Rename Random impl to Rng.
...
Create Random struct providing next_x(range) for all T:Rng.
2021-09-01 09:39:33 -04:00
Bob McWhirter
7fa3b27cac
Move random utils to another trait.
2021-08-30 09:55:29 -04:00
Bob McWhirter
d525f51940
Add a convenience next(range) to Rng.
2021-08-27 16:10:01 -04:00
Côme ALLART
022b809248
refactor(gen_features): use Rust instead of Python
...
Done for /embassy-stm32 only
The new generator is in /stm32-gen-features
/stm32-metapac could/should be added too
A CI check "generated features up to date" could/should be performed
2021-08-27 11:09:27 +02:00
Dario Nieuwenhuis
e56c6166dc
Merge pull request #373 from embassy-rs/docs
...
Time driver improvements, docs.
2021-08-26 23:37:37 +02:00
Bob McWhirter
dc394dd477
Fixes #374 : Ensure Rng's error is defmt-able.
2021-08-26 14:04:12 -04:00
numero-744
1098072384
build(stm32): remove gen.py build dependency
2021-08-26 18:59:37 +02:00
Dario Nieuwenhuis
7c0990ad1e
time: allow storing state inside the driver struct.
2021-08-25 21:06:27 +02:00
Bob McWhirter
4aa52f1b9e
Formatting.
2021-08-24 14:56:45 -04:00
Bob McWhirter
e36ae76e45
Fix blocking-write for SPI.
2021-08-24 14:44:47 -04:00
Ben Gamari
e2f71ffbbd
Add support for STM32G0
2021-08-20 00:15:11 +02:00
Dario Nieuwenhuis
174c51f097
stm32/metapac: check GPIO RCC regs are always found.
2021-08-19 23:59:50 +02:00
Dario Nieuwenhuis
2c992f7010
stm32: move dbgmcu stuff to toplevel config setting, defaulting to true.
2021-08-19 23:50:19 +02:00
Dario Nieuwenhuis
446d6c275c
stm32: remove last use of python at build time
2021-08-19 23:42:18 +02:00
Dario Nieuwenhuis
9f51f9a170
stm32/wl: add stub APB3 to get it to build.
...
Completely untested.
2021-08-19 22:51:41 +02:00
Dario Nieuwenhuis
637fcdd316
stm32/rcc: update for new version naming
2021-08-19 22:17:45 +02:00
Dario Nieuwenhuis
ec51880e28
stm32/exti: unify all versions into single impl
2021-08-19 22:17:17 +02:00
Dario Nieuwenhuis
d3aeb45fb3
Update cortex-m-rt to v0.7 for stm32, rp.
2021-08-19 00:56:11 +02:00
Timo Kröger
f141b98741
bxcan: Cleanup
...
Older families like F1 and F4 have a consistent naming for the CAN
peripherals: CAN when there is only one instance, CAN1/CAN2/CAN2 if
there are multiple instances.
Newer families like L4 and F7 use the name CAN1 even if there is only
one instance. The number of filter banks is incorrect for those.
Affected chips:
* STM32F722
* STM32F723
* STM32F730
* STM32F732
* STM32F733
* STM32L4P5
* STM32L4Q5
* STM32L4R5
* STM32L4R7
* STM32L4R9
* STM32L4S5
* STM32L4S7
* STM32L4S9
* STM32L431
* STM32L432
* STM32L433
* STM32L442
* STM32L443
* STM32L451
* STM32L452
* STM32L462
* STM32L471
* STM32L475
* STM32L476
* STM32L485
* STM32L486
2021-08-18 21:58:50 +02:00
Timo Kröger
0c3bede64f
bxcan: Make bxcan
a hard dependency
...
There seems no way to enable a optional dependency from build.rs or
features passed through the command line.
2021-08-18 21:58:50 +02:00
Timo Kröger
191a589820
bxcan: namechange "bxcan_v1" -> "can_bxcan"
2021-08-18 21:58:50 +02:00
Timo Kröger
dc6b7f3cba
bxcan: Disable on drop
2021-08-18 21:58:50 +02:00
Timo Kröger
7c405250a7
CAN support with bxcan crate
2021-08-18 21:58:50 +02:00
Ulf Lilleengen
4df63f5379
Add per-core EXTI support
...
* Generate a core index put into the PAC for the peripherals to use as
index into registers.
* Add EXTI v2 which uses CORE_INDEX to index exti registers
2021-08-17 16:22:47 +02:00
Ulf Lilleengen
61409e2fb6
Add example for STM32WL55
2021-08-17 16:22:47 +02:00
Bob McWhirter
a93ed2bed6
Add H7 exti button example using correct EXTI reg block offsets.
2021-08-16 15:15:07 -04:00
Ulf Lilleengen
cbff0398bb
Add IRQ-driven buffered USART implementation for STM32 v2 usart ( #356 )
...
* Add IRQ-driven buffered USART implementation for STM32 v2 usart
* Implementation based on nRF UARTE, but simplified to not use DMA to
avoid complex interaction between DMA and USART.
* Implementation of AsyncBufRead and AsyncWrite traits
* Some unit tests to ring buffer
* Update polyfill version
* Update sub module to get usart IRQ fix
2021-08-16 17:16:49 +02:00
Thales Fragoso
c7ae2d2a3a
stm32: Add fences to DMA code
2021-08-10 20:45:41 -03:00
Ben Gamari
40e7176e13
embassy-stm32: Eliminate use of unwrap
2021-08-05 22:40:08 +02:00
Ben Gamari
41aaff95f8
stm32h7: Use unwrap!
2021-08-05 22:39:59 +02:00
Ben Gamari
e44acd0d56
stm32f4: Use unwrap! where possible
2021-08-05 22:39:59 +02:00
Dario Nieuwenhuis
05e50e1f4a
time_driver: use regular fn ptr -> raw ptr casts
2021-08-05 19:19:47 +02:00
Dario Nieuwenhuis
b1d631d639
stm32/time: add Cargo features to choose tim2/tim3
2021-08-05 19:14:09 +02:00
Dario Nieuwenhuis
0ea6a2d890
time: replace dyn clock/alarm with a global Driver trait
2021-08-05 19:14:09 +02:00
Dario Nieuwenhuis
cfa1f61154
Merge pull request #344 from bobmcwhirter/remove_builders
...
Remove builders from Config(s) and examples.
2021-08-04 21:32:39 +02:00
Dario Nieuwenhuis
07d4b196f7
Update nightly, remove removed features.
2021-08-04 19:48:14 +02:00
Dario Nieuwenhuis
9bd34429f3
stm32: add missing + 'a
bounds on trait GATs
2021-08-04 19:39:54 +02:00
Bob McWhirter
f4971fbb79
Further work sharing config for example and removing duplicated code.
2021-08-04 13:39:02 -04:00
Bob McWhirter
03f15d3a60
Remove builders from Config(s) and examples.
2021-08-04 11:32:39 -04:00
Dario Nieuwenhuis
de77dc11ca
Merge pull request #301 from thalesfragoso/i2cv2-dma
...
i2c-v2: Implement write_dma and write_dma_vectored
2021-08-04 12:28:18 +02:00
Dario Nieuwenhuis
5d31dd328f
Merge pull request #341 from lulf/usart-dma-read
...
Add uart::Read DMA-based implementation
2021-08-04 11:02:15 +02:00
Ulf Lilleengen
0d02342b2d
Rename bread -> read_blocking
2021-08-04 08:34:30 +02:00
Bob McWhirter
88c11a653c
Formatting fixes.
2021-08-03 14:12:11 -04:00
Bob McWhirter
d7409d63e8
Enhance Rcc configuration to be more fluentish.
...
Clean up H7 examples to remove all vegan HALs and PACs.
2021-08-03 13:57:18 -04:00
Ulf Lilleengen
6ff0614cb6
Add uart::Read DMA-based implementation
...
* Rename existing read() to bread() (blocking)
2021-08-03 15:31:24 +02:00
Dario Nieuwenhuis
3f28bb6c77
common: Initialize PeripheralMutex state with closure to ensure it's done in-place.
2021-08-02 20:13:41 +02:00
Dario Nieuwenhuis
e238079d7d
Make const the states when able.
2021-08-02 19:59:02 +02:00
Dario Nieuwenhuis
63ac7ac799
Mark new
s as unsafe due to not being leak-safe.
2021-08-02 19:55:04 +02:00
Dario Nieuwenhuis
af87031d62
hal-common: remove Pin in PeripheralMutex
2021-08-02 19:55:04 +02:00
Bob McWhirter
63b32b39e1
Use an em bikeshed instead of an underscore bikeshed.
2021-08-02 13:29:06 -04:00
Bob McWhirter
5f9447abb4
Put the implicit memory.x behind a memory_x
feature on embassy-stm32.
2021-08-02 13:21:30 -04:00
Bob McWhirter
3a00a1dba7
Undo the pwr-guarding cfg.
2021-08-02 11:34:41 -04:00
Bob McWhirter
f6c5f039c8
Emit a default memory.x alongside device.x from metapac.
2021-08-02 11:23:55 -04:00
Thales Fragoso
64a3ebd183
i2c-v2: Use new interrupts macro
2021-08-01 19:10:42 -03:00
Thales Fragoso
c1bb83d29d
i2c-v2: Deref interrupt enabling in write_dma_internal
2021-08-01 19:10:42 -03:00
Thales Fragoso
6ddc83029a
i2c-v2: Simplify write_dma
2021-08-01 19:10:42 -03:00
Thales Fragoso
362f7efe99
i2c-v2: Implement write_dma and write_dma_vectored
2021-08-01 19:10:42 -03:00
Dario Nieuwenhuis
3835278567
Merge pull request #321 from thalesfragoso/f4-pll
...
F4 PLL
2021-07-31 11:08:46 +02:00
Thales Fragoso
21e3acaa00
stm32: Use build.rs to generate a more coarse feature
2021-07-31 02:52:26 -03:00
Thales Fragoso
0421c57bd6
F4: Add PWR configuration to PLL
2021-07-29 18:43:15 -03:00
Thales Fragoso
5cfb9adad8
f4-pll: Add max values per chip
2021-07-29 18:43:15 -03:00
Thales Fragoso
e7714983b3
f4-rcc: Add option to enable debug_wfe and add hello example
2021-07-29 18:43:15 -03:00
Thales Fragoso
5abaf8e9d6
Start working on the F4 PLL
2021-07-29 18:43:13 -03:00
Timo Kröger
9342497132
stm32wl55: Use Dbgmcu::enable_all
2021-07-29 17:38:40 +02:00
Timo Kröger
cad43587e6
stm32l0: Use embassy::main
for examples
2021-07-29 17:37:32 +02:00
Timo Kröger
2a4890165d
stm32f0: Enable debug access in low power modes
2021-07-29 15:35:23 +02:00
Dario Nieuwenhuis
7bfb763e09
Rename embassy-extras to embassy-hal-common
2021-07-29 13:44:51 +02:00
Dario Nieuwenhuis
c8a48d726a
Merge pull request #277 from Liamolucko/fix-peripheral-ub
...
extras: Fix UB in `Peripheral`
2021-07-29 13:08:30 +02:00
Liam Murphy
d5ba35424d
Replace PeripheralStateUnchecked
with register_interrupt_unchecked
2021-07-29 15:11:26 +10:00
Bob McWhirter
8759213fcc
Use new interrupt! table format to /enable/ the IRQs also.
2021-07-27 13:23:33 -04:00
Bob McWhirter
b910551c9a
Generate more rows in the interrupts! table.
...
Adjust DMA/BDMA to use the new style.
2021-07-27 12:52:01 -04:00
Liam Murphy
079526559f
Remove critical sections from PeripheralMutex
interrupt handler by checking the interrupt's priority on startup.
...
Since `PeripheralMutex` is the only way to safely maintain state across interrupts, and it no longer allows setting the interrupt's priority, the priority changing isn't a concern.
This also prevents other causes of UB due to the interrupt being exposed during `with`, and allowing enabling the interrupt and setting its context to a bogus pointer.
2021-07-27 17:28:52 +10:00
Timo Kröger
06fb2a7a80
Enable SYSCFG clock in exti::init()
2021-07-24 11:13:49 +02:00
Dario Nieuwenhuis
3c7375c6cd
stm32/bdma: do not clear IF on IRQ handler
2021-07-24 10:01:11 +02:00
Timo Kröger
43c4f24207
STM32 BDMA: Use interrupt flags instead of atomics
2021-07-24 09:26:07 +02:00
Timo Kröger
5a4a5ce334
STM32 DMA: Use interrupt flags instead of atomics
2021-07-24 09:26:07 +02:00
Bob McWhirter
83f63890e5
Actually take a &mut of that read slice.
2021-07-23 13:22:39 -04:00
Bob McWhirter
473a83a937
Adjust how we deal with read/write being different length.
...
Including some docs about it.
Removing the Rx-enablement for write-only operations.
2021-07-23 13:22:39 -04:00
Bob McWhirter
f1a3e0e05d
As before, EVERY DANG TIME.
...
It'll be sweet with intellij-rust-plugin works better.
2021-07-23 13:22:39 -04:00
Bob McWhirter
b07325b476
Enable DMA for SPIv1 on F4's etc.
2021-07-23 13:22:39 -04:00
Bob McWhirter
8ab82191b7
Every dang time.
2021-07-23 13:22:39 -04:00
Bob McWhirter
a1dac21bdf
Make SPIv3 work with DMA.
...
Add both DMA and non-DMA example to H7.
2021-07-23 13:22:39 -04:00
Bob McWhirter
6dbe049468
Add back in the other versions of SPI.
2021-07-23 13:22:39 -04:00
Bob McWhirter
0d2051243e
SPIv2 + DMA.
2021-07-23 13:22:39 -04:00
Bob McWhirter
1a03f00b56
Wire up peripheral DMA channels for SPI.
2021-07-23 13:22:39 -04:00
Bob McWhirter
3df2aadc39
Avoid borrowck issue.
2021-07-23 13:22:39 -04:00
Bob McWhirter
dedc2bac42
IntelliJ'd.
2021-07-23 13:22:39 -04:00
Bob McWhirter
4c5a234a3a
Add a non-minc write() to DMA which takes a count.
...
Use it from "read-only" SPI.
2021-07-23 13:22:39 -04:00
Bob McWhirter
7bbad4c4e5
More unused allowances.
2021-07-23 13:22:39 -04:00
Bob McWhirter
4bcc3b06c6
Include all versions when handing to CI.
2021-07-23 13:22:39 -04:00
Bob McWhirter
a75110296d
Annotate to avoid unused warnings for the moment.
2021-07-23 13:22:39 -04:00
Bob McWhirter
3f379e06b0
Begin reworking SPI to add DMA for stm32.
2021-07-23 13:22:39 -04:00
Bob McWhirter
fe66f0f8f8
Checkpoint.
2021-07-23 13:22:39 -04:00
Bob McWhirter
650f867b1c
Add a single-column variant to gpio_rcc! macro table
...
which includes just the set of registers that need to be
considered.
Then match against those registers with a single `modify(...)`
2021-07-23 11:32:20 -04:00
Bob McWhirter
13873df30b
Auto-enable all GPIOs during init().
2021-07-23 11:32:19 -04:00
Bob McWhirter
d68f2617e6
Add a Dbgmcu
struct capable of enabling all relevant DBGMCU.cr fields.
...
Includes the addition of a `dbgmcu!(...)` macro table which currently takes
the form of
(cr, $fn_name:ident)
where `$fn_name` is something like `set_dbgsleep_d1` etc.
The method is unsafe, since it's performing unsafe PAC operations.
Two examples modified to demonstrate its usage.
2021-07-22 14:18:48 -04:00
Bob McWhirter
2d3137afc7
The async move
portion of @thalesfragoso's i2c PR.
2021-07-20 11:38:16 -04:00
Thales
40ea8298ee
Merge pull request #300 from thalesfragoso/clear-dma
...
stm32: Clear possible set flags after disabling DMA
2021-07-17 17:28:02 -03:00
Thales
f4b8709bac
Merge pull request #281 from thalesfragoso/i2c-256
...
i2c-v2: Support transfers with more than 255 bytes
2021-07-17 17:21:50 -03:00
Thales Fragoso
aae0431d31
stm32: Clear possible set flags after disabling DMA
2021-07-17 16:59:35 -03:00
Dario Nieuwenhuis
36be877ba3
stm32/dma: only set TRBUFF in DMAv1 (H7)
2021-07-17 08:01:20 +02:00
Dario Nieuwenhuis
3655048e0f
stm32/dma: add MuxChannel trait to distinguish DMAMUX1 and DMAMUX2 channels.
2021-07-17 07:54:16 +02:00
Dario Nieuwenhuis
54b5012c56
stm32/dma: update codegen+macrotables for new stm32-data
2021-07-17 07:35:59 +02:00
Bob McWhirter
0119ea809d
Get DMA on H7 working, add usart_dma example for H7.
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
ae948415a7
stm32/dma: disable after finishing
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
d0f2dc3abd
Fix rustfmt
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
63a0e188ea
stm32/dma: fix h7 impls
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
3d1391ef2d
stm32/dma: impl all variants
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
1b42b30201
stm32/pwr: add initial H7 SMPS support
2021-07-16 01:17:45 +02:00
Thales Fragoso
2f08c7ced5
stm32: Allow for RccPeripheral without reset field
...
This fix build on F0, since it doesn't have DMARST. This change makes
RccPeripheral::reset a no-op on peripherals where a reset field couldn't
be found
2021-07-15 13:25:51 -03:00
Thales Fragoso
e06628cdfb
Update stm32-data
2021-07-14 23:39:50 -03:00
Thales Fragoso
aa8c7f990f
i2c-v2: Implement write_vectored
2021-07-14 23:39:50 -03:00
Thales Fragoso
f2e78e9c34
i2c-v2: Correct number of chunks calculation
2021-07-14 23:39:50 -03:00
Thales Fragoso
8c7f8a61e3
i2c-v2: Support transfers with more than 255 bytes
2021-07-14 23:39:50 -03:00
Dario Nieuwenhuis
4361cb15f1
stm32/usart: merge v2 and v3 (they're identical)
2021-07-15 00:52:37 +02:00
Dario Nieuwenhuis
f916fe5476
all hals: reexport PAC if unstable-pac
feature is set.
2021-07-14 22:19:04 +02:00
Bob McWhirter
43cb8de434
Remove gratuitous NoDmaMarker.
2021-07-14 14:37:42 -04:00
Bob McWhirter
38b1359c40
Remove pub and cfg's, since they will be implied by the existance of TxDma<T> in theory.
2021-07-14 14:35:03 -04:00
Bob McWhirter
a88f0028ef
First shot at async dma usart for stm32.
2021-07-14 14:14:14 -04:00
Bob McWhirter
6e0e83cfd9
More conversions to associated consts.
2021-07-13 10:56:35 -04:00
Bob McWhirter
604a25ec5d
Reduce number of traits and impls.
2021-07-13 10:46:31 -04:00
Bob McWhirter
8fbea38a5b
Simplify some of the bdma macros.
...
Make more things associated consts.
2021-07-13 10:09:35 -04:00
Bob McWhirter
92247369e7
Remove some unused traits.
...
Move some fns to associated consts.
2021-07-13 10:09:35 -04:00
Bob McWhirter
2e10ab2e5c
Let's count channels per DMA peripheral, shall we now?
2021-07-13 10:09:35 -04:00
Bob McWhirter
b0b61d99e6
Macros do indeed require a ! to invoke.
2021-07-13 10:09:35 -04:00
Bob McWhirter
6534b63e01
Simplify some macros around dmamux peripheral channels.
2021-07-13 10:09:35 -04:00
Bob McWhirter
0befa10367
Trivial to force CI to do it's thing.
2021-07-13 10:09:35 -04:00
Bob McWhirter
06e899b14c
Adjust to DMA1EN in the rcc for l0.
2021-07-13 10:09:35 -04:00
Bob McWhirter
a9b2ed52ee
Remove deadcode from dmamux.
...
Smoosh bdma down to a single version.
2021-07-13 10:09:35 -04:00
Bob McWhirter
45964c658c
Generalize RCC enabling for BDMA peris.
2021-07-13 10:09:35 -04:00
Bob McWhirter
ff1cb9ac74
Remove warnings.
2021-07-13 10:09:35 -04:00
Bob McWhirter
97ad434d38
Twizzle our DMA vs BDMA channels.
2021-07-13 10:09:35 -04:00
Bob McWhirter
a24a7e9fec
Allow some unused lints given that H7 is still in flight with its multitude of DMA.
2021-07-13 10:09:35 -04:00
Bob McWhirter
13975a0818
Try to improve H7 clockstuff.
2021-07-13 10:09:35 -04:00
Bob McWhirter
696a3b8552
Try to figure out h7cm's problem.
2021-07-13 10:09:35 -04:00
Bob McWhirter
6552af8f0b
Fix warning for unused import.
2021-07-13 10:09:35 -04:00
Bob McWhirter
6e69992217
Add a no-op bdma for bdma v2 for CI.
2021-07-13 10:09:35 -04:00
Bob McWhirter
811ed18922
Add a missing 'use' for dma_v2.
2021-07-13 10:09:35 -04:00
Bob McWhirter
30a1d9bf93
Move to copying regs instead of &'static referencing.
...
Remove unneeded stuff from the DMAMUX end of the stick.
2021-07-13 10:09:35 -04:00
Bob McWhirter
f01ddd5f5c
Mix dmamux into bdma_v1.
2021-07-13 10:09:35 -04:00
Bob McWhirter
6ec7253095
Checkpoint my DMA for thales.
2021-07-13 10:08:43 -04:00
Bob McWhirter
acdf7f4f13
Another checkpoint.
2021-07-13 10:08:43 -04:00
Bob McWhirter
31325a2547
Another checkpoint.
2021-07-13 10:08:43 -04:00
Bob McWhirter
043f0ea508
Checkpoint DMAMUX channel setup.
2021-07-13 10:08:43 -04:00
Thales Fragoso
91521a86a0
F0: usart + DMA working
2021-07-13 10:08:43 -04:00
Thales Fragoso
a56ddfdc04
STM: Add usart v2
2021-07-13 10:08:43 -04:00
Thales Fragoso
f32caaeaaf
STM: Start working on bdma-v1
2021-07-13 10:08:43 -04:00
Dario Nieuwenhuis
35a76c364a
embassy/time: make optional via Cargo feature
2021-07-12 03:45:48 +02:00
Liam Murphy
ff9ff5e43a
Update the import
2021-07-05 18:31:54 +10:00
Liam Murphy
fc1ef4947d
Fix stm32 ethernet
2021-07-05 18:18:05 +10:00
Dario Nieuwenhuis
ecc151d4e2
stm32/adc: simplify delay handling
2021-07-05 03:18:23 +02:00
Rukai
25d4b2ea26
fix stm32 warnings
2021-07-05 01:54:29 +02:00
Thales Fragoso
c2f595b26a
F0: Fix missing apb2 clock
2021-07-03 02:12:22 -03:00
Bob McWhirter
f5ce807e25
Let's adjust i2c the correct way, removing the correct APBesque frequency, not the i2c periph speed.
2021-07-02 13:54:07 -04:00
Bob McWhirter
9f5d35d891
Remove the frequency argument for i2c, move to using RccPeripheral.
2021-07-01 13:53:57 -04:00
Bob McWhirter
8f94123ca4
argh, intellij.
2021-07-01 11:37:01 -04:00
Bob McWhirter
0920c0cb1d
Make UART pins Rx/Tx/etc in addition to USART.
2021-07-01 11:30:54 -04:00
Bob McWhirter
54ada5bae1
Stub in the DMA bits that aren't yet there.
2021-07-01 11:30:54 -04:00
Bob McWhirter
bf3bc92525
Re-enable because intellij.
2021-07-01 11:30:54 -04:00
Bob McWhirter
497d3aa153
Add USARTv3 support.
2021-07-01 11:30:54 -04:00
Thales Fragoso
e07dda8707
stm32: Adjust some fences around DMA
...
Also bump stm32-data
2021-06-30 18:58:21 -03:00
Bob McWhirter
f3b9c97763
Change atomics and add a fence.
2021-06-30 10:17:25 -04:00
Bob McWhirter
cf5b7dc943
Because IntelliJ makes life hard.
2021-06-30 10:03:18 -04:00
Bob McWhirter
6a0b0f3162
Enable RCC within the USART itself.
2021-06-30 09:57:27 -04:00
Bob McWhirter
e1736114d4
Remove paste.
2021-06-30 09:44:28 -04:00
Bob McWhirter
07a6686879
Protect DMA-related things with cfg.
2021-06-29 13:00:52 -04:00
Bob McWhirter
6b78d56ceb
Formatting.
2021-06-29 12:48:58 -04:00
Bob McWhirter
c53ab325c1
Wire up DMA with USART v1.
2021-06-29 11:01:57 -04:00
Bob McWhirter
b88fc2847a
Checkpoint with lifetime issues.
2021-06-29 11:01:57 -04:00
Thales Fragoso
c5022b1196
stm32: Make sure Output gpio driver is pushpull
2021-06-27 13:25:35 -03:00
Thales Fragoso
0eaadfc125
stm32: Update gpio examples
2021-06-25 18:16:43 -03:00
Thales Fragoso
a3f0aa02a4
Separate OpenDrain pin to a new type
2021-06-25 17:22:51 -03:00
Thales Fragoso
efb3b3a0a8
stm32: Allow for open drain configuration for output pin
2021-06-24 20:42:43 -03:00
Thales Fragoso
013792b944
Separate exti into v1 and v2
2021-06-24 20:28:06 -03:00
Thales Fragoso
1c33a3b94c
#[cfg] exti
2021-06-24 19:41:04 -03:00
Thales Fragoso
210104e6dc
Remove unused gpio_af from codegen
2021-06-24 19:23:51 -03:00
Thales Fragoso
409884be2a
Add F0 RCC
2021-06-24 19:21:56 -03:00
Thales Fragoso
797534d1a6
Update features to include F0
2021-06-22 14:41:42 -03:00
Dario Nieuwenhuis
5a4e3ceb88
Update stm32-data (adds DBGMCU to all chips)
2021-06-21 01:38:59 +02:00
Thales Fragoso
098ce6e740
stm32h7: Add ethernet example
2021-06-16 16:48:35 +02:00
Thales Fragoso
77546825a1
stm32: Make vcell dependency optional
2021-06-16 16:48:35 +02:00
Thales Fragoso
598201bff3
eth-v2: Make embassy-net optional
2021-06-16 16:48:35 +02:00
Thales Fragoso
6cecc6d4b5
eth-v2: Get hclk frequency from clock singleton
2021-06-16 16:48:35 +02:00
Thales Fragoso
f7e1f262af
eth-v2: Enable source address filtering
2021-06-16 16:48:35 +02:00
Thales Fragoso
ffc19a54d6
eth-v2: Fix bug in Rx descriptors and add docs art
2021-06-16 16:48:35 +02:00
Thales Fragoso
6daa55a897
eth-v2: Fix setting the registers for the descriptors
...
Also, the interrupts are set to 1 to clear, the manual could have helped
with that one...
2021-06-16 16:48:35 +02:00
Thales Fragoso
0b42e12604
eth-v2: Fix off by one bug
2021-06-16 16:48:35 +02:00
Thales Fragoso
54ad2a41f1
eth-v2: Work around missing AF for REF_CLK
2021-06-16 16:48:35 +02:00
Thales Fragoso
0c837f07c0
eth-v2: Enable clocks in new
2021-06-16 16:48:35 +02:00
Thales Fragoso
e039c7c42c
eth-v2: Remove Instance trait
2021-06-16 16:48:35 +02:00
Thales Fragoso
05a239faf6
eth-v2: Implement embassy-net's Device Trait and fix Drop
2021-06-16 16:48:35 +02:00
Thales Fragoso
4cffa200bd
eth: Add lan8742a PHY
2021-06-16 16:48:35 +02:00
Thales Fragoso
46e1bae9e3
eth-v2: Start Ethernet peripheral implementation
2021-06-16 16:48:35 +02:00
Ulf Lilleengen
56c5218292
Prescaler 1 means divide by 3 on WL55
2021-06-16 16:21:16 +02:00
Ulf Lilleengen
383beb37b3
Rename from wl55 to wl5x and enable debug wfe
2021-06-16 16:07:21 +02:00
Ulf Lilleengen
b6a8703698
Add support for generating PAC for dual cores
...
* Chips that have multiple cores will be exposed as chipname_corename,
i.e. stm32wl55jc_cm4
* Chips that have single cores will use the chip family as feature name
and pick the first and only core from the list
* Add support for stm32wl55 chip family
2021-06-16 15:12:07 +02:00
Ulf Lilleengen
8ae4f47d3d
Fix compile
2021-06-15 16:44:00 +02:00
Ulf Lilleengen
49fad2de8a
Use correct frequencies for timers
2021-06-15 16:07:23 +02:00
Ulf Lilleengen
4b406dd107
Remove default rcc impl
2021-06-14 20:24:51 +02:00
Bob McWhirter
d58fb11b2e
ADCv3 and example.
2021-06-14 13:20:42 -04:00
Ulf Lilleengen
531093f281
Derive SPI v1 and v3 clocks automatically
2021-06-14 11:58:16 +02:00
Ulf Lilleengen
5e1b0a5398
Add wb55 clocks
2021-06-14 11:41:02 +02:00
Ulf Lilleengen
ee9f67fa01
Add common types
2021-06-14 11:33:11 +02:00
Ulf Lilleengen
a2da2a6db2
Remove unused l0 code
2021-06-14 11:33:11 +02:00
Ulf Lilleengen
95532726b2
Add minimal RCC impls for L4 and F4
2021-06-14 11:33:11 +02:00
Ulf Lilleengen
a13e07625f
Add ... c1?
2021-06-14 11:33:11 +02:00
Ulf Lilleengen
0b52731897
Add clocks for h7
2021-06-14 11:33:11 +02:00
Ulf Lilleengen
2c63393c9e
Add Clock type per RCC family
2021-06-14 11:33:11 +02:00
Ulf Lilleengen
952f525af5
Provide a way for a peripheral to query its clock frequency
...
Currently this looks up the frequency in the global singleton that must
be initialized by the per-chip RCC implementation. At present, this is
only done for the L0 family of chips.
2021-06-14 11:33:11 +02:00
Dominik Boehi
9edb6e41ce
Make gen.py work without CSafeLoader
2021-06-12 18:28:21 +02:00
Dominik Boehi
0eab96f573
Initial support and example for STM32WB55
2021-06-12 07:06:36 +02:00
Ulf Lilleengen
0a9022d59f
Enable timer clock in RCC on timer start
...
* Moves the tim2-specific code into macro which always uses TIM2
* For peripherals without clock specified, attempt to locate enable and
reset registers in the RCC block matching the peripheral name. This
could be useful for peripherals where deducing the clock name might
not be feasible, but it remains to be tested with more chip families
to see if it is sufficiently accurate.
2021-06-10 09:37:30 +02:00
Ulf Lilleengen
1bb7123156
Add examples for STM32L0
2021-06-09 23:09:48 +02:00
Ulf Lilleengen
f3d1ac6623
Enable clock for RNG
2021-06-09 13:54:53 +02:00
Ulf Lilleengen
939ea3bbd0
Reduce generics noise
2021-06-08 17:20:29 +02:00
Ulf Lilleengen
ed29d82071
Use critical_section
2021-06-08 17:20:29 +02:00
Ulf Lilleengen
212bda0940
Enable clock for SPI v1 and v3
2021-06-08 17:20:29 +02:00
Ulf Lilleengen
a57482fddd
Cargo fmt
2021-06-08 17:20:29 +02:00
Ulf Lilleengen
ee3b82b743
Auto generate SPI v2 clock enable
...
Adds RccPeripheral trait for peripherals implementing clock enable and reset for a given peripheral.
Add macro table generting implementations of RccPeripheral for peripherals with clock set, currently restricted to SPI.
2021-06-08 17:20:29 +02:00
Ulf Lilleengen
a63388874a
Update after name fix
2021-06-07 14:06:54 +02:00
Ulf Lilleengen
f24c38f2a4
Fix
2021-06-07 13:51:06 +02:00
Ulf Lilleengen
1cd2c55b7c
Fix stm32l0 build
2021-06-07 12:19:09 +02:00
Ulf Lilleengen
f5e2fb9a5a
Update to new api
2021-06-07 12:03:31 +02:00
Dario Nieuwenhuis
0ffa78aca1
Use macrotables from build.rs
2021-06-07 05:12:10 +02:00
Dario Nieuwenhuis
3be49d3e79
fmt: Add dunmy use to avoid "unused variable" errors when no log is enabled.
2021-06-07 03:21:37 +02:00
Dario Nieuwenhuis
ef1ebefec0
fmt: use absolute paths
2021-06-07 03:15:05 +02:00
Dario Nieuwenhuis
e7dc5c0939
fmt: make all macros macro_rules
so scoping is consistent.
2021-06-07 00:16:39 +02:00
Rukai
010b2b9497
Fix stm32 warnings
2021-06-06 00:46:20 +10:00
Bob McWhirter
b4dca64e20
Move most of DMA out of gen.py.
2021-06-03 14:53:48 -04:00
Bob McWhirter
240616aa72
General clean-up and removal of dead code.
2021-06-03 14:25:17 -04:00
Bob McWhirter
d75bf143eb
Remove the exti_interrupts table.
2021-06-03 14:18:58 -04:00
Bob McWhirter
2c722ec0ee
Migrate sdmmc to macro tables.
2021-06-03 13:50:48 -04:00
Bob McWhirter
fe47f781be
Migrate exti_irq stuff to macro tables.
2021-06-03 13:35:27 -04:00
Bob McWhirter
75dc0fd542
Migrate TIM[2-5] to macro tables.
2021-06-03 13:23:21 -04:00
Bob McWhirter
c00a85f9a9
Refactor SPI signal pin macro.
2021-06-03 13:12:38 -04:00
Bob McWhirter
3dd497c1e6
Refactor some I2c signal pin macro.
2021-06-03 13:12:38 -04:00
Bob McWhirter
00892c7362
Migrate USART to macro tables.
2021-06-03 13:12:38 -04:00
Bob McWhirter
6958091b50
Move DAC, I2C, SPI and RNG to macro-tables.
2021-06-03 13:12:38 -04:00
Dario Nieuwenhuis
c7c6b0b464
Merge pull request #211 from bobmcwhirter/dac_v2
...
DAC v2 basics.
2021-06-02 16:16:27 +02:00
Ulf Lilleengen
c3a521066d
Add utility to enable debug
2021-06-02 15:23:10 +02:00
Ulf Lilleengen
4863d5e01e
Add a way to enable more features of the STM32L0 RCC
...
Add ability to enable the hsi48 clock. Code modified from the STM32L0XX
hal
2021-06-02 14:28:33 +02:00
Bob McWhirter
0c54c1afd1
DAC v2 basics.
2021-06-01 12:08:30 -04:00
Ulf Lilleengen
1a9a619033
Implement togglable output pin for Output
2021-05-31 09:33:33 +02:00
Dario Nieuwenhuis
553432a8e8
stm32: remove unused stuff from gen.py
2021-05-31 03:58:03 +02:00
Dario Nieuwenhuis
b2d8d23f4c
more fix
2021-05-31 03:25:10 +02:00
Dario Nieuwenhuis
d24b67512f
More fixes
2021-05-31 03:21:44 +02:00
Dario Nieuwenhuis
c4f8f1655e
Delete unused submodule
2021-05-31 02:59:06 +02:00
Dario Nieuwenhuis
60f12c78dd
Add resolver=2
2021-05-31 02:43:59 +02:00
Dario Nieuwenhuis
d8e4421fc6
Add stm32-metapac crate, with codegen in rust
2021-05-31 02:40:58 +02:00