mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-30 08:24:11 +01:00
e2b019edd9
Telemetry module was iterating over all UAVOs including meta UAVOs and creating a periodic event item for each object. These items cost us about 32 bytes for each list item. This is wasteful for two main reasons. First, meta UAVOs can't meaningfully have periodic updates so excluding them entirely makes sense. That halves the number of objects in this list since there is one meta object for every data object. This is worth about 500 bytes of RAM on CC. Second, about half of the remaining UAVOs are not periodic by default so they're wasting memory unless someone happens to want to make them periodic at runtime. This is worth another 450 bytes of RAM on CC. So, objects that are configured as periodic during board init will support all of the periodic config at runtime. Objects that are *not* periodic during board init can only be made periodic on the next boot. Each object that you make periodic during init will cost you an extra 32 bytes of RAM. With erased settings, free RAM comparison for CC is: Before: 2736 bytes free After: 4048 bytes free Total RAM savings with this update is 1312 bytes! |
||
---|---|---|
.. | ||
Actuator | ||
AHRSComms | ||
Altitude | ||
AltitudeHold | ||
Attitude | ||
Autotune | ||
Battery | ||
CameraStab | ||
ComUsbBridge | ||
Example | ||
Fault | ||
FirmwareIAP | ||
FlightPlan | ||
GPS | ||
Guidance | ||
ManualControl | ||
MK/MKSerial | ||
Osd/OsdEtStd | ||
OveroSync | ||
PipXtreme | ||
RadioComBridge | ||
Sensors | ||
Stabilization | ||
System | ||
Telemetry | ||
TxPID |