반응형
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이 얼마나 남았는지 알려주는 코드입니다.
코드가 복잡해지면 메모리 관리 실수를 할 수 있습니다.
삽질을 통해 위의 코드는 필수적으로 체크해보셔하는걸 추천드립니다. ㅎㅎ
반응형
'프로그래밍 > IoT' 카테고리의 다른 글
[IoT] Windows IoT Core 라즈베리파이 3 개발환경 구축 - 2 (0) | 2022.04.12 |
---|---|
[IoT] Windows IoT Core 라즈베리파이 3 개발환경 구축 - 1 (0) | 2022.04.07 |
[IoT] WiFi Max RSSI인 SSID 얻기 (0) | 2020.09.14 |
[Arduino] Serial Log 관리 (0) | 2020.09.14 |
[IoT] esp32 Flash Download Tools 이용하여 업로드 (0) | 2020.09.14 |