ميزانية Flash وRAM

أين تذهب ذاكرة 1MB و~23KB من الكومة وكيفية إبقاء البناء دون 60% فلاش / 65% RAM.

ميزانية الفلاش

تهيمن WebUI على ذاكرة فلاش ESP8285 البالغة 1 ميغابايت: فبنية العميل المجمّعة ~160 كيلوبايت مضغوطة (~16% من الفلاش) بعد إزالة الشجرة. زمن تشغيل الأعداد العائمة (_scanf_float، _printf_float، _dtoa_r، _strtod_l …) هو ~9.7 كيلوبايت — حقيقي لكنه ليس الرافعة الأكبر. يقع خط الأساس الحالي عند ~68.6% من الفلاش؛ وهدف 60% يتطلب اقتطاع ~83 كيلوبايت، وWebUI هي الرافعة الوحيدة الكبيرة بما يكفي لبلوغه.

ميزانية RAM

يعرض ESP8285 نحو 23 كيلوبايت من الكومة. يجب ألا تخصّص عمليات حفظ الإعداد مستند JSON كبيراً في الكومة — فحافظ إعداد الأورنيثوبتر يكتب مباشرةً إلى LittleFS لتجنب استنزاف الكومة وإعادة التشغيل أثناء الاستطلاع. أبقِ DynamicJsonDocument خارج المسار الساخن؛ وفضّل مخازن المكدس والكتابة المباشرة.

نصائح التحسين

أهداف البناء

الهدف ميزانية الفلاش ميزانية الذاكرة
PteronautOS_ESP8285_2400_RX ≤ 60% ≤ 65%

يمنع البيان تجاوز 60% فلاش / 65% ذاكرة لترك هامش للتوسع. قِس بعد كل ميزة؛ فالبنية الخضراء ليست بنية حية حتى تُومض ويُقرأ سجل إقلاعها.