embassy/embassy-stm32/Cargo.toml
2021-05-05 11:01:02 -04:00

322 lines
14 KiB
TOML

[package]
name = "embassy-stm32"
version = "0.1.0"
authors = ["Dario Nieuwenhuis <dirbaio@dirbaio.net>"]
edition = "2018"
[dependencies]
embassy = { version = "0.1.0", path = "../embassy" }
embassy-macros = { version = "0.1.0", path = "../embassy-macros" }
embassy-extras = {version = "0.1.0", path = "../embassy-extras" }
defmt = { version = "0.2.0", optional = true }
log = { version = "0.4.11", optional = true }
cortex-m-rt = { version = "0.6.13", features = ["device"] }
cortex-m = "0.7.1"
embedded-hal = { version = "0.2.4" }
futures = { version = "0.3.5", default-features = false, features = ["async-await"] }
stm32-metapac = { path = "../../stm32-metapac"}
[build-dependencies]
regex = "1.4.6"
[features]
defmt-trace = [ ]
defmt-debug = [ ]
defmt-info = [ ]
defmt-warn = [ ]
defmt-error = [ ]
# BEGIN GENERATED FEATURES
stm32f401cb = [ "_syscfg_f4", "_usart_v1",]
stm32f401cc = [ "_syscfg_f4", "_usart_v1",]
stm32f401cd = [ "_syscfg_f4", "_usart_v1",]
stm32f401ce = [ "_syscfg_f4", "_usart_v1",]
stm32f401rb = [ "_syscfg_f4", "_usart_v1",]
stm32f401rc = [ "_syscfg_f4", "_usart_v1",]
stm32f401rd = [ "_syscfg_f4", "_usart_v1",]
stm32f401re = [ "_syscfg_f4", "_usart_v1",]
stm32f401vb = [ "_syscfg_f4", "_usart_v1",]
stm32f401vc = [ "_syscfg_f4", "_usart_v1",]
stm32f401vd = [ "_syscfg_f4", "_usart_v1",]
stm32f401ve = [ "_syscfg_f4", "_usart_v1",]
stm32f405oe = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f405og = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f405rg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f405vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f405zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f407ie = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f407ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f407ve = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f407vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f407ze = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f407zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f410c8 = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f410cb = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f410r8 = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f410rb = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f410t8 = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f410tb = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f411cc = [ "_syscfg_f4", "_usart_v1",]
stm32f411ce = [ "_syscfg_f4", "_usart_v1",]
stm32f411rc = [ "_syscfg_f4", "_usart_v1",]
stm32f411re = [ "_syscfg_f4", "_usart_v1",]
stm32f411vc = [ "_syscfg_f4", "_usart_v1",]
stm32f411ve = [ "_syscfg_f4", "_usart_v1",]
stm32f412ce = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412cg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412re = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412rg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412ve = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412ze = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f412zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413cg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413ch = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413mg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413mh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413rg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413rh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413vh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f413zh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f415og = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f415rg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f415vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f415zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f417ie = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f417ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f417ve = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f417vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f417ze = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f417zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f423ch = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f423mh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f423rh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f423vh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f423zh = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427ag = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427ai = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427ii = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427vi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f427zi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ag = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ai = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429be = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429bg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429bi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ie = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ii = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ne = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ng = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ni = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ve = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429vi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429ze = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f429zi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437ai = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437ii = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437vi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f437zi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439ai = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439bg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439bi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439ii = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439ng = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439ni = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439vi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f439zi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f446mc = [ "_syscfg_f4", "_usart_v1",]
stm32f446me = [ "_syscfg_f4", "_usart_v1",]
stm32f446rc = [ "_syscfg_f4", "_usart_v1",]
stm32f446re = [ "_syscfg_f4", "_usart_v1",]
stm32f446vc = [ "_syscfg_f4", "_usart_v1",]
stm32f446ve = [ "_syscfg_f4", "_usart_v1",]
stm32f446zc = [ "_syscfg_f4", "_usart_v1",]
stm32f446ze = [ "_syscfg_f4", "_usart_v1",]
stm32f469ae = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ag = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ai = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469be = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469bg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469bi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ie = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ii = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ne = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ng = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ni = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ve = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469vi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469ze = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f469zi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479ag = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479ai = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479bg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479bi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479ig = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479ii = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479ng = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479ni = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479vg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479vi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479zg = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32f479zi = [ "_syscfg_f4", "_rng_v1", "_usart_v1",]
stm32l412c8 = [ "_rng_v1", "_syscfg_l4",]
stm32l412cb = [ "_rng_v1", "_syscfg_l4",]
stm32l412k8 = [ "_rng_v1", "_syscfg_l4",]
stm32l412kb = [ "_rng_v1", "_syscfg_l4",]
stm32l412r8 = [ "_rng_v1", "_syscfg_l4",]
stm32l412rb = [ "_rng_v1", "_syscfg_l4",]
stm32l412t8 = [ "_rng_v1", "_syscfg_l4",]
stm32l412tb = [ "_rng_v1", "_syscfg_l4",]
stm32l422cb = [ "_rng_v1", "_syscfg_l4",]
stm32l422kb = [ "_rng_v1", "_syscfg_l4",]
stm32l422rb = [ "_rng_v1", "_syscfg_l4",]
stm32l422tb = [ "_rng_v1", "_syscfg_l4",]
stm32l431cb = [ "_rng_v1", "_syscfg_l4",]
stm32l431cc = [ "_rng_v1", "_syscfg_l4",]
stm32l431kb = [ "_rng_v1", "_syscfg_l4",]
stm32l431kc = [ "_rng_v1", "_syscfg_l4",]
stm32l431rb = [ "_rng_v1", "_syscfg_l4",]
stm32l431rc = [ "_rng_v1", "_syscfg_l4",]
stm32l431vc = [ "_rng_v1", "_syscfg_l4",]
stm32l432kb = [ "_rng_v1", "_syscfg_l4",]
stm32l432kc = [ "_rng_v1", "_syscfg_l4",]
stm32l433cb = [ "_rng_v1", "_syscfg_l4",]
stm32l433cc = [ "_rng_v1", "_syscfg_l4",]
stm32l433rb = [ "_rng_v1", "_syscfg_l4",]
stm32l433rc = [ "_rng_v1", "_syscfg_l4",]
stm32l433vc = [ "_rng_v1", "_syscfg_l4",]
stm32l442kc = [ "_rng_v1", "_syscfg_l4",]
stm32l443cc = [ "_rng_v1", "_syscfg_l4",]
stm32l443rc = [ "_rng_v1", "_syscfg_l4",]
stm32l443vc = [ "_rng_v1", "_syscfg_l4",]
stm32l451cc = [ "_rng_v1", "_syscfg_l4",]
stm32l451ce = [ "_rng_v1", "_syscfg_l4",]
stm32l451rc = [ "_rng_v1", "_syscfg_l4",]
stm32l451re = [ "_rng_v1", "_syscfg_l4",]
stm32l451vc = [ "_rng_v1", "_syscfg_l4",]
stm32l451ve = [ "_rng_v1", "_syscfg_l4",]
stm32l452cc = [ "_rng_v1", "_syscfg_l4",]
stm32l452ce = [ "_rng_v1", "_syscfg_l4",]
stm32l452rc = [ "_rng_v1", "_syscfg_l4",]
stm32l452re = [ "_rng_v1", "_syscfg_l4",]
stm32l452vc = [ "_rng_v1", "_syscfg_l4",]
stm32l452ve = [ "_rng_v1", "_syscfg_l4",]
stm32l462ce = [ "_rng_v1", "_syscfg_l4",]
stm32l462re = [ "_rng_v1", "_syscfg_l4",]
stm32l462ve = [ "_rng_v1", "_syscfg_l4",]
stm32l471qe = [ "_rng_v1", "_syscfg_l4",]
stm32l471qg = [ "_rng_v1", "_syscfg_l4",]
stm32l471re = [ "_rng_v1", "_syscfg_l4",]
stm32l471rg = [ "_rng_v1", "_syscfg_l4",]
stm32l471ve = [ "_rng_v1", "_syscfg_l4",]
stm32l471vg = [ "_rng_v1", "_syscfg_l4",]
stm32l471ze = [ "_rng_v1", "_syscfg_l4",]
stm32l471zg = [ "_rng_v1", "_syscfg_l4",]
stm32l475rc = [ "_rng_v1", "_syscfg_l4",]
stm32l475re = [ "_rng_v1", "_syscfg_l4",]
stm32l475rg = [ "_rng_v1", "_syscfg_l4",]
stm32l475vc = [ "_rng_v1", "_syscfg_l4",]
stm32l475ve = [ "_rng_v1", "_syscfg_l4",]
stm32l475vg = [ "_rng_v1", "_syscfg_l4",]
stm32l476je = [ "_rng_v1", "_syscfg_l4",]
stm32l476jg = [ "_rng_v1", "_syscfg_l4",]
stm32l476me = [ "_rng_v1", "_syscfg_l4",]
stm32l476mg = [ "_rng_v1", "_syscfg_l4",]
stm32l476qe = [ "_rng_v1", "_syscfg_l4",]
stm32l476qg = [ "_rng_v1", "_syscfg_l4",]
stm32l476rc = [ "_rng_v1", "_syscfg_l4",]
stm32l476re = [ "_rng_v1", "_syscfg_l4",]
stm32l476rg = [ "_rng_v1", "_syscfg_l4",]
stm32l476vc = [ "_rng_v1", "_syscfg_l4",]
stm32l476ve = [ "_rng_v1", "_syscfg_l4",]
stm32l476vg = [ "_rng_v1", "_syscfg_l4",]
stm32l476ze = [ "_rng_v1", "_syscfg_l4",]
stm32l476zg = [ "_rng_v1", "_syscfg_l4",]
stm32l485jc = [ "_rng_v1", "_syscfg_l4",]
stm32l485je = [ "_rng_v1", "_syscfg_l4",]
stm32l486jg = [ "_rng_v1", "_syscfg_l4",]
stm32l486qg = [ "_rng_v1", "_syscfg_l4",]
stm32l486rg = [ "_rng_v1", "_syscfg_l4",]
stm32l486vg = [ "_rng_v1", "_syscfg_l4",]
stm32l486zg = [ "_rng_v1", "_syscfg_l4",]
stm32l496ae = [ "_rng_v1", "_syscfg_l4",]
stm32l496ag = [ "_rng_v1", "_syscfg_l4",]
stm32l496qe = [ "_rng_v1", "_syscfg_l4",]
stm32l496qg = [ "_rng_v1", "_syscfg_l4",]
stm32l496re = [ "_rng_v1", "_syscfg_l4",]
stm32l496rg = [ "_rng_v1", "_syscfg_l4",]
stm32l496ve = [ "_rng_v1", "_syscfg_l4",]
stm32l496vg = [ "_rng_v1", "_syscfg_l4",]
stm32l496wg = [ "_rng_v1", "_syscfg_l4",]
stm32l496ze = [ "_rng_v1", "_syscfg_l4",]
stm32l496zg = [ "_rng_v1", "_syscfg_l4",]
stm32l4a6ag = [ "_rng_v1", "_syscfg_l4",]
stm32l4a6qg = [ "_rng_v1", "_syscfg_l4",]
stm32l4a6rg = [ "_rng_v1", "_syscfg_l4",]
stm32l4a6vg = [ "_rng_v1", "_syscfg_l4",]
stm32l4a6zg = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5ae = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5ag = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5ce = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5cg = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5qe = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5qg = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5re = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5rg = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5ve = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5vg = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5ze = [ "_rng_v1", "_syscfg_l4",]
stm32l4p5zg = [ "_rng_v1", "_syscfg_l4",]
stm32l4q5ag = [ "_rng_v1", "_syscfg_l4",]
stm32l4q5cg = [ "_rng_v1", "_syscfg_l4",]
stm32l4q5qg = [ "_rng_v1", "_syscfg_l4",]
stm32l4q5rg = [ "_rng_v1", "_syscfg_l4",]
stm32l4q5vg = [ "_rng_v1", "_syscfg_l4",]
stm32l4q5zg = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5ag = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5ai = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5qg = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5qi = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5vg = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5vi = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5zg = [ "_rng_v1", "_syscfg_l4",]
stm32l4r5zi = [ "_rng_v1", "_syscfg_l4",]
stm32l4r7ai = [ "_rng_v1", "_syscfg_l4",]
stm32l4r7vi = [ "_rng_v1", "_syscfg_l4",]
stm32l4r7zi = [ "_rng_v1", "_syscfg_l4",]
stm32l4r9ag = [ "_rng_v1", "_syscfg_l4",]
stm32l4r9ai = [ "_rng_v1", "_syscfg_l4",]
stm32l4r9vg = [ "_rng_v1", "_syscfg_l4",]
stm32l4r9vi = [ "_rng_v1", "_syscfg_l4",]
stm32l4r9zg = [ "_rng_v1", "_syscfg_l4",]
stm32l4r9zi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s5ai = [ "_rng_v1", "_syscfg_l4",]
stm32l4s5qi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s5vi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s5zi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s7ai = [ "_rng_v1", "_syscfg_l4",]
stm32l4s7vi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s7zi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s9ai = [ "_rng_v1", "_syscfg_l4",]
stm32l4s9vi = [ "_rng_v1", "_syscfg_l4",]
stm32l4s9zi = [ "_rng_v1", "_syscfg_l4",]
# END GENERATED FEATURES