Crates.io | patch-svd |
lib.rs | patch-svd |
version | 0.1.0 |
source | src |
created_at | 2020-07-21 21:06:29.361038 |
updated_at | 2021-04-18 20:26:43.820174 |
description | Load and patch svd files. |
homepage | |
repository | https://github.com/VilNeo/patch-svd |
max_upload_size | |
id | 267775 |
size | 1,975,318 |
patch-svd is a library that reads and patches SVD files from microcontroller manufacturers.
The motivation of this library is to get rid of errors in SVD files of individual microcontrollers that are shipped by the corresponding manufacturers.
Technically, this library performs three steps:
The syntax of the patch file format is documented in the crate patch-xml.
Currently, patch-svd will require the unstable Rust toolchain because the external_doc
-feature is used.
The current state of this feature depends on this pull request.
let svd = r#"
<device>
<schemaVersion>1.0.0</schemaVersion>
<name>ucName</name>
<version>1.0.0</version>
<description>Some description</description>
<cpu>
<name>CM0</name>
<revision>r4</revision>
<endian>little</endian>
<mpuPresent>true</mpuPresent>
<fpuPresent>true</fpuPresent>
<nvicPrioBits>8</nvicPrioBits>
<vendorSystickConfig>true</vendorSystickConfig>
</cpu>
<addressUnitBits>32</addressUnitBits>
<width>32</width>
<peripherals>
<peripheral>
<name>PeripheralName</name>
<baseAddress>77</baseAddress>
</peripheral>
</peripherals>
</device>
"#;
let patch = r#"
device:
$modify:
description: "Some other description"
"#;
// Load SVD content, patch it and return it as Device structure
let result : patch_svd::output::Device =
patch_svd::get_patched_svd(svd.to_string(), patch.to_string()).unwrap();