initial commit

This commit is contained in:
Luca 2024-01-13 03:04:08 +01:00
commit c79c65424c
5 changed files with 294 additions and 0 deletions

12
.cargo/config.toml Normal file
View File

@ -0,0 +1,12 @@
[build]
target = "riscv32ec-unknown-none-elf"
[target.riscv32ec-unknown-none-elf]
runner = "wlink -v flash --enable-sdi-print"
rustflags = [
"-C", "link-arg=-Tlink.x",
"-C", "opt-level=s",
]
[unstable]
build-std = ["core", "compiler_builtins"]

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target

233
Cargo.lock generated Normal file
View File

@ -0,0 +1,233 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "bit_field"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
[[package]]
name = "ch32v0"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ff5bb4d8b8f1b3a2efb017507f2ee3abb5f69c16df30f21b329a2402bb9901e"
dependencies = [
"critical-section",
"riscv",
"vcell",
]
[[package]]
name = "ch32v003-test"
version = "0.1.0"
dependencies = [
"ch32v00x-hal",
"embedded-hal 0.2.7",
"panic-halt",
"qingke-rt",
]
[[package]]
name = "ch32v00x-hal"
version = "0.1.0"
source = "git+https://github.com/lujoga/ch32v00x-hal.git?branch=qingke-rt#7d0751742dd47b503d857c78f9f7244b057391eb"
dependencies = [
"ch32v0",
"critical-section",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0-rc.1",
"fugit",
"fugit-timer",
"nb 1.1.0",
"qingke",
]
[[package]]
name = "critical-section"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
[[package]]
name = "embedded-hal"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff"
dependencies = [
"nb 0.1.3",
"void",
]
[[package]]
name = "embedded-hal"
version = "1.0.0-rc.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2894bc2f0457b8ca3d6b8ab8aad64d9337583672494013457f86c5a9146c0e22"
[[package]]
name = "fugit"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17186ad64927d5ac8f02c1e77ccefa08ccd9eaa314d5a4772278aa204a22f7e7"
dependencies = [
"gcd",
]
[[package]]
name = "fugit-timer"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9607bfc4c388f9d629704f56ede4a007546cad417b3bcd6fc7c87dc7edce04a"
dependencies = [
"fugit",
"nb 1.1.0",
]
[[package]]
name = "gcd"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
[[package]]
name = "nb"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f"
dependencies = [
"nb 1.1.0",
]
[[package]]
name = "nb"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d"
[[package]]
name = "panic-halt"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812"
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"syn",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro2"
version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
dependencies = [
"unicode-ident",
]
[[package]]
name = "qingke"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "310db40c1e32b18af583b7f84036d819e804e01004628b60dfb1c908b1fcd5c6"
dependencies = [
"bit_field",
"riscv",
]
[[package]]
name = "qingke-rt"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1effb507fe025260cbd7d7cbfdf1c77fd2e107919a1f7d64aed02f4e61e5b22"
dependencies = [
"qingke",
"qingke-rt-macros",
]
[[package]]
name = "qingke-rt-macros"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47d84a2334539f5e02dc7d1eb01087e1fe1a5b1db66a40858d4142e0b63c74fc"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "quote"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
[[package]]
name = "riscv"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa3145d2fae3778b1e31ec2e827b228bdc6abd9b74bb5705ba46dcb82069bc4f"
dependencies = [
"bit_field",
"critical-section",
"embedded-hal 0.2.7",
]
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "vcell"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"

12
Cargo.toml Normal file
View File

@ -0,0 +1,12 @@
[package]
name = "ch32v003-test"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ch32v00x-hal = { git = "https://github.com/lujoga/ch32v00x-hal.git", branch = "qingke-rt", features = ["ch32v003", "rt"] }
embedded-hal = "0.2.7"
panic-halt = "0.2.0"
qingke-rt = "0.1.7"

36
src/main.rs Normal file
View File

@ -0,0 +1,36 @@
#![no_std]
#![no_main]
use ch32v00x_hal as hal;
use embedded_hal::blocking::delay::DelayUs;
use hal::println;
use hal::debug::SDIPrint;
use hal::delay::CycleDelay;
use hal::pac::Peripherals;
use hal::prelude::*;
use panic_halt as _;
#[qingke_rt::entry]
fn main() -> ! {
SDIPrint::enable();
let p = Peripherals::take().unwrap();
let mut rcc = p.RCC.constrain();
let clocks = rcc.config.freeze();
let gpioc = p.GPIOC.split(&mut rcc);
let mut led = gpioc.pc1.into_push_pull_output();
println!("Hello, world!\r");
let mut delay = CycleDelay::new(&clocks);
loop {
println!(".\r");
led.toggle();
delay.delay_us(500_000u32);
}
}