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

View File

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

View File

@ -327,6 +327,7 @@ where
slave: i2c_config_t__bindgen_ty_1__bindgen_ty_2 { slave: i2c_config_t__bindgen_ty_1__bindgen_ty_2 {
slave_addr: slave_addr as u16, slave_addr: slave_addr as u16,
addr_10bit_en: 0, // For now; to become configurable with embedded-hal V1.0 addr_10bit_en: 0, // For now; to become configurable with embedded-hal V1.0
..Default::default()
}, },
}, },
..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>, pins: Pins<SCLK, SDO, SDI, CS>,
config: config::Config, config: config::Config,
) -> Result<Self, EspError> { ) -> Result<Self, EspError> {
#[cfg(esp_idf_version = "4.4")]
let bus_config = spi_bus_config_t { let bus_config = spi_bus_config_t {
flags: SPICOMMON_BUSFLAG_MASTER, 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(), mosi_io_num: SDO::pin(),
miso_io_num: if pins.sdi.is_some() { SDI::pin() } else { -1 }, miso_io_num: if pins.sdi.is_some() { SDI::pin() } else { -1 },
sclk_io_num: SCLK::pin(),
quadwp_io_num: -1, quadwp_io_num: -1,
quadhd_io_num: -1, quadhd_io_num: -1,
//max_transfer_sz: SPI_MAX_TRANSFER_SIZE, //max_transfer_sz: SPI_MAX_TRANSFER_SIZE,
..Default::default() ..Default::default()
}; };