Skip to content

Releases: darsor/PeakRDL-rust

v0.7.3

19 Apr 02:34
1b93736

Choose a tag to compare

PeakRDL-rust v0.7.3

Fixed

  • peakrdl-rust-build crate now uses host arch instead of target arch to determine which peakrdl-rust binary to download (#13).

Full Changelog: v0.7.2...v0.7.3

v0.7.2

07 Apr 05:00
bced412

Choose a tag to compare

PeakRDL-rust v0.7.2

Added

  • access_mode parameter to control whether software or hardware access permissions are used. (#3)
  • read_only parameter to force all registers/fields to be treated as read-only. (#3)

Fixed

  • Generate self-contained use statements 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

23 Mar 17:45
v0.7.1
a68645c

Choose a tag to compare

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

22 Mar 15:15
24f79b4

Choose a tag to compare

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
  • MemEntry and MemEntryIter are now generic over the memory type instead of access and endianness.
  • Addrmaps, regfiles, and memories are now generic over a RegisterIO type, allowing custom register access implementations.

Full Changelog: v0.6.2...v0.7.0

Full Changelog: v0.6.2...v0.7.0

v0.6.2

14 Mar 03:33
cfcc0cb

Choose a tag to compare

PeakRDL-rust v0.6.2

Fixed

  • Typo in downloaded binary name in peakrdl-rust-build crate

Full Changelog: v0.6.1...v0.6.2

v0.6.1

14 Mar 03:05
014a5a4

Choose a tag to compare

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 --force flag 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 --force configuration 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 Register trait with from_raw and to_raw functions.
  • Compile-time peakrdl-rust crate dependency version checks.
  • peakrdl-rust-build build-helper crate to run PeakRDL-rust in build.rs.
  • --fmt configuration option (replaces --no-fmt).

Removed

  • --crate-name configuration option
  • --crate-version configuration option
  • --no-fmt configuration option (use --fmt instead)
  • Autogenerated integration tests (only unit tests are generated)

Full Changelog: v0.5.1...v0.6.1

What's Changed

New Contributors

  • @darsor made their first contribution in #7

Full Changelog: v0.5.1...v0.6.1

v0.5.1

06 Jan 04:51
v0.5.1

Choose a tag to compare

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

05 Jan 15:34
v0.5.0

Choose a tag to compare

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.toml configuration 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

14 Dec 23:28
v0.4.1

Choose a tag to compare

PeakRDL-rust v0.4.1

Fixed

  • Use wrapping_byte_add instead of byte_add to avoid provenance/dangling pointer compile errors

Full Changelog: v0.4.0...v0.4.1

v0.4.0

27 Nov 19:07
v0.4.0

Choose a tag to compare

PeakRDL-rust v0.4.0

Added

  • Tests now treat pedantic clippy lints as errors
  • Derive common traits for MemEntry struct
  • Examples in sphinx documentation, including generated crate's cargo docs
  • Top-level nodes are publicly re-exported at the crate root

Changed

  • Refactored Memory trait to be consistent with no-owned-struct approach used by other component types
  • Components named mod (a rust keyword) are now escaped as mod_ instead of r#mod to avoid generating files named mod.rs
  • Rename memory component len() method to num_entries()
  • UnknownVariant<T> is now a public tuple struct
  • Handled all pedantic clippy lints

Removed

  • MemEntry struct methods width() and mask() (use width method on the Memory itself)

Fixed

  • Field getters were not pub in several instances

Full Changelog: v0.3.0...v0.4.0