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

Planned Breaking changes in 3.0.0 #227

Open
kammce opened this issue Nov 17, 2023 · 0 comments
Open

Planned Breaking changes in 3.0.0 #227

kammce opened this issue Nov 17, 2023 · 0 comments
Labels
⚙️ implementation Peripheral implementation

Comments

@kammce
Copy link
Collaborator

kammce commented Nov 17, 2023

  • 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.
@kammce kammce added the ⚙️ implementation Peripheral implementation label Nov 17, 2023
@kammce kammce self-assigned this Nov 17, 2023
@kammce kammce removed their assignment Oct 25, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
⚙️ implementation Peripheral implementation
Projects
None yet
Development

No branches or pull requests

1 participant