10 个版本 (5 个重大变更)
0.6.0 | 2024 年 4 月 28 日 |
---|---|
0.5.0 | 2024 年 4 月 17 日 |
0.4.4 | 2024 年 4 月 11 日 |
0.4.2 | 2024 年 3 月 22 日 |
0.1.0 | 2024 年 1 月 28 日 |
在 嵌入式开发 中排名第 360
每月下载量 26 次
1MB
33K SLoC
svd-generator
用于从扁平化的设备树文件解析设备信息并生成 CMSIS-SVD 描述的转换工具。
构建
使用标准的 Rust 工作流程进行构建
$ cargo build [--release]
运行
svd-generator
生成 CLI 二进制文件,您可以使用以下命令运行
# Using `cargo-run`
$ cargo run -- -f <flatted-device-tree.dtb> [-o <output.svd>]
# Running directly using the binary file
$ svd-generator -f <flattened-device-tree.dtb> [-o <output.svd>]
默认输出文件是 out.svd
。
帮助信息
$ svd-generator -h
添加已知外设
只有已知外设才会添加 SVD 条目。
这是因为设备树文件中不包含寄存器定义。
寄存器定义通常从供应商提供的手册、固件/内核源代码和/或硬件定义(VHDL、Verilog 等)中解析。
目前,支持的已知外设数量有限。它们可以用作添加新外设的示例。
外设定义应放在 svd/peripheral 目录下作为模块。
例如,Synsopsys DesignWare APB I2C 外设定义:dw_apb_i2c。
新外设应遵循传统的 Rust 模块命名模式
- 外设模块:
src/svd/peripheral/<peripheral-model-name>.rs
- 外设子模块:
src/svd/peripheral/<peripheral-model-name>/
- 外设寄存器子模块:
src/svd/peripheral/<peripheral-model-name>/registers.rs
- 外设寄存器定义:
src/svd/peripheral/<peripheral-model-name>/registers/{<reg0-name>.rs, <reg1-name>.rs}
以这种方式定义外设应允许在不同 SoC/板之间具有高度的复用性。
新条目也应添加到兼容
枚举中:tree/compatible。
进行中
目前,仅支持二进制编码的扁平化设备树(.dtb)。
正在努力支持源编码的设备树(.dts)。
依赖项
~4–14MB
~150K SLoC