Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Planned Breaking changes in 3.0.0 #227

@kammce

Description

@kammce
  • Move to libhal/3.0.0
  • Delete move constructors from all drivers.
    • could be relaxed in the future, but I firmly believe that managing state for moving objects, especially those with interrupt routines, takes up additional memory, is unproductive, and error prone.
  • Reduce the memory storage of ALL drivers that that hold peripheral info. This info is not necessary or used during the runtime of the object. It is only used at object construction for initialization, thus, it can be thrown away, or the use parts extracted, after construction.
  • power & clock are no longer classes but free functions. Power instances were just used for the semantics of power(thing).on() which will now be power_on(thing) which IMO actually reads better. Clock instances always refered to the singular clock tree on the system and had no real utility as a class. Pin will keep it's class API because there are multiple pins and the method chaining does actually get used and is useful.
  • all peripheral info structures will now include a pointer to the desired register, which can be used by the user but more specifically, for dependency injection of a stack allocated register file during testing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions