6 个版本
使用旧Rust 2015
0.2.2 | 2023年10月20日 |
---|---|
0.2.1 | 2021年8月14日 |
0.2.0 | 2017年3月8日 |
0.1.2 | 2016年10月15日 |
0.1.1 | 2016年9月28日 |
#75 在 硬件支持 中
108,063 每月下载量
在 1,317 个包(22 个直接) 中使用
10KB
56 行
volatile-register
对内存映射硬件寄存器的易失性访问
文档
许可证
在以下任一许可证下发布
- Apache License,版本2.0 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。
贡献
除非你明确声明,否则根据Apache-2.0许可证定义,你提交给工作的任何有意贡献都应按上述方式双重许可,而不附加任何额外条款或条件。
lib.rs
:
对内存映射硬件寄存器的易失性访问
用法
use volatile_register::RW;
// Create a struct that represents the memory mapped register block
/// Nested Vector Interrupt Controller
#[repr(C)]
pub struct Nvic {
/// Interrupt Set-Enable
pub iser: [RW<u32>; 8],
reserved0: [u32; 24],
/// Interrupt Clear-Enable
pub icer: [RW<u32>; 8],
reserved1: [u32; 24],
// .. more registers ..
}
// Access the registers by casting the base address of the register block
// to the previously declared `struct`
let nvic = 0xE000_E100 as *const Nvic;
// Unsafe because the compiler can't verify the address is correct
unsafe { (*nvic).iser[0].write(1) }
依赖项
~7KB