stm32-eth 0.6.0

Embedded Rust Ethernet driver for the STM32 MCU series
Documentation
[package]
categories = ["embedded", "no-std", "hardware-support", "network-programming"]
name = "stm32-eth"
description = "Embedded Rust Ethernet driver for the STM32 MCU series"
license = "Apache-2.0"
authors = ["Astro <astro@spaceboyz.net>", "Johannes Draaijer <jcdra1@gmail.com>"]
version = "0.6.0"
keywords = ["ethernet", "eth", "stm32", "stm32f4", "stm32f7"]
repository = "https://github.com/stm32-rs/stm32-eth"
documentation = "https://docs.rs/stm32-eth/"
edition = "2018"
autoexamples = false

[badges]
travis-ci = { repository = "astro/stm32-eth", branch = "master" }
maintenance = { status = "experimental" }

[package.metadata.docs.rs]
features = ["smoltcp-phy", "stm32f429", "async-await"]

[dependencies]
volatile-register = "0.2"
aligned = "0.4"
stm32f7xx-hal = { version = "0.7", optional = true }
stm32f4xx-hal = { version = "0.20", optional = true }
stm32f4 = { version = "0.15", optional = true }
stm32f1xx-hal = { version = "0.10", optional = true }
ieee802_3_miim = "0.8"
cortex-m = "0.7"
log = { version = "0.4", optional = true }
defmt = { version = "0.3", optional = true }
futures = { version = "0.3", default-features = false, features = ["async-await"], optional = true }

[dependencies.smoltcp]
version = "0.11"
default-features = false
optional = true

[features]
default = [ "defmt", "ptp" ]
device-selected = []
fence = []
ptp = [ "smoltcp/packetmeta-id" ]
async-await = ["dep:futures"]

stm32f107 = ["stm32f1xx-hal/stm32f107", "device-selected"]

stm32f407 = ["stm32f4xx-hal/stm32f407", "stm32f4", "device-selected"]
stm32f417 = ["stm32f4xx-hal/stm32f417", "stm32f4", "device-selected"]
stm32f427 = ["stm32f4xx-hal/stm32f427", "stm32f4", "device-selected"]
stm32f429 = ["stm32f4xx-hal/stm32f429", "stm32f4", "device-selected"]
stm32f437 = ["stm32f4xx-hal/stm32f437", "stm32f4", "device-selected"]
stm32f439 = ["stm32f4xx-hal/stm32f439", "stm32f4", "device-selected"]
stm32f469 = ["stm32f4xx-hal/stm32f469", "stm32f4", "device-selected"]
stm32f479 = ["stm32f4xx-hal/stm32f479", "stm32f4", "device-selected"]

stm32f745 = ["stm32f7xx-hal/stm32f745", "device-selected", "fence"]
stm32f746 = ["stm32f7xx-hal/stm32f746", "device-selected", "fence"]
stm32f756 = ["stm32f7xx-hal/stm32f756", "device-selected", "fence"]
stm32f765 = ["stm32f7xx-hal/stm32f765", "device-selected", "fence"]
stm32f767 = ["stm32f7xx-hal/stm32f767", "device-selected", "fence"]
stm32f769 = ["stm32f7xx-hal/stm32f769", "device-selected", "fence"]
stm32f777 = ["stm32f7xx-hal/stm32f777", "device-selected", "fence"]
stm32f778 = ["stm32f7xx-hal/stm32f778", "device-selected", "fence"]
stm32f779 = ["stm32f7xx-hal/stm32f779", "device-selected", "fence"]

smoltcp-phy = ["smoltcp"]

[dev-dependencies]
cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
cortex-m-rt = "0.7"
fugit = "0.3"
defmt-rtt = "0.4"
panic-probe = { version = "0.3", features = [ "print-defmt" ] }
systick-monotonic = "1.0"
smoltcp = { version = "0.11", features = [ "medium-ethernet", "proto-ipv4", "socket-udp", "socket-tcp", "defmt" ], default-features = false }

[dev-dependencies.rtic]
package = "cortex-m-rtic"
version = "1.0"

[dev-dependencies.async-rtic]
package = "rtic"
version = "2"
features = [ "thumbv7-backend" ]

[dev-dependencies.rtic-sync]
package = "rtic-sync"
version = "1.3"

# This isn't an actual example. It just exists so we can easily
# test the common items :)
[[example]]
name = "common"
required-features = ["defmt", "smoltcp-phy", "ptp"]

[[example]]
name = "pktgen"
required-features = [ "defmt" ]

[[example]]
name = "ip"
required-features = [ "defmt", "smoltcp-phy" ]

[[example]]
name = "arp"
required-features = [ "defmt" ]

[[example]]
name = "rtic-echo"
required-features = [ "defmt" , "smoltcp-phy" ]

[[example]]
name = "rtic-timestamp"
required-features = [ "defmt", "ptp" ]

[[example]]
name = "smoltcp-client"
path = "./examples/smoltcp-timesync/client.rs"
required-features = [ "defmt", "ptp", "smoltcp-phy" ]

[[example]]
name = "smoltcp-server"
path = "./examples/smoltcp-timesync/server.rs"
required-features = [ "defmt", "ptp", "smoltcp-phy" ]

[[example]]
name = "timesync-client"
path = "./examples/timesync/client.rs"
required-features = [ "defmt", "ptp" ]

[[example]]
name = "timesync-server"
path = "./examples/timesync/server.rs"
required-features = [ "defmt", "ptp" ]

[[example]]
name = "async-rtic-timestamp"
required-features = [ "defmt", "ptp", "async-await" ]

[profile.release]
debug = 2
lto = true