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中使用
10KB
94 行
mmio
执行内存映射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');