Releases: darsor/PeakRDL-rust
v0.7.3
PeakRDL-rust v0.7.3
Fixed
peakrdl-rust-buildcrate now uses host arch instead of target arch to determine whichpeakrdl-rustbinary to download (#13).
Full Changelog: v0.7.2...v0.7.3
v0.7.2
PeakRDL-rust v0.7.2
Added
access_modeparameter to control whether software or hardware access permissions are used. (#3)read_onlyparameter to force all registers/fields to be treated as read-only. (#3)
Fixed
- Generate self-contained
usestatements that don't rely on the module structure outside the generated code. (#9)
New Contributors
Full Changelog: v0.7.1...v0.7.2
v0.7.1
PeakRDL-rust v0.7.1
Fixed
- Lifetimes returned by component getter methods are properly set to the parent's lifetime.
Full Changelog: v0.7.0...v0.7.1
Full Changelog: v0.7.0...v0.7.1
v0.7.0
PeakRDL-rust v0.7.0
This release adds the ability to specify a custom register access implementation via generic. This allows things like mocked registers and tunneled registers.
Changed
- Require peakrdl-rust dependency crate >=0.2.0, <0.3.0
MemEntryandMemEntryIterare now generic over the memory type instead of access and endianness.- Addrmaps, regfiles, and memories are now generic over a
RegisterIOtype, allowing custom register access implementations.
Full Changelog: v0.6.2...v0.7.0
Full Changelog: v0.6.2...v0.7.0
v0.6.2
PeakRDL-rust v0.6.2
Fixed
- Typo in downloaded binary name in
peakrdl-rust-buildcrate
Full Changelog: v0.6.1...v0.6.2
v0.6.1
PeakRDL-rust v0.6.1
This release is a major refactor of how this project is expected to be used. Instead of directly using the peakrdl command line tool, the recommended method for generating register access code is using the new peakrdl-rust-build crate to run the generator from your crate's build.rs file. This provides a lot more flexibility integrating into existing codebases, for example:
- Multiple exports can be used in a single crate with different module paths
- Automatically handles rebuilding registers when RDL sources change
- Can automatically download a peakrdl-rust binary from GitHub so no need to install anything
Note: Release v0.6.0 was skipped due to issues setting up publishing of the new crates.
⚠️ DANGER: Due to changes in how the--forceflag works, updating to this version without changing your configuration can cause the tool to wipe out your entire cargo workspace. Please update the output directory as described below.⚠️
Changed
- Moved common traits/types to new peakrdl-rust crate dependency.
- No longer generates full Rust crate with Cargo.toml. Now only generates mod.rs and component files.
- Generated code is now placed directly into the specified output directory, not in a new subfolder within the output directory.
- The
--forceconfiguration option will now delete the entire output directory, not just a subfolder within that directory. - Formatting the generated code using rustfmt is now opt-in intead of opt-out.
Added
- Public
Registertrait withfrom_rawandto_rawfunctions. - Compile-time
peakrdl-rustcrate dependency version checks. peakrdl-rust-buildbuild-helper crate to run PeakRDL-rust inbuild.rs.--fmtconfiguration option (replaces--no-fmt).
Removed
--crate-nameconfiguration option--crate-versionconfiguration option--no-fmtconfiguration option (use--fmtinstead)- Autogenerated integration tests (only unit tests are generated)
Full Changelog: v0.5.1...v0.6.1
What's Changed
New Contributors
Full Changelog: v0.5.1...v0.6.1
v0.5.1
PeakRDL-rust v0.5.1
Fixed
- Byte and word endianness command line options are now respected
Full Changelog: v0.5.0...v0.5.1
v0.5.0
PeakRDL-rust v0.5.0
Added
- Command line option to override byte or word endianness
- All command line options can now be specified in the
peakrdl.tomlconfiguration file
Changed
- Accesses on Memory components now use the configured byte endianness
- Generated type names don't case convert the normalization suffix (if present)
Full Changelog: v0.4.1...v0.5.0
v0.4.1
PeakRDL-rust v0.4.1
Fixed
- Use
wrapping_byte_addinstead ofbyte_addto avoid provenance/dangling pointer compile errors
Full Changelog: v0.4.0...v0.4.1
v0.4.0
PeakRDL-rust v0.4.0
Added
- Tests now treat pedantic clippy lints as errors
- Derive common traits for
MemEntrystruct - Examples in sphinx documentation, including generated crate's cargo docs
- Top-level nodes are publicly re-exported at the crate root
Changed
- Refactored
Memorytrait to be consistent with no-owned-struct approach used by other component types - Components named
mod(a rust keyword) are now escaped asmod_instead ofr#modto avoid generating files namedmod.rs - Rename memory component
len()method tonum_entries() UnknownVariant<T>is now a public tuple struct- Handled all pedantic clippy lints
Removed
MemEntrystruct methodswidth()andmask()(use width method on theMemoryitself)
Fixed
- Field getters were not
pubin several instances
Full Changelog: v0.3.0...v0.4.0