@@ -49,6 +49,7 @@ systick-monotonic = { version = "1.0", optional = true }
4949enumflags2 = " 0.7.8"
5050embedded-storage = " 0.3"
5151vcell = " 0.1.3"
52+ document-features = " 0.2"
5253
5354[dependencies .time ]
5455version = " 0.3.14"
@@ -94,27 +95,30 @@ default-features = false
9495features = [" macros" ]
9596
9697[features ]
97- device-selected = []
98- rt = [] # deprecated
98+ # ! Use one of the supported STM32-serie related features:
99+ # ! `stm32f401`, `stm32f405`, `stm32f407`, `stm32f415`, `stm32f417`, `stm32f410`,
100+ # ! `stm32f411`, `stm32f412`, `stm32f413`, `stm32f423`, `stm32f427`, `stm32f429`,
101+ # ! `stm32f437`, `stm32f439`, `stm32f446`, `stm32f469`, `stm32f479`.
102+
99103# Note: stm32f4 has only one feature for some very similar device families,
100104# so it's intended for e.g. stm32f405/415 to both enable stm32f4/stm32f405.
101- stm32f401 = [" stm32f4/stm32f401" , " device-selected " , " gpio-f401" ,]
102- stm32f405 = [" stm32f4/stm32f405" , " device-selected " , " gpio-f417" ]
103- stm32f407 = [" stm32f4/stm32f407" , " device-selected " , " gpio-f417" ]
104- stm32f415 = [" stm32f4/stm32f405" , " device-selected " , " gpio-f417" , " cryp" ]
105- stm32f417 = [" stm32f4/stm32f407" , " device-selected " , " gpio-f417" , " cryp" ]
106- stm32f410 = [" stm32f4/stm32f410" , " device-selected " , " gpio-f410" ]
107- stm32f411 = [" stm32f4/stm32f411" , " device-selected " , " gpio-f411" ]
108- stm32f412 = [" stm32f4/stm32f412" , " device-selected " , " gpio-f412" ]
109- stm32f413 = [" stm32f4/stm32f413" , " device-selected " , " gpio-f413" ]
110- stm32f423 = [" stm32f4/stm32f413" , " device-selected " , " gpio-f413" , " aes" ]
111- stm32f427 = [" stm32f4/stm32f427" , " device-selected " , " gpio-f427" , " fsmc" ]
112- stm32f429 = [" stm32f4/stm32f429" , " device-selected " , " gpio-f427" , " fmc" ]
113- stm32f437 = [" stm32f4/stm32f427" , " device-selected " , " gpio-f427" , " fsmc" , " cryp" ]
114- stm32f439 = [" stm32f4/stm32f429" , " device-selected " , " gpio-f427" , " fmc" , " cryp" ]
115- stm32f446 = [" stm32f4/stm32f446" , " device-selected " , " gpio-f446" ]
116- stm32f469 = [" stm32f4/stm32f469" , " device-selected " , " gpio-f469" ]
117- stm32f479 = [" stm32f4/stm32f469" , " device-selected " , " gpio-f469" , " cryp" ]
105+ stm32f401 = [" stm32f4/stm32f401" , " gpio-f401" ,]
106+ stm32f405 = [" stm32f4/stm32f405" , " gpio-f417" ]
107+ stm32f407 = [" stm32f4/stm32f407" , " gpio-f417" ]
108+ stm32f415 = [" stm32f4/stm32f405" , " gpio-f417" , " cryp" ]
109+ stm32f417 = [" stm32f4/stm32f407" , " gpio-f417" , " cryp" ]
110+ stm32f410 = [" stm32f4/stm32f410" , " gpio-f410" ]
111+ stm32f411 = [" stm32f4/stm32f411" , " gpio-f411" ]
112+ stm32f412 = [" stm32f4/stm32f412" , " gpio-f412" ]
113+ stm32f413 = [" stm32f4/stm32f413" , " gpio-f413" ]
114+ stm32f423 = [" stm32f4/stm32f413" , " gpio-f413" , " aes" ]
115+ stm32f427 = [" stm32f4/stm32f427" , " gpio-f427" , " fsmc" ]
116+ stm32f429 = [" stm32f4/stm32f429" , " gpio-f427" , " fmc" ]
117+ stm32f437 = [" stm32f4/stm32f427" , " gpio-f427" , " fsmc" , " cryp" ]
118+ stm32f439 = [" stm32f4/stm32f429" , " gpio-f427" , " fmc" , " cryp" ]
119+ stm32f446 = [" stm32f4/stm32f446" , " gpio-f446" ]
120+ stm32f469 = [" stm32f4/stm32f469" , " gpio-f469" ]
121+ stm32f479 = [" stm32f4/stm32f469" , " gpio-f469" , " cryp" ]
118122
119123gpio-f401 = [
120124 " gpiod" , " gpioe" ,
@@ -250,16 +254,29 @@ gpio-f469 = [
250254 " usart3" , " uart4" , " uart5" , " uart7" , " uart8" ,
251255]
252256
253- usb_fs = [" synopsys-usb-otg" , " synopsys-usb-otg/fs" ]
254- usb_hs = [" synopsys-usb-otg" , " synopsys-usb-otg/hs" ]
257+ # # Support monotonic timers that can be used by [RTIC framework](https://crates.io/crates/cortex-m-rtic)
258+ rtic = [" dep:rtic-monotonic" , " dep:systick-monotonic" ]
259+
260+ # # Implementation of `defmt::Format` for public enums and structures. See [defmt](https://crates.io/crates/defmt)
261+ defmt = [" dep:defmt" , " fugit/defmt" , " nb/defmt-0-3" ]
255262
256- can = [" bxcan" ]
263+ # # bxCAN peripheral support. See [bxcan](https://crates.io/crates/bxcan)
264+ can = [" dep:bxcan" ]
257265
258- i2s = [" stm32_i2s_v12x" ]
266+ # # I2S peripheral support. See [stm32_i2s_v12x](https://crates.io/crates/stm32_i2s_v12x)
267+ i2s = [" dep:stm32_i2s_v12x" ]
259268
260- fsmc_lcd = [" display-interface" ]
269+ # # USB OTG-FS peripheral support. See [synopsys-usb-otg](https://crates.io/crates/synopsys-usb-otg)
270+ usb_fs = [" dep:synopsys-usb-otg" , " synopsys-usb-otg/fs" ]
271+ # # USB OTG-HS peripheral support. See [synopsys-usb-otg](https://crates.io/crates/synopsys-usb-otg)
272+ usb_hs = [" dep:synopsys-usb-otg" , " synopsys-usb-otg/hs" ]
273+
274+ # # LCD support via FMC/FSMC peripheral. See [display-interface](https://crates.io/crates/display-interface)
275+ fsmc_lcd = [" dep:display-interface" ]
276+
277+ # # SDIO peripheral support. See [sdio-host](https://crates.io/crates/sdio-host)
278+ sdio-host = [" dep:sdio-host" ]
261279
262- defmt = [" dep:defmt" , " fugit/defmt" , " nb/defmt-0-3" ]
263280dfsdm = []
264281sai = []
265282
@@ -323,8 +340,6 @@ uart8 = []
323340uart9 = []
324341uart10 = []
325342
326- rtic = [" rtic-monotonic" , " systick-monotonic" ]
327-
328343[profile .dev ]
329344debug = true
330345lto = true
@@ -350,11 +365,11 @@ required-features = ["can", "stm32f405"]
350365
351366[[example ]]
352367name = " delay-syst-blinky"
353- required-features = [" device-selected " ] # stm32f411
368+ required-features = [] # stm32f411
354369
355370[[example ]]
356371name = " delay-timer-blinky"
357- required-features = [" device-selected " ] # stm32f411
372+ required-features = [] # stm32f411
358373
359374[[example ]]
360375name = " display-touch"
@@ -366,27 +381,27 @@ required-features = ["gpiog"] # "stm32f429"
366381
367382[[example ]]
368383name = " dynamic-gpio"
369- required-features = [" device-selected " ]
384+ required-features = []
370385
371386[[example ]]
372387name = " f413disco-lcd-ferris"
373388required-features = [" gpiod" , " gpioe" , " gpiof" , " gpiog" , " fsmc" , " fsmc_lcd" ] # stm32f413
374389
375390[[example ]]
376391name = " hd44780"
377- required-features = [" device-selected " ]
392+ required-features = []
378393
379394[[example ]]
380395name = " i2s-audio-out"
381396required-features = [" stm32f411" , " i2s" ]
382397
383398[[example ]]
384399name = " ist7920-bidi-normal-spi"
385- required-features = [" device-selected " ]
400+ required-features = []
386401
387402[[example ]]
388403name = " pwm"
389- required-features = [" device-selected " ]
404+ required-features = []
390405
391406[[example ]]
392407name = " pwm-input"
@@ -410,15 +425,15 @@ required-features = ["rng"] # stm32f407
410425
411426[[example ]]
412427name = " rtc"
413- required-features = [" device-selected " ]
428+ required-features = []
414429
415430[[example ]]
416431name = " rtc_alarm"
417432required-features = [" stm32f411" ]
418433
419434[[example ]]
420435name = " rtic-adc-dma"
421- required-features = [" device-selected " , " rtic" ] # stm32f401
436+ required-features = [" rtic" ] # stm32f401
422437
423438[[example ]]
424439name = " rtic-button"
@@ -462,7 +477,7 @@ required-features = ["gpiod", "sdio", "sdio-host"] # stm32f405
462477
463478[[example ]]
464479name = " serial"
465- required-features = [" device-selected " ]
480+ required-features = []
466481
467482[[example ]]
468483name = " serial-9bit"
@@ -478,7 +493,7 @@ required-features = ["stm32f405"]
478493
479494[[example ]]
480495name = " ssd1306-image"
481- required-features = [" device-selected " ] # stm32f411
496+ required-features = [] # stm32f411
482497
483498[[example ]]
484499name = " st7789-lcd"
@@ -494,11 +509,11 @@ required-features = ["tim2", "stm32f411"] # stm32f411
494509
495510[[example ]]
496511name = " timer-periph"
497- required-features = [" device-selected " ]
512+ required-features = []
498513
499514[[example ]]
500515name = " timer-syst"
501- required-features = [" device-selected " ]
516+ required-features = []
502517
503518[[example ]]
504519name = " usb-serial-irq"
@@ -510,4 +525,4 @@ required-features = ["otg-fs", "usb_fs"] # stm32f401
510525
511526[[example ]]
512527name = " ws2812-spi"
513- required-features = [" device-selected " ]
528+ required-features = []
0 commit comments