@@ -47,6 +47,7 @@ systick-monotonic = { version = "1.0", optional = true }
4747enumflags2 = " 0.7.8"
4848embedded-storage = " 0.3"
4949vcell = " 0.1.3"
50+ document-features = " 0.2"
5051
5152[dependencies .time ]
5253version = " 0.3.14"
@@ -99,27 +100,30 @@ default-features = false
99100features = [" macros" ]
100101
101102[features ]
102- device-selected = []
103- rt = [] # deprecated
103+ # ! Use one of the supported STM32-serie related features:
104+ # ! `stm32f401`, `stm32f405`, `stm32f407`, `stm32f415`, `stm32f417`, `stm32f410`,
105+ # ! `stm32f411`, `stm32f412`, `stm32f413`, `stm32f423`, `stm32f427`, `stm32f429`,
106+ # ! `stm32f437`, `stm32f439`, `stm32f446`, `stm32f469`, `stm32f479`.
107+
104108# Note: stm32f4 has only one feature for some very similar device families,
105109# so it's intended for e.g. stm32f405/415 to both enable stm32f4/stm32f405.
106- stm32f401 = [" stm32f4/stm32f401" , " device-selected " , " gpio-f401" ,]
107- stm32f405 = [" stm32f4/stm32f405" , " device-selected " , " gpio-f417" ]
108- stm32f407 = [" stm32f4/stm32f407" , " device-selected " , " gpio-f417" ]
109- stm32f415 = [" stm32f4/stm32f405" , " device-selected " , " gpio-f417" , " cryp" ]
110- stm32f417 = [" stm32f4/stm32f407" , " device-selected " , " gpio-f417" , " cryp" ]
111- stm32f410 = [" stm32f4/stm32f410" , " device-selected " , " gpio-f410" ]
112- stm32f411 = [" stm32f4/stm32f411" , " device-selected " , " gpio-f411" ]
113- stm32f412 = [" stm32f4/stm32f412" , " device-selected " , " gpio-f412" ]
114- stm32f413 = [" stm32f4/stm32f413" , " device-selected " , " gpio-f413" ]
115- stm32f423 = [" stm32f4/stm32f413" , " device-selected " , " gpio-f413" , " aes" ]
116- stm32f427 = [" stm32f4/stm32f427" , " device-selected " , " gpio-f427" , " fsmc" ]
117- stm32f429 = [" stm32f4/stm32f429" , " device-selected " , " gpio-f427" , " fmc" ]
118- stm32f437 = [" stm32f4/stm32f427" , " device-selected " , " gpio-f427" , " fsmc" , " cryp" ]
119- stm32f439 = [" stm32f4/stm32f429" , " device-selected " , " gpio-f427" , " fmc" , " cryp" ]
120- stm32f446 = [" stm32f4/stm32f446" , " device-selected " , " gpio-f446" ]
121- stm32f469 = [" stm32f4/stm32f469" , " device-selected " , " gpio-f469" ]
122- stm32f479 = [" stm32f4/stm32f469" , " device-selected " , " gpio-f469" , " cryp" ]
110+ stm32f401 = [" stm32f4/stm32f401" , " gpio-f401" ,]
111+ stm32f405 = [" stm32f4/stm32f405" , " gpio-f417" ]
112+ stm32f407 = [" stm32f4/stm32f407" , " gpio-f417" ]
113+ stm32f415 = [" stm32f4/stm32f405" , " gpio-f417" , " cryp" ]
114+ stm32f417 = [" stm32f4/stm32f407" , " gpio-f417" , " cryp" ]
115+ stm32f410 = [" stm32f4/stm32f410" , " gpio-f410" ]
116+ stm32f411 = [" stm32f4/stm32f411" , " gpio-f411" ]
117+ stm32f412 = [" stm32f4/stm32f412" , " gpio-f412" ]
118+ stm32f413 = [" stm32f4/stm32f413" , " gpio-f413" ]
119+ stm32f423 = [" stm32f4/stm32f413" , " gpio-f413" , " aes" ]
120+ stm32f427 = [" stm32f4/stm32f427" , " gpio-f427" , " fsmc" ]
121+ stm32f429 = [" stm32f4/stm32f429" , " gpio-f427" , " fmc" ]
122+ stm32f437 = [" stm32f4/stm32f427" , " gpio-f427" , " fsmc" , " cryp" ]
123+ stm32f439 = [" stm32f4/stm32f429" , " gpio-f427" , " fmc" , " cryp" ]
124+ stm32f446 = [" stm32f4/stm32f446" , " gpio-f446" ]
125+ stm32f469 = [" stm32f4/stm32f469" , " gpio-f469" ]
126+ stm32f479 = [" stm32f4/stm32f469" , " gpio-f469" , " cryp" ]
123127
124128gpio-f401 = [
125129 " gpiod" , " gpioe" ,
@@ -255,16 +259,29 @@ gpio-f469 = [
255259 " usart3" , " uart4" , " uart5" , " uart7" , " uart8" ,
256260]
257261
258- usb_fs = [" synopsys-usb-otg" , " synopsys-usb-otg/fs" ]
259- usb_hs = [" synopsys-usb-otg" , " synopsys-usb-otg/hs" ]
262+ # # Support monotonic timers that can be used by [RTIC framework](https://crates.io/crates/cortex-m-rtic)
263+ rtic = [" dep:rtic-monotonic" , " dep:systick-monotonic" ]
264+
265+ # # Implementation of `defmt::Format` for public enums and structures. See [defmt](https://crates.io/crates/defmt)
266+ defmt = [" dep:defmt" , " fugit/defmt" , " nb/defmt-0-3" ]
260267
261- can = [" bxcan" ]
268+ # # bxCAN peripheral support. See [bxcan](https://crates.io/crates/bxcan)
269+ can = [" dep:bxcan" ]
262270
263- i2s = [" stm32_i2s_v12x" ]
271+ # # I2S peripheral support. See [stm32_i2s_v12x](https://crates.io/crates/stm32_i2s_v12x)
272+ i2s = [" dep:stm32_i2s_v12x" ]
264273
265- fsmc_lcd = [" display-interface" ]
274+ # # USB OTG-FS peripheral support. See [synopsys-usb-otg](https://crates.io/crates/synopsys-usb-otg)
275+ usb_fs = [" dep:synopsys-usb-otg" , " synopsys-usb-otg/fs" ]
276+ # # USB OTG-HS peripheral support. See [synopsys-usb-otg](https://crates.io/crates/synopsys-usb-otg)
277+ usb_hs = [" dep:synopsys-usb-otg" , " synopsys-usb-otg/hs" ]
278+
279+ # # LCD support via FMC/FSMC peripheral. See [display-interface](https://crates.io/crates/display-interface)
280+ fsmc_lcd = [" dep:display-interface" ]
281+
282+ # # SDIO peripheral support. See [sdio-host](https://crates.io/crates/sdio-host)
283+ sdio-host = [" dep:sdio-host" ]
266284
267- defmt = [" dep:defmt" , " fugit/defmt" , " nb/defmt-0-3" ]
268285dfsdm = []
269286sai = []
270287
@@ -328,8 +345,6 @@ uart8 = []
328345uart9 = []
329346uart10 = []
330347
331- rtic = [" rtic-monotonic" , " systick-monotonic" ]
332-
333348[profile .dev ]
334349debug = true
335350lto = true
@@ -355,11 +370,11 @@ required-features = ["can", "stm32f405"]
355370
356371[[example ]]
357372name = " delay-syst-blinky"
358- required-features = [" device-selected " ] # stm32f411
373+ required-features = [] # stm32f411
359374
360375[[example ]]
361376name = " delay-timer-blinky"
362- required-features = [" device-selected " ] # stm32f411
377+ required-features = [] # stm32f411
363378
364379[[example ]]
365380name = " display-touch"
@@ -371,27 +386,27 @@ required-features = ["gpiog"] # "stm32f429"
371386
372387[[example ]]
373388name = " dynamic-gpio"
374- required-features = [" device-selected " ]
389+ required-features = []
375390
376391[[example ]]
377392name = " f413disco-lcd-ferris"
378393required-features = [" gpiod" , " gpioe" , " gpiof" , " gpiog" , " fsmc" , " fsmc_lcd" ] # stm32f413
379394
380395[[example ]]
381396name = " hd44780"
382- required-features = [" device-selected " ]
397+ required-features = []
383398
384399[[example ]]
385400name = " i2s-audio-out"
386401required-features = [" stm32f411" , " i2s" ]
387402
388403[[example ]]
389404name = " ist7920-bidi-normal-spi"
390- required-features = [" device-selected " ]
405+ required-features = []
391406
392407[[example ]]
393408name = " pwm"
394- required-features = [" device-selected " ]
409+ required-features = []
395410
396411[[example ]]
397412name = " pwm-input"
@@ -415,15 +430,15 @@ required-features = ["rng"] # stm32f407
415430
416431[[example ]]
417432name = " rtc"
418- required-features = [" device-selected " ]
433+ required-features = []
419434
420435[[example ]]
421436name = " rtc_alarm"
422437required-features = [" stm32f411" ]
423438
424439[[example ]]
425440name = " rtic-adc-dma"
426- required-features = [" device-selected " , " rtic" ] # stm32f401
441+ required-features = [" rtic" ] # stm32f401
427442
428443[[example ]]
429444name = " rtic-button"
@@ -467,7 +482,7 @@ required-features = ["gpiod", "sdio", "sdio-host"] # stm32f405
467482
468483[[example ]]
469484name = " serial"
470- required-features = [" device-selected " ]
485+ required-features = []
471486
472487[[example ]]
473488name = " serial-9bit"
@@ -483,7 +498,7 @@ required-features = ["stm32f405"]
483498
484499[[example ]]
485500name = " ssd1306-image"
486- required-features = [" device-selected " ] # stm32f411
501+ required-features = [] # stm32f411
487502
488503[[example ]]
489504name = " st7789-lcd"
@@ -499,11 +514,11 @@ required-features = ["tim2", "stm32f411"] # stm32f411
499514
500515[[example ]]
501516name = " timer-periph"
502- required-features = [" device-selected " ]
517+ required-features = []
503518
504519[[example ]]
505520name = " timer-syst"
506- required-features = [" device-selected " ]
521+ required-features = []
507522
508523[[example ]]
509524name = " usb-serial-irq"
@@ -515,4 +530,4 @@ required-features = ["otg-fs", "usb_fs"] # stm32f401
515530
516531[[example ]]
517532name = " ws2812-spi"
518- required-features = [" device-selected " ]
533+ required-features = []
0 commit comments