adafruit / seesaw

I2C friend to expand capabilities of other chips.
Other
76 stars 34 forks source link

Enable link-time optimization for reduced code-size #58

Open evtimDev opened 1 year ago

evtimDev commented 1 year ago

With link-time code optimization the linker can remove more dead code as it catches cases where code is not used across .obj boundaries. With this change Samd09breakout gets about 9% smaller code-size 16216 -> 14716 bytes, 1500 bytes smaller ~ 9% improvement! This will allow squeezing-in additional functionality with custom configs, for example this allows enabling the rotary encoder module without going over the size limit. I did manual testing through some basic functions after this change on samd09breakout with PWM, digital read working as expected. This should be a pretty safe change. First time contributing to this project, let me know if I am missing something?

wallarug commented 1 year ago

This is cool.

evtimDev commented 1 year ago

The error is "This request was automatically failed because there were no enabled runners online to process the request for more than 1 days."

@ladyada looks like pull requests are failing because there are no available runners to run the CI, how do we get this resolved?

tannewt commented 1 year ago

Looks like the ci is set to an old version of ubuntu. Please try updating this: https://github.com/adafruit/seesaw/blob/master/.github/workflows/build.yml#L16=

You'll also need to download a newer version of arm gcc in that file. There is a neat action to do it now that we use in CircuitPython: https://github.com/adafruit/circuitpython/blob/main/.github/workflows/build.yml#L290=

ladyada commented 1 year ago

ok FYI we are moving away from SAMD09 because of catastrophic chip shortages and trying ATtiny8xy as alternative (there's also a version of that series with 16 and 32 KB) https://github.com/adafruit/Adafruit_seesawPeripheral

ladyada commented 1 year ago

ok ping me again if the CI thing still doesnt work and i can try to figure out waht broke