1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-25 01:05:21 +03:00

Reduce RAM usage in CMS

Add support for direct pointers to readonly values rather than using
intermediate OSD_XXX_t types.
Use direct pointers on all readonly values.
Make sure all intermediate value/step holders are in flash rather
than ram, since they're never modified.

This saves another 352 bytes of RAM (mostly on data, a few on bss).
This commit is contained in:
Alberto García Hierro 2018-03-06 10:11:15 +00:00
parent 2095c64789
commit 0c14331305
6 changed files with 95 additions and 65 deletions

View file

@ -56,15 +56,15 @@ static const OSD_Entry cmsx_menuRcEntries[] =
{
OSD_LABEL_ENTRY("-- RC PREV --"),
OSD_INT16_DYN_ENTRY("ROLL", (&(OSD_INT16_t){ &rcData[ROLL], 1, 2500, 0 })),
OSD_INT16_DYN_ENTRY("PITCH", (&(OSD_INT16_t){ &rcData[PITCH], 1, 2500, 0 })),
OSD_INT16_DYN_ENTRY("THR", (&(OSD_INT16_t){ &rcData[THROTTLE], 1, 2500, 0 })),
OSD_INT16_DYN_ENTRY("YAW", (&(OSD_INT16_t){ &rcData[YAW], 1, 2500, 0 })),
OSD_INT16_RO_ENTRY("ROLL", &rcData[ROLL]),
OSD_INT16_RO_ENTRY("PITCH", &rcData[PITCH]),
OSD_INT16_RO_ENTRY("THR", &rcData[THROTTLE]),
OSD_INT16_RO_ENTRY("YAW", &rcData[YAW]),
OSD_INT16_DYN_ENTRY("AUX1", (&(OSD_INT16_t){ &rcData[AUX1], 1, 2500, 0 })),
OSD_INT16_DYN_ENTRY("AUX2", (&(OSD_INT16_t){ &rcData[AUX2], 1, 2500, 0 })),
OSD_INT16_DYN_ENTRY("AUX3", (&(OSD_INT16_t){ &rcData[AUX3], 1, 2500, 0 })),
OSD_INT16_DYN_ENTRY("AUX4", (&(OSD_INT16_t){ &rcData[AUX4], 1, 2500, 0 })),
OSD_INT16_RO_ENTRY("AUX1", &rcData[AUX1]),
OSD_INT16_RO_ENTRY("AUX2", &rcData[AUX2]),
OSD_INT16_RO_ENTRY("AUX3", &rcData[AUX3]),
OSD_INT16_RO_ENTRY("AUX4", &rcData[AUX4]),
OSD_BACK_ENTRY,
OSD_END_ENTRY,