프로그래밍/IoT

[IoT] Esp32 여유 Heap 정보 알아보기

흔한티벳여우 2020. 11. 25. 16:56
반응형

C#이나 Java, Javascript등의 언어들은 GC를 통해 매모리를 관리하기에 개발자가 특별히 메모리 관리를 해줄 필요가 없습니다. (물론 GC를 생각하며 프로그램 안짜면 메모리 누수가 발생될수 있다.)

그러나 C++의 경우 개발자가 메모리를 관리를 해줘야합니다. 이것은 ESP32를 C++로 돌릴때도 마찬가지입니다.

 

코드를 잘못짜게 되면 Heap영역을 계속적으로 잡아먹게 되고 결국에는 ESP32가 재부팅됩니다.

 

if(millis() - heapCheckMillis > 1000){
	memcurr = ESP.getFreeHeap();
	Serial.printf("FREEHeap: %d; DIFF %d\n", memcurr, memcurr - memlast);
	memlast = memcurr;
	heapCheckMillis = millis();
}

위의 코드는 사용할 수 있는 Heap이 얼마나 남았는지 알려주는 코드입니다.

코드가 복잡해지면 메모리 관리 실수를 할 수 있습니다. 

삽질을 통해 위의 코드는 필수적으로 체크해보셔하는걸 추천드립니다. ㅎㅎ

반응형