[package]
edition = "2024"
rust-version = "1.88"
name = "hisi-hal"
version = "0.7.0-alpha.3"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Hardware Abstraction Layer for HiSilicon WS63 (RISC-V RV32IMFC_Zicsr)"
readme = "README.md"
keywords = [
"ws63",
"hisilicon",
"riscv",
"embedded",
"hal",
]
categories = [
"embedded",
"no-std",
"hardware-support",
]
license = "MIT"
repository = "https://github.com/hispark-rs/hisi-hal"
[package.metadata.docs.rs]
default-target = "riscv32imfc-unknown-none-elf"
features = [
"chip-ws63",
"rt",
"async",
"embassy",
"unstable",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
async = [
"dep:embedded-hal-async",
"dep:embedded-io-async",
"dep:critical-section",
]
chip-bs21 = [
"dep:bs2x-pac",
"hisi-riscv-rt/chip-bs21",
]
chip-ws63 = [
"dep:ws63-pac",
"dep:critical-section",
"hisi-riscv-rt/chip-ws63",
"hisi-riscv-rt/boot-header",
"hisi-riscv-rt/bundled-memory-x",
]
default = [
"rt",
"dep:critical-section",
]
defmt = ["dep:defmt"]
embassy = [
"dep:critical-section",
"dep:embassy-time-driver",
"dep:embassy-time-queue-utils",
]
hil-loopback = []
hil-rtc = []
rt = [
"dep:critical-section",
"ws63-pac?/rt",
"bs2x-pac?/rt",
]
unstable = []
[lib]
name = "hisi_hal"
path = "src/lib.rs"
[[test]]
name = "hil"
path = "tests/hil.rs"
harness = false
[dependencies.bs2x-pac]
version = "0.1.2"
features = ["critical-section"]
optional = true
default-features = false
[dependencies.cfg-if]
version = "1"
[dependencies.critical-section]
version = "1"
optional = true
[dependencies.defmt]
version = "0.3"
optional = true
[dependencies.embassy-time-driver]
version = "0.2"
optional = true
[dependencies.embassy-time-queue-utils]
version = "0.3"
features = ["generic-queue-16"]
optional = true
[dependencies.embedded-dma]
version = "0.2"
[dependencies.embedded-hal]
version = "1.0.0"
[dependencies.embedded-hal-async]
version = "1.0"
optional = true
[dependencies.embedded-hal-nb]
version = "1.0"
[dependencies.embedded-io]
version = "0.6"
[dependencies.embedded-io-async]
version = "0.6"
optional = true
[dependencies.instability]
version = "0.3.12"
[dependencies.nb]
version = "1"
[dependencies.portable-atomic]
version = "1"
features = ["critical-section"]
default-features = false
[dependencies.ws63-pac]
version = "0.4.0"
features = ["critical-section"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "riscv32"))'.dev-dependencies.critical-section]
version = "1"
features = ["std"]
[target.'cfg(not(target_arch = "riscv32"))'.dev-dependencies.proptest]
version = "1"
[target.'cfg(target_arch = "riscv32")'.dev-dependencies.embedded-test]
version = "0.7"
[target.'cfg(target_arch = "riscv32")'.dev-dependencies.embedded-test-linker-script]
version = "0.1"
[target.'cfg(target_arch = "riscv32")'.dev-dependencies.hisi-riscv-rt]
version = "0.5.5"
default-features = false
[target.'cfg(target_arch = "riscv32")'.dev-dependencies.portable-atomic]
version = "1"
features = ["critical-section"]
default-features = false
[target.'cfg(target_arch = "riscv32")'.dev-dependencies.semihosting]
version = "0.1"
features = ["stdio"]