Repository navigation
machine: keep RP2 PLL calculations out of startup - #5837
Conversation
|
I wonder if there's some sort of pragma or compile option we could add to be able to hunt these things out across all the platforms. |
jinx; I have a sketch of a //go:compiletime pragma which will explode if the function is still present by link time. |
|
@davecheney please see this error on Windows https://github.com/tinygo-org/tinygo/actions/runs/37575262876/job/113295674067?pr=5837#step:16:10 |
75b1d4c to
b5ca9a7
Compare
|
@deadprogram PTAL. The windows failure was caused by git on windows converting testdata/ files from \n, to \r\n automagically. There are 11 existing workarounds for this in the codebase. I added a 12th. I'm going to take a separate pass tomorrow to try to fix the underlying problem. |
|
Thanks for working on this @davecheney. I ran the tests on my local machine and took a good look. The following is edited from an automated review:
Sounds OK? |
RP2040 and RP2350 PLL table generation exceeds interp's default loop limit, leaving clock calculations in firmware startup. Split the per-product search so the calculations complete at compile time.
b5ca9a7 to
e664a9e
Compare
|
@deadprogram PTAL. I've simplified the commit, dropping most of the testing and keeping the critical part - splitting genTable into two functions. The remaining test is simply double underpants that this doesn't regress. I'm working on a replacement that will add a //go:compiletime annotation which will remove the need for the test. |
deadprogram
left a comment
There was a problem hiding this comment.
Looking good now thank you very much @davecheney for your fine efforts. Now merging.
Fixes #5836
RP2040 and RP2350 PLL table generation exceeds interp's default loop limit, leaving clock calculations in firmware startup.
Split the per-product search so the calculations complete at compile time.