25 个版本
0.1.24 | 2024年1月14日 |
---|---|
0.1.23 | 2023年8月8日 |
0.1.21 | 2023年7月19日 |
0.1.15 | 2023年3月14日 |
0.1.12 | 2022年11月26日 |
#108 in 硬件支持
每月26 次下载
用于 6 crates
9.5MB
140K SLoC
UTRA (清晰薄寄存器抽象) 库Crate
utralib
负责将硬件目标规范映射到硬件使用的物理内存位置集合。
映射来自一个 SVD 文件。SVD文件是一组寄存器和字段的XML描述,已被LiteX采用,但也被其他硅供应商广泛使用,如 ST。
Rust强烈反对 自动生成源内容,因此此Crate预先从SVD文件生成各种配置并将它们存储在目录"generated"中。
但是,如果源SVD文件被修改,生成的UTRA描述将自动重新生成,因此在开发过程中,可以替换一个SVD文件并期望生成的.rs文件自动更新以反映更改的SVD文件。
目标选择
目标选择是通过一对标志完成的,一个指定了通用目标,另一个将其缩小到目标的特定版本。
对于传统的硅平台,修订几乎从不改变。对于FPGA平台,修订可以改变,这里采用的习惯是使用32位gitrev指定修订。因为32位命名空间相当小,所以目标名称仍然与修订指定器捆绑在一起。
因此,为了完全指定Precursor目标,需要传递两个标志
--features precursor
:指定目标--features precursor-c809403
:指定修订
目标指定器旨在简化顶级Crate关于使用哪个模块来实现硬件功能的决策。
修订是为了非常特定的情况提供的,在这种情况下,一个硬件特性可能或可能不在FPGA SoC的特定修订版中存在。
功能系统也可以(被)用于,例如,指定STM32系列及其特定芯片配置,包括修订版本。
维护者注意事项
在发布包之前,构建所有可能的配置,以确保静态生成的文件是最新的。
cargo build
cargo build --no-default-features --features renode
cargo build --no-default-features --features hosted
cargo build --no-default-features --features precursor --features precursor-pvt
cargo build --no-default-features --features atsama5d27
这可能需要首先手动发布svd2utra,因为它是本包的依赖项。