Compatibility with ESP-IDF 4.4

This commit is contained in:
imarkov 2021-09-16 15:52:29 +03:00
parent 7e5b12da61
commit 9f699c00d9
4 changed files with 56 additions and 29 deletions

View File

@ -1,6 +1,6 @@
[package]
name = "esp-idf-hal"
version = "0.19.2"
version = "0.20.0"
authors = ["sapir <yasapir@gmail.com>", "Ivan Markov <ivan.markov@gmail.com>"]
edition = "2018"
categories = ["embedded", "hardware-support"]
@ -15,7 +15,7 @@ readme = "README.md"
default-target = "x86_64-unknown-linux-gnu"
[features]
default = ["std", "esp-idf-sys"]
default = ["std", "esp-idf-sys", "esp-idf-sys/default"]
std = ["esp-idf-sys/std"]
@ -26,8 +26,8 @@ cfg-if = "1"
nb = "0.1.2"
mutex-trait = "0.2"
embedded-hal = { version = "0.2", features = ["unproven"] }
esp-idf-sys = { version = "0.19", optional = true, default-features = false }
esp-idf-sys = { version = "0.20", optional = true, default-features = false }
[build-dependencies]
embuild = "0.23"
embuild = "0.24"
anyhow = "1"

View File

@ -1,33 +1,27 @@
#[cfg(not(feature = "ulp"))]
fn main() -> anyhow::Result<()> {
#[cfg(not(feature = "ulp"))]
embuild::kconfig::CfgArgs::output_propagated("ESP_IDF")?;
embuild::build::CfgArgs::output_propagated("ESP_IDF")
}
#[cfg(not(feature = "ulp"))]
let mcu = std::env::var("DEP_ESP_IDF_MCU").unwrap();
#[cfg(feature = "ulp")]
fn main() -> anyhow::Result<()> {
println!("cargo:rustc-cfg=esp32s2");
#[cfg(feature = "ulp")]
let mcu = "esp32s2";
let ulp_dir = std::env::current_dir().unwrap().join("ulp");
println!("cargo:rustc-cfg={}", mcu);
println!("cargo:rustc-link-search={}", ulp_dir.display());
#[cfg(feature = "ulp")]
{
let ulp_dir = std::env::current_dir().unwrap().join("ulp");
println!("cargo:rustc-link-lib=static=ulp_start");
println!("cargo:rustc-link-search={}", ulp_dir.display());
println!("cargo:rustc-link-lib=static=ulp_start");
println!("cargo:rerun-if-changed=build.rs");
println!(
"cargo:rerun-if-changed={}",
ulp_dir.join("libulp_start.a").display()
);
println!(
"cargo:rerun-if-changed={}",
ulp_dir.join("ulp_link.x").display()
);
}
println!("cargo:rerun-if-changed=build.rs");
println!(
"cargo:rerun-if-changed={}",
ulp_dir.join("libulp_start.a").display()
);
println!(
"cargo:rerun-if-changed={}",
ulp_dir.join("ulp_link.x").display()
);
Ok(())
}

View File

@ -327,6 +327,7 @@ where
slave: i2c_config_t__bindgen_ty_1__bindgen_ty_2 {
slave_addr: slave_addr as u16,
addr_10bit_en: 0, // For now; to become configurable with embedded-hal V1.0
..Default::default()
},
},
..Default::default()

View File

@ -167,13 +167,45 @@ impl<SPI: Spi, SCLK: OutputPin, SDO: OutputPin, SDI: InputPin + OutputPin, CS: O
pins: Pins<SCLK, SDO, SDI, CS>,
config: config::Config,
) -> Result<Self, EspError> {
#[cfg(esp_idf_version = "4.4")]
let bus_config = spi_bus_config_t {
flags: SPICOMMON_BUSFLAG_MASTER,
sclk_io_num: SCLK::pin(),
data4_io_num: -1,
data5_io_num: -1,
data6_io_num: -1,
data7_io_num: -1,
__bindgen_anon_1: spi_bus_config_t__bindgen_ty_1 {
mosi_io_num: SDO::pin(),
//data0_io_num: -1,
},
__bindgen_anon_2: spi_bus_config_t__bindgen_ty_2 {
miso_io_num: if pins.sdi.is_some() { SDI::pin() } else { -1 },
//data1_io_num: -1,
},
__bindgen_anon_3: spi_bus_config_t__bindgen_ty_3 {
quadwp_io_num: -1,
//data2_io_num: -1,
},
__bindgen_anon_4: spi_bus_config_t__bindgen_ty_4 {
quadhd_io_num: -1,
//data3_io_num: -1,
},
//max_transfer_sz: SPI_MAX_TRANSFER_SIZE,
..Default::default()
};
#[cfg(not(esp_idf_version = "4.4"))]
let bus_config = spi_bus_config_t {
flags: SPICOMMON_BUSFLAG_MASTER,
sclk_io_num: SCLK::pin(),
mosi_io_num: SDO::pin(),
miso_io_num: if pins.sdi.is_some() { SDI::pin() } else { -1 },
sclk_io_num: SCLK::pin(),
quadwp_io_num: -1,
quadhd_io_num: -1,
//max_transfer_sz: SPI_MAX_TRANSFER_SIZE,
..Default::default()
};