stm32h7xx-hal 0.12.0

Hardware Abstraction Layer implementation for STM32H7 series microcontrollers
Documentation
[package]
name = "stm32h7xx-hal"
version = "0.12.0"
authors = ["Andrew Straw <strawman@astraw.com>",
           "Richard Meadows <richard@richard.fish>",
           "Henrik Böving <hargonix@gmail.com>",
           "Jan Adä <jan.adae@outlook.de>",
           "Robert Jördens <rj@quartiq.de>",
           "Ryan Summers <ryan.summers@vertigo-designs.com>",
           "Matthew Meyer <mtthw.meyer@gmail.com>",
           "Florian Jung <flo@windfisch.org>",
           "Matt Ickstadt <mattico8@gmail.com>"]
edition = "2021"
rust-version = "1.59"
categories = ["embedded", "hardware-support", "no-std"]
description = "Hardware Abstraction Layer implementation for STM32H7 series microcontrollers"
keywords = ["arm", "cortex-m", "stm32h7xx", "hal", "embedded-hal"]
license = "0BSD"
repository = "https://github.com/stm32-rs/stm32h7xx-hal"
documentation = "https://docs.rs/stm32h7xx-hal"
readme = "README.md"
exclude = [".gitignore"]

[package.metadata.docs.rs]
features = ["stm32h743v", "rt", "xspi", "sdmmc", "fmc", "usb_hs", "rtc", "ethernet", "ltdc", "crc", "rand", "can", "defmt", "log", "fugit/defmt"]
targets = ["thumbv7em-none-eabihf"]

[dependencies]
fugit = "0.3.5"
embedded-hal = { version = "0.2.6", features = ["unproven"] }
embedded-dma = "0.2.0"
cortex-m = "^0.7.4"
defmt = { version = ">=0.2.0,<0.4", optional = true }
stm32h7 = { version = "^0.14.0", default-features = false }
void = { version = "1.0.2", default-features = false }
cast = { version = "0.3.0", default-features = false }
nb = "1.0.0"
paste = "1.0.1"
bare-metal = "1.0.0"
sdio-host = { version = "0.7", optional = true }
embedded-sdmmc = { version = "0.3", optional = true }
stm32-fmc = { version = "0.2", optional = true }
synopsys-usb-otg = { version = "^0.3.0", features = ["cortex-m"], optional = true }
embedded-display-controller = { version = "^0.1.0", optional = true }
log = { version = "0.4.14", optional = true} # see also the dev-dependencies section
fdcan = { version = "0.1", optional = true }

[dependencies.smoltcp]
version = "0.8.0"
default-features = false
features = ["medium-ethernet", "proto-ipv4", "socket-raw"]
optional = true

[dependencies.chrono]
version = "0.4"
default-features = false
optional = true

[dependencies.rand_core]
version = "0.6"
default-features = false
optional = true

[dev-dependencies]
cortex-m-rt = ">=0.6.15,<0.8"
cortex-m-rtic = { version = "1.0.0" }
log = "0.4.11"
panic-halt = "0.2.0"
panic-rtt-target = { version = "0.1.0", features = ["cortex-m"] }
cfg-if = "1.0.0"
rtt-target = { version = "0.3.1", features = ["cortex-m"] }
lazy_static = { version = "1.4.0", features = ["spin_no_std"] }
cortex-m-log = { version = "~0.7.0", features = ["itm", "semihosting", "log-integration"] }
panic-itm = { version = "~0.4.1" }
panic-semihosting = { version = "0.5.3" }
cortex-m-semihosting = { version = "0.3.5" }
usb-device = "0.2.5"
usbd-serial = "0.1.0"

[dev-dependencies.smoltcp]
version = "0.8.0"
default-features = false
features = ["medium-ethernet", "proto-ipv4", "proto-ipv6", "socket-raw"]

[features]
default = ["rt"]
device-selected = []
revision_v = []
rm0433 = []                     # aka. "single core" devices
rm0399 = []                     # aka. "dual core" devices
rm0455 = []                     # aka. "high memory integration" devices
rm0468 = []                     # aka. "high speed" devices
dsi = []
cm4 = []
cm7 = []
smps = []
ltdc = ["embedded-display-controller"]
xspi = []
fmc = ["stm32-fmc"]
sdmmc = ["sdio-host"]
sdmmc-fatfs = ["embedded-sdmmc", "sdmmc"]
ethernet = ["smoltcp"]
rtc = ["chrono"]
can = ["fdcan/fdcan_h7"]
crc = []
rand = ["rand_core"]
rt = ["stm32h7/rt"]
usb_hs = ["synopsys-usb-otg", "synopsys-usb-otg/hs"]
stm32h742 = ["stm32h7/stm32h743", "device-selected", "rm0433"]
stm32h743 = ["stm32h7/stm32h743", "device-selected", "rm0433"]
stm32h753 = ["stm32h7/stm32h753", "device-selected", "rm0433"]
stm32h750 = ["stm32h7/stm32h743", "device-selected", "rm0433"]
stm32h742v = ["stm32h7/stm32h743v", "device-selected", "revision_v", "rm0433"]
stm32h743v = ["stm32h7/stm32h743v", "device-selected", "revision_v", "rm0433"]
stm32h753v = ["stm32h7/stm32h753v", "device-selected", "revision_v", "rm0433"]
stm32h750v = ["stm32h7/stm32h743v", "device-selected", "revision_v", "rm0433"]
stm32h747cm7 = ["stm32h7/stm32h747cm7", "device-selected", "revision_v", "rm0399", "cm7", "dsi", "smps"]
stm32h7b3 = ["stm32h7/stm32h7b3", "device-selected", "revision_v", "rm0455", "smps"]
stm32h7b0 = ["stm32h7/stm32h7b3", "device-selected", "revision_v", "rm0455", "smps"]
stm32h7a3 = ["stm32h7/stm32h7b3", "device-selected", "revision_v", "rm0455", "smps"]
stm32h735 = ["stm32h7/stm32h735", "device-selected", "revision_v", "rm0468", "smps"]
# Flags for examples
log-itm = []
log-rtt = []
log-semihost = []
example-smps = []
example-ldo = []

[profile.dev]
codegen-units = 1 # better optimizations
debug = true # symbols are nice and they don't increase the size in flash
incremental = false

[profile.release]
codegen-units = 1 # better optimizations
debug = true # symbols are nice and they don't increase the size in flash
lto = true # better optimizations
opt-level = "s" # optimize for binary size

[[example]]
name = "rtic"
required-features = ["rt"]

[[example]]
name = "rtic_timers"
required-features = ["rt", "rm0433"]

[[example]]
name = "vos0"
required-features = ["revision_v", "rm0433"]

[[example]]
name = "fmc"
required-features = ["fmc", "rm0399"]

[[example]]
name = "can-echo"
required-features = ["can"]

[[example]]
name = "qspi"
required-features = ["xspi", "rm0433"]

[[example]]
name = "qspi_mdma"
required-features = ["xspi", "rm0433"]

[[example]]
name = "qspi_flash_memory"
required-features = ["xspi", "rm0433"]

[[example]]
name = "octospi"
required-features = ["xspi", "rm0468"]

[[example]]
name = "octospi_hyperram"
required-features = ["xspi", "rm0468"]

[[example]]
name = "sdmmc"
required-features = ["sdmmc"]

[[example]]
name = "sdmmc_fat"
required-features = ["sdmmc", "sdmmc-fatfs"]

[[example]]
name = "ethernet-stm32h747i-disco"
required-features = ["rt", "stm32h747cm7", "ethernet"]

[[example]]
name = "ethernet-rtic-stm32h747i-disco"
required-features = ["rt", "stm32h747cm7", "ethernet"]

[[example]]
name = "ethernet-rtic-stm32h735g-dk"
required-features = ["rt", "stm32h735", "ethernet"]

[[example]]
name = "ethernet-nucleo-h743zi2"
required-features = ["rt", "revision_v", "stm32h743v", "ethernet"]

[[example]]
name = "tick_timer"
required-features = ["rt"]

[[example]]
name = "usb_serial"
required-features = ["usb_hs"]

[[example]]
name = "usb_rtic"
required-features = ["rt", "usb_hs", "rm0433"]

[[example]]
name = "usb_passthrough"
required-features = ["usb_hs", "rm0399"]

[[example]]
name = "usb_phy_serial_interrupt"
required-features = ["rt", "usb_hs", "rm0433"]

[[example]]
name = "rtc"
required-features = ["rt", "rtc"]

[[example]]
name = "sai_dma_passthru"
required-features = ["rm0433"]

[[example]]
name = "spi-dma-rtic"
required-features = ["rm0433","rt"]

[[example]]
name = "crc"
required-features = ["crc", "rt"]

[[example]]
name = "flash"
required-features = ["rt", "stm32h743v"]