-
Notifications
You must be signed in to change notification settings - Fork 1.3k
STM32: Add timer allocator, PulseIO adjustments #3099
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@jepler this is ready for your review now, alongside adafruit/Adafruit_Protomatter#14 |
@jepler Can be the sole reviewer. @hierophect you'll want to check fix the CI. |
@tannewt sounds good. Translations fix pushed, hopefully that will resolve CI issue. I'm currently investigating a PulseIn regression on |
protomatter will need to be updated to remove the hard coded IRQHandler, and the one in CircuitPython will need to call into protomatter. Tag me on discord if this doesn't make sense. |
Requires adafruit/Adafruit_Protomatter#14 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some suggestions of things to change or double check.
Protomatter submodule update looks right, gitk says:
> Fix NRF compile warning issue
> Merge branch 'master' into cpy-timer-allocator
> cpy-timer-allocator
> Merge pull request #12 from adafruit/teensy4
> Merge pull request #9 from adafruit/actionsci
> Merge pull request #7 from jepler/circuitpython-build-fix
> Merge pull request #8 from adafruit/esp32
> Fix clang-format detail
> clang-format the lot
> Use TC3 on SAMD's that lack a TC4
> Create .travis.yml
> Doxygenate
> Update README.md for Travis and library.properties for version #
This requires adafruit/Adafruit_Protomatter#14 to be merged before this can be merged.
Testing performed: None
Where is this PR at? |
@tannewt I put it down to wrap up PWMOut on the ESP32-S2, still gotta address Jeff's comments. Probably can get that done today or early tomorrow. |
I can rereview when you're ready, @ me |
@jepler Ok this passes on my machine and should be good for another review. |
The CI failure here appears to be RISCV related, so it shouldn't hold this up. |
OK, I have one semi-question, feel free to merge if the answer is "yes it's fine that way" and CI is happy. |
Everything's working and the one CI failure seems extraneous, so I've merged this. I'll keep working on the RGBMatrix fix as a separate PR. |
This PR adds a timer management system to the
peripherals/
directory, which mediates how modules are granted timers out of all timer peripherals available for a given STM32 SoC. It also adjusts the PulseIO modules to use ST's "General Purpose" and "Advanced" timers, in addition to the "Basic" ones. Once a module has claimed a timer, it cannot be used by other modules - thus, the timer search function attempts to select timers with minimal exposure to pins wherever possible.This PR is working for basic PulseIO tests, but is still incomplete. Steps remaining include:
@jepler, any advice you might have on adjusting RGBMatrix to fit this system would be appreciated.