Skip to content

Commit f95f10e

Browse files
authored
Merge pull request #167 from stm32-rs/staged-pac
Staged pac
2 parents e74e2eb + 1990e99 commit f95f10e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+4550
-2267
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
on:
22
pull_request:
3-
3+
44
name: Continuous integration
55

66
# Make sure CI fails on all warnings, including Clippy lints
@@ -22,13 +22,14 @@ jobs:
2222
- stm32g474
2323
- stm32g483
2424
- stm32g484
25-
#- stm32g491 # Does not seem ready yet
26-
#- stm32g4a1 # Does not seem ready yet
25+
- stm32g491 # Does not seem ready yet
26+
- stm32g4a1 # Does not seem ready yet
2727
features:
2828
- log-rtt,defmt
2929
# TODO: -log-rtt # log-rtt without defmt, more combos?
3030
- log-itm
3131
- log-semihost
32+
- cordic,log-rtt,defmt
3233

3334
steps:
3435
- uses: actions/checkout@v2

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
"rust-analyzer.cargo.target": "thumbv7em-none-eabihf",
77
"rust-analyzer.cargo.features": [
88
"stm32g473",
9-
"defmt-logging",
9+
"defmt",
1010
]
1111
}

.zed/settings.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"lsp": {
3+
"rust-analyzer": {
4+
"initialization_options": {
5+
"cargo": {
6+
"features": ["defmt", "stm32g473"]
7+
},
8+
"check": {
9+
"allTargets": false,
10+
"targets": "thumbv7em-none-eabihf"
11+
}
12+
}
13+
}
14+
}
15+
}

Cargo.toml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ version = "0.0.2"
1313

1414
[dependencies]
1515
nb = "1"
16-
stm32g4 = "0.15.1"
16+
stm32g4 = { version = "0.22.0", package = "stm32g4-staging" }
1717
paste = "1.0"
1818
bitflags = "1.2"
1919
vcell = "0.1"
@@ -65,6 +65,7 @@ optional = true
6565
[dev-dependencies]
6666
cortex-m-rt = "0.7.2"
6767
defmt-rtt = "0.4.0"
68+
defmt-test = "0.3.2"
6869
cortex-m-rtic = "1.1.4"
6970
cortex-m-semihosting = "0.3.5"
7071
panic-probe = { version = "0.3.0", features = ["print-defmt"] }
@@ -98,7 +99,13 @@ stm32g4a1 = ["stm32g4/stm32g4a1"]
9899
log-itm = ["cortex-m-log/itm"]
99100
log-rtt = []
100101
log-semihost = ["cortex-m-log/semihosting"]
101-
defmt = ["dep:defmt", "fugit/defmt", "nb/defmt-0-3", "embedded-hal/defmt-03", "embedded-io/defmt-03"]
102+
defmt = [
103+
"dep:defmt",
104+
"fugit/defmt",
105+
"nb/defmt-0-3",
106+
"embedded-hal/defmt-03",
107+
"embedded-io/defmt-03",
108+
]
102109
cordic = ["dep:fixed"]
103110

104111
[profile.dev]
@@ -113,6 +120,13 @@ codegen-units = 1
113120
incremental = false
114121
lto = true
115122

123+
[profile.test]
124+
opt-level = "s"
125+
debug = true
126+
codegen-units = 1
127+
incremental = false
128+
lto = true
129+
116130
[[example]]
117131
name = "flash_with_rtic"
118132
required-features = ["stm32g474"]
@@ -124,3 +138,10 @@ required-features = ["usb"]
124138
[[example]]
125139
name = "cordic"
126140
required-features = ["cordic"]
141+
142+
[[test]]
143+
name = "tests"
144+
harness = false
145+
146+
[lib]
147+
test = false

examples/adc-continious-dma.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::hal::{
1111
AdcClaim, ClockSource, Temperature, Vref,
1212
},
1313
delay::SYSTDelayExt,
14-
dma::{config::DmaConfig, stream::DMAExt, TransferExt},
14+
dma::{channel::DMAExt, config::DmaConfig, TransferExt},
1515
gpio::GpioExt,
1616
pwr::PwrExt,
1717
rcc::{Config, RccExt},
@@ -36,7 +36,7 @@ fn main() -> ! {
3636
let pwr = dp.PWR.constrain().freeze();
3737
let mut rcc = rcc.freeze(Config::hsi(), pwr);
3838

39-
let streams = dp.DMA1.split(&rcc);
39+
let channels = dp.DMA1.split(&rcc);
4040
let config = DmaConfig::default()
4141
.transfer_complete_interrupt(false)
4242
.circular_buffer(true)
@@ -63,7 +63,7 @@ fn main() -> ! {
6363

6464
info!("Setup DMA");
6565
let first_buffer = cortex_m::singleton!(: [u16; 15] = [0; 15]).unwrap();
66-
let mut transfer = streams.0.into_circ_peripheral_to_memory_transfer(
66+
let mut transfer = channels.ch1.into_circ_peripheral_to_memory_transfer(
6767
adc.enable_dma(AdcDma::Continuous),
6868
&mut first_buffer[..],
6969
config,

examples/adc-one-shot-dma.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::hal::{
99
AdcClaim, ClockSource, Temperature,
1010
},
1111
delay::SYSTDelayExt,
12-
dma::{config::DmaConfig, stream::DMAExt, TransferExt},
12+
dma::{channel::DMAExt, config::DmaConfig, TransferExt},
1313
gpio::GpioExt,
1414
pwr::PwrExt,
1515
rcc::{Config, RccExt},
@@ -36,7 +36,7 @@ fn main() -> ! {
3636
let pwr = dp.PWR.constrain().freeze();
3737
let mut rcc = rcc.freeze(Config::hsi(), pwr);
3838

39-
let mut streams = dp.DMA1.split(&rcc);
39+
let mut channels = dp.DMA1.split(&rcc);
4040
let config = DmaConfig::default()
4141
.transfer_complete_interrupt(false)
4242
.circular_buffer(false)
@@ -61,7 +61,7 @@ fn main() -> ! {
6161

6262
info!("Setup DMA");
6363
let first_buffer = cortex_m::singleton!(: [u16; 2] = [0; 2]).unwrap();
64-
let mut transfer = streams.0.into_peripheral_to_memory_transfer(
64+
let mut transfer = channels.ch1.into_peripheral_to_memory_transfer(
6565
adc.enable_dma(AdcDma::Single),
6666
&mut first_buffer[..],
6767
config,
@@ -74,10 +74,10 @@ fn main() -> ! {
7474
info!("Conversion Done");
7575

7676
transfer.pause(|adc| adc.cancel_conversion());
77-
let (s0, adc, first_buffer) = transfer.free();
77+
let (ch1, adc, first_buffer) = transfer.free();
7878
let adc = adc.disable();
7979

80-
streams.0 = s0;
80+
channels.ch1 = ch1;
8181

8282
let millivolts = adc.sample_to_millivolts(first_buffer[0]);
8383
info!("pa3: {}mV", millivolts);

examples/cordic.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ extern crate cortex_m;
77
extern crate cortex_m_rt as rt;
88
extern crate stm32g4xx_hal as hal;
99

10-
use fixed::types::I1F15;
1110
use hal::cordic::{
12-
func::{dynamic::Mode as _, scale::N0, Magnitude, SinCos, Sqrt},
11+
op::{dynamic::Mode as _, Magnitude, SinCos, Sqrt},
1312
prec::P60,
14-
types::{Q15, Q31},
13+
scale::N0,
14+
types::{I1F15, Q15, Q31},
1515
Ext as _,
1616
};
1717
use hal::prelude::*;
@@ -34,7 +34,7 @@ fn main() -> ! {
3434
let mut cordic = dp
3535
.CORDIC
3636
.constrain(&mut rcc)
37-
.freeze::<Q15, Q31, SinCos, P60>(); // 16 bit arguments, 32 bit results, compute sine and cosine, 60 iterations
37+
.freeze::<Q15, Q31, P60, SinCos>(); // 16 bit arguments, 32 bit results, compute sine and cosine, 60 iterations
3838

3939
// static operation (zero overhead)
4040

@@ -53,5 +53,6 @@ fn main() -> ! {
5353
let magnitude = cordic.run::<Magnitude>((I1F15::from_num(0.25), I1F15::from_num(0.5)));
5454
println!("magnitude: {}", magnitude.to_num::<f32>());
5555

56+
#[allow(clippy::empty_loop)]
5657
loop {}
5758
}

examples/flash_with_rtic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ mod app {
7373

7474
unsafe {
7575
let mut flash = &(*stm32g4xx_hal::stm32::FLASH::ptr());
76-
flash.acr.modify(|_, w| {
76+
flash.acr().modify(|_, w| {
7777
w.latency().bits(0b1000) // 8 wait states
7878
});
7979
}

examples/spi-dma.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ use crate::hal::{
2222

2323
use cortex_m_rt::entry;
2424
use stm32g4xx_hal as hal;
25+
use stm32g4xx_hal::dma::channel::DMAExt;
2526
use stm32g4xx_hal::dma::config::DmaConfig;
26-
use stm32g4xx_hal::dma::stream::DMAExt;
2727
use stm32g4xx_hal::dma::TransferExt;
2828

2929
#[macro_use]
@@ -51,7 +51,7 @@ fn main() -> ! {
5151
let spi = dp
5252
.SPI1
5353
.spi((sclk, miso, mosi), spi::MODE_0, 400.kHz(), &mut rcc);
54-
let streams = dp.DMA1.split(&rcc);
54+
let channels = dp.DMA1.split(&rcc);
5555
let config = DmaConfig::default()
5656
.transfer_complete_interrupt(false)
5757
.circular_buffer(true)
@@ -63,10 +63,11 @@ fn main() -> ! {
6363
*item = index as u8;
6464
}
6565
let dma_buf = cortex_m::singleton!(: [u8; BUFFER_SIZE] = buf).unwrap();
66-
let mut transfer_dma =
67-
streams
68-
.0
69-
.into_memory_to_peripheral_transfer(spi.enable_tx_dma(), &mut dma_buf[..], config);
66+
let mut transfer_dma = channels.ch1.into_memory_to_peripheral_transfer(
67+
spi.enable_tx_dma(),
68+
&mut dma_buf[..],
69+
config,
70+
);
7071
transfer_dma.start(|_spi| {});
7172
loop {
7273
delay_tim2.delay_ms(1000);

examples/uart-dma-rx.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
extern crate cortex_m_rt as rt;
77

8-
use hal::dma::{config::DmaConfig, stream::DMAExt, TransferExt};
8+
use hal::dma::{channel::DMAExt, config::DmaConfig, TransferExt};
99
use hal::prelude::*;
1010
use hal::pwr::PwrExt;
1111
use hal::serial::*;
@@ -30,7 +30,7 @@ fn main() -> ! {
3030
let pwr = dp.PWR.constrain().freeze();
3131
let mut rcc = rcc.freeze(rcc::Config::hsi(), pwr);
3232

33-
let streams = dp.DMA1.split(&rcc);
33+
let channels = dp.DMA1.split(&rcc);
3434
let config = DmaConfig::default()
3535
.transfer_complete_interrupt(false)
3636
.circular_buffer(true)
@@ -65,7 +65,7 @@ fn main() -> ! {
6565

6666
let (_tx, rx) = usart.split();
6767

68-
let mut transfer = streams.0.into_circ_peripheral_to_memory_transfer(
68+
let mut transfer = channels.ch1.into_circ_peripheral_to_memory_transfer(
6969
rx.enable_dma(),
7070
&mut rx_buffer[..],
7171
config,

0 commit comments

Comments
 (0)