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

MIT/Apache

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,因为它是本包的依赖项。

无运行时依赖