7个版本 (稳定版)

2.1.0 2021年5月23日
2.0.1 2021年5月21日
1.0.1 2021年5月20日
0.1.0 2020年9月24日
0.0.0 2020年9月22日

#1835 in 嵌入式开发


syscon-rs中使用

MIT许可证

10KB
94

mmio

Crates.io Docs.rs CI

执行内存映射I/O的抽象。

行为准则

请参阅Rust行为准则

贡献

请参阅CONTRIBUTING.md

变更日志

请参阅CHANGELOG.md

许可证

请参阅LICENSE.md


lib.rs:

执行内存映射I/O的抽象。

内存映射I/O (MMIO)需要处理原始指针和易失性内存访问,这两者都需要手动推理安全性。此包提供VolBox(发音为"volatile box")智能指针,用于表达对易失性内存位置的唯一所有权。此外,它遵循"不安全初始化,安全使用"模式,在VolBox::new之后将安全性推理卸载到借用检查器。

重要的是,此包小心地从不创建对易失性内存位置的引用

示例

let mut thr = unsafe {
    VolBox::<u8, Allow, Allow>::new(0x1000_0000 as *mut u8)
};
let lsr = unsafe {
    VolBox::<u8, Allow, Allow>::new(0x1000_0005 as *mut u8)
};
loop {
    if lsr.read() & 0x20 != 0x0 {
        break;
    }
}
thr.write(b'\n');

无运行时依赖项