I2C target/board configuration is currently spread in a lot of places
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- rust
- Domain
- build-system, embedded-iot
Research direction
Start by reading the stm32xx-i2c code and the build/i2c codegen mentioned in the issue, then trace where processor features and conditional use statements are configured. Document the board, processor, clock, and bus-speed assumptions before proposing a central configuration point. Done means the configuration is no longer scattered and build/i2c has enough documentation to explain its behavior.
Written by the indexing model from the issue text.
Description
I'm adding support for another STM32G0 board in I2C, and it's requiring a bit of a "shotgun" change that has caused me to notice some things.
- We have to add processor features and conditional
usestatements in a lot of places. We could almost certainly centralize this into a single place that everything depends on. - In
stm32xx-i2cthere are a lot of calculations that are keyed on processor type that are actually setting things specific to a particular board or application -- particularly the waveform timing calculations. The current code assumes that a given processor is always going to run at the same clock speed, and always want its bus to run at the same speed, neither of which are valid assumptions, really. build/i2c's codegen could use more docs. I've updated it for the new target but I don't really understand what it's doing.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from oxidecomputer/hubris
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
oxidecomputer/hubris#2593 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
oxidecomputer/hubris#2577 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
oxidecomputer/hubris#2699 ·
-
⚠️ ereport control-plane-agent root-of-trust service processor
Difficulty 5/5 Over a week Newbie friendliness 25/100
oxidecomputer/hubris#2698 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
oxidecomputer/hubris#2689 ·
All issues in oxidecomputer/hubris
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100