All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Newer releases see in svd-rs/CHANGELOG.md, svd-parser/CHANGELOG.md and svd-encoder/CHANGELOG.md.
v0.11.0 - 2021-10-02
- [breaking-change] Split
svd-parser
onsvd-rs
,svd-parser
andsvd-encoder
- [breaking-change] Use
roxmltree
insvd-parser
instead ofxmltree
for fast parsing and better error debug.Parse
trait now requiresConfig
- [breaking-change] Bump
xmltree
insvd-encoder
to 0.10. - Fixed cluster encoding
- Added
as_str
/parse_str
for simple enums - Added
indexes
iterator forDimElement
- For structs with builders added
modify_from
method,validate
now public - [breaking-change]
build
andmodify_from
takeValidateLevel
- [breaking-change] multiple
addressBlocks
now supported inPeripheral
- Added custom
serde
(de)serializers forBitRange
,Register
,Cluster
andField
.camelCase
andkebab-case
are used where it's needed to be more like SVD. - [breaking-change]
Parse
,Encode
implementation are moved in separate modules, same with tests. Builders andEncode
's use enum errors now instead of dynamicalanyhow
. - [breaking-change] change encode format of some numbers to be more compatible with STM vendor's SVDs
- [breaking-change] resort tags when encode
- [breaking-change] Use
RegisterProperties
inRegisterInfo
,Peripheral
ndDevice
instead of separatesize
,access
,reset_value
andreset_mask
v0.10.2 - 2021-04-30
- Allow single valued
dimIndex
- Added
reg_iter
,reg_iter_mut
methods onPeripheral
andCluster
- Added
DerefMut
forCluster
,Register
andField
- Added
display_name
toRegisterInfo
- Added implementations of
From<Type>
forTypeBuilder
's
v0.10.1 - 2021-04-17
- Added
DeriveFrom
implementation forFieldInfo
v0.10.0 - 2021-04-04
- Added
strict
feature that hides part of checks - Builder pattern now is used for creating structures
- Peripherals are processed in parallel with
rayon
- Serde now skips empty tags
- Fix: bug in
addressUnitBits
- Fix: panic with 32 bit wide fields that have enumerated values
- Fix: produce error on 0-width fields
- Fix: error instead of panic when an array/cluster name is missing the
%s
placeholder - [breaking-change] Add support for 64 addresses, register values, enum values and writeConstraints
- [breaking-change] Remove unproven flag
v0.9.0 - 2019-11-17
- [breaking-change] make
ClusterInfo
description
optional - [breaking-change] use
anyhow
Error instead offailure
v0.8.1 - 2019-11-03
- Fix: make
derive_from
module public - Fix: enumerated_values empty check
v0.8.0 - 2019-11-03
- [breaking-change]
RegisterClusterArrayInfo
renamed onDimElement
- [breaking-change]
Defaults
field renamed onRegisterProperties
and added intoPeripheral
andClusterInfo
- [breaking-change]
Field
splitted onField
enum andFieldInfo
struct to support field arrays - Added
derived_from
intoField
andClusterInfo
- [breaking-change] implement
DeriveFrom
forClusterInfo
,RegisterInfo
andEnumeratedValues
- Updated dependencies, use
Edition 2018
- Added missing
zeroToToggle
- Added serializing/deserializing with
serde
v0.7.0 - 2019-01-11
- [breaking-change] Major Refactor
- Split SVD components into modules
- Improved error handling
- Added
untested
encoding functions - Added a bunch of missing fields
- Added (and fixed) derivedFrom
- Made register description optional
v0.6.0 - 2018-02-24
-
Accept both 'X' and 'x' as "don't care" bits in literals.
-
Parse clusters of registers
v0.5.2 - 2017-07-04
- A CPU field to the Device struct
v0.5.1 - 2017-04-29
- A WriteConstraint field to the RegisterInfo struct.
v0.5.0 - 2017-04-23
- [breaking-change] A WriteConstraint field to the Field struct.
- [breaking-change]. Added a private field to Device, Peripheral, RegisterInfo, RegisterArrayInfo, Defaults, EnumeratedValues and EnumeratedValue to be able to add more fields to them in the future without technically breaking backward compatibility.
v0.4.0 - 2017-04-03
- The type of
Peripheral.interrupt
changed fromOption<Interrupt>
toVec<Interrupt>
to properly reflect what the SVD allows.
v0.3.0 - 2017-02-18
- The type of
Field.enumeratedValues
changed fromOption<EnumeratedValues>
toVec<EnumeratedValues>
to properly reflect what the SVD allows.
v0.2.0 - 2016-12-21
- Support for "register arrays". This converted the
struct Register
into anenum
(to represent normal registers and register arrays) thus breaking construction of this item (which should be pretty rare).
v0.1.2 - 2016-12-07
- Implemented
Copy
andClone
for several structs
v0.1.1 - 2016-10-09
- the description of this crate
- Initial SVD parser
- A
parse
utility function to parse the contents of a SVD file (XML)