Embedded-cpp

  • Published on
    Memory pada ESP32 bukan sekadar “heap vs stack”. Setiap task FreeRTOS memiliki stack sendiri, sementara heap bersifat global dan digunakan oleh WiFi, TLS, dan library internal. Banyak kegagalan firmware produksi bukan karena logika salah, tetapi karena fragmentasi heap, stack overflow, atau lifetime object yang tidak selaras dengan lifecycle sistem. Artikel ini membedah struktur memori ESP32, perbedaan stack task dan heap global, risiko hidden allocation pada C++, serta konsekuensi destructor dan dynamic allocation terhadap stabilitas jangka panjang firmware sensor–relay.
  • Published on
    Artikel ini mengunci disiplin lifecycle object dan kebijakan alokasi memori untuk firmware ESP32 berbasis Arduino. Masalah jangka panjang pada sistem produksi sering berasal dari dynamic allocation tersembunyi, fragmentasi heap, object yang dibuat di dalam loop, serta penggunaan `String` dan container growable tanpa kontrol. Embedded system membutuhkan determinism dan prediktabilitas, bukan fleksibilitas runtime berlebihan. Artikel ini menetapkan prinsip static-first allocation, pembatasan ketat penggunaan heap, larangan alokasi di ISR dan control loop, serta destructor yang harus trivial. Dengan lifecycle eksplisit dan memori terkendali, firmware dapat bertahan bertahun-tahun tanpa degradasi stabilitas atau reset misterius.
  • Published on
    Artikel ini mengunci struktur arsitektur firmware berbasis class yang layered dan deterministik untuk ESP32 Arduino. Setelah dependency dan memory discipline dikontrol, risiko terbesar berikutnya adalah coupling lintas domain akibat tidak adanya direction rule yang tegas. Artikel ini menetapkan model 3 layer - Driver, Service, dan Application, dengan aturan dependency satu arah (DAG) dan larangan circular include. Prefix file (`drv_`, `svc_`, `app_`, `sys_`) menjadi boundary enforcement pada struktur flat Arduino. Dengan layering eksplisit dan composition root di `IndustrialNode.ino`, firmware memiliki bentuk tetap yang stabil, mudah diaudit, dan tidak berubah meski fitur bertambah.