Crate ral_gen[−][src]
Code generator for ral crate
How to install
$ cargo install ral-gen
How to use
$ cargo ral-gen --svd <svd file location> --overrides <yml file location> --out <target project directory>
or short form
$ cargo ral-gen -i <svd file location> -e <yml file location> -o <target project directory>
Overrides
Overrides can be specified in separate yaml
file of the following structure
name: <alternate device name> // Must be identifier
description: <alternate device description>
peripherals:
<peripheral name>: // as can be found in .svd file
name: <alternate peripheral name> // Must be identifier
description: <alternate peripheral description>
features: // List of features for conditional compilation, e.g. packaging names
- <feature1> // to exclude peripheral if it's not available
- <feature2>
clusters:
<cluster name>: // as can be found in .svd file
name: <alternate cluster name> // Must be identifier
description: <alternate cluster description>
features: // List of features for conditional compilation, e.g. packaging names
- <feature1> // to exclude cluster if it's not available
- <feature2>
registers:
<register name>: // as can be found in .svd file
name: <alternate register name> // Must be identifier
description: <alternate register description>
features: // List of features for conditional compilation, e.g. packaging names
- <feature1> // to exclude register if it's not available
- <feature2>
uses: // use expressions required for field type overrides
- crate_name::types::CustomType
fields:
<field name>: // as can be found in .svd file
name: <alternate field name> // Must be identifier
description: <alternate field description>
type: CustomType // Required use expression must be specified in register's uses section
All fields are optional
What will be generated
Module structure described in ral-macro crate documentation will be generated
Also Cargo.toml
will be generated with content
[package]
name = "<device name in lowercase>"
description = "<device description if present>"
version = "<ral-gen version>"
edition = "2018"
[dependencies]
ral = "<ral-gen version>"
[features]
feature1 = []
feature2 = []
Functions
generate | Generates module structure |