11 releases (4 breaking)
0.5.0 | Nov 3, 2024 |
---|---|
0.4.0 | Oct 20, 2024 |
0.3.0 | Oct 10, 2024 |
0.2.1 | May 14, 2024 |
0.1.7 | Jan 1, 2024 |
#1847 in Embedded development
760 downloads per month
Used in ch58x-hal
54KB
1K
SLoC
qingke-rt
Replaces ch32v-rt
as the name is not suitable for publishing.
QingKe is the name of the RISC-V core.
Usage
#[qingke_rt::entry]
fn main() -> ! {
loop {}
}
// Or if you are using the embassy framework
#[embassy_executor::main(entry = "qingke_rt::entry")]
async fn main(spawner: Spawner) -> ! { ... }
#[qingke_rt::interrupt]
fn UART0() {
// ...
}
// Interrupt provided by the IP core (not peripherals)
#[qingke_rt::interrupt(core)]
fn SysTick() {
// ...
}
#[qingke_rt::highcode]
fn some_highcode_fn() {
// ...
// This fn will be loaded into the highcode(SRAM) section.
// This is required for BLE, recommended for interrupt handles.
}
lib.rs
:
Differences vs the riscv-rt version
- The structure of exception handlers is different
- The structure of core interrupt handlers is different
- Hardware stack push is available, so no need to push manually
Dependencies
~2MB
~43K SLoC