RFC: Introduce components for chips #4633
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Overview
Right now instantiating chips in boards' main.rs is straightforward for two reasons:
static mut
buffers declared within the chip crateHowever, if we look at what it would take to remove
static mut
buffers from the nrf52 crate (which does use DMA), we would need to pass in at least 4 buffers (maybe 5) buffers into the chip. Those need to bestatic_init
d in main.rs. That type of initialization complexity is what we added components for; components enable encapsulating the setup to a single file.I think we can introduce components into chips. Note, chips do not use the components. They simply provide them for the boards to use.
Testing Strategy
todo
TODO or Help Wanted
What do you think? I think this nicely decouples default peripherals from the chip. Chips could have any number of default peripheral combinations, and then the associate component to instantiate them.
Documentation Updated
/docs
, or no updates are required.Formatting
make prepush
.