[][src]Crate svd_expander

Expands arrays and resolves inheritance chains in CMSIS-SVD specifications.

Example usage:

use std::fs::File;
use std::io::Read;
use svd_expander::DeviceSpec;
 
fn main() {
    let xml = &mut String::new();
 
    File::open("./stm32f303.svd")
        .unwrap()
        .read_to_string(xml)
        .unwrap();
 
    println!("{:#?}", DeviceSpec::from_xml(xml).unwrap());
}

This crate is intended for use in code generators. It is under active development and bug reports are welcome.

Feature requests may be considered, but svd-expander depends on svd-parser (at least for now) to parse the SVD files, so it can only implement the features supported by the parser.

Structs

AddressBlockSpec

Describes an address range uniquely mapped to a peripheral.

ClusterSpec

Describes a cluster of registers that exist on a peripheral. Clusters may be top-level constructs of a peripheral or may be nested within other clusters.

CpuSpec

Describes the processor included in the microcontroller device.

DeviceSpec

Represents information about a device specified in a CMSIS-SVD file.

FieldSpec

Describes a field on a register.

InterruptSpec

Describes an interrupt that exists on a peripheral.

PeripheralSpec

Describes a peripheral on a device.

RegisterSpec

Describes a register. Registers may be top-level constructs of a peripheral or may be nested within register clusters.

SvdExpanderError

Error struct for all errors thrown by this crate or the crates on which it depends.

Enums

AccessSpec

Defines access rights for fields on the device, though it may be specified at a higher level than individual fields.

EndianSpec

Defines the endianness of a CPU.

Type Definitions

SvdExpanderResult

Convenience type for a result that may contain an SvdExpanderError.