[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 ", "Johannes Draaijer "] version = "0.7.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.8", optional = true } stm32f4xx-hal = { version = "0.21", 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