#中断 #RISC-V #软件

riscv-slic

RISC-V 软件级中断控制器

2个版本

0.1.1 2024年4月4日
0.1.0 2024年3月20日

#707 in 嵌入式开发

Download history 18/week @ 2024-05-02 13/week @ 2024-05-16 68/week @ 2024-05-23 10/week @ 2024-05-30 35/week @ 2024-06-13 24/week @ 2024-06-20 3/week @ 2024-06-27 1/week @ 2024-07-04 22/week @ 2024-07-11 1/week @ 2024-07-18 54/week @ 2024-08-01 3/week @ 2024-08-08 28/week @ 2024-08-15

每月 85次下载

MIT许可证

17KB
197 代码行

crates.io crates.io

riscv-slic

Crate为RISC-V目标启用由PLIC启发的软件中断向量处理。

此Crate创建了一个软件中断向量,其中断源数量由用户请求。每个软件中断源都可以独立启用/禁用,并且可以为每个中断源分配不同的优先级。优先级0保留用于禁用中断。默认情况下,所有软件中断源都设置为优先级0。最大允许的优先级为255。此外,您可以设置软件中断优先级阈值。只有优先级高于阈值的中断源才会引起中断。阈值为0表示所有活动的中断源都可以引起中断。另,阈值为255表示没有中断源会引起中断。

如果您挂起一个优先级高于当前阈值的软件中断源,它将导致您的RISC-V处理器发生软件中断。软件中断的触发方式取决于您的目标,您需要在编译此Crate时激活适当的功能。如果您的目标有CLINT外设,您可以激活clint-backend功能。目前,这是使用此Crate的唯一支持方式。如果您希望其他特定目标与riscv-slic一起工作,请在GitHub上打开一个问题或RFC。

文档

最低支持的Rust版本 (MSRV)

此Crate保证在稳定版Rust 1.75及以上版本上编译。它可能可以与较旧版本编译,但这可能在任何新的补丁版本中更改。

依赖项

~0.9–1.4MB
~30K SLoC