반응형
내가 사용하는 ESP32 보드의 플래시 메모리 용량, PSRAM 크기, CPU 클럭 등의 정보를 확인해볼 수 있습니다.
아래 예제는 아두이노 IDE에서 간단히 실행해볼 수 있는 코드입니다 👇
#include <Arduino.h>
void setup() {
Serial.begin(115200);
ps_malloc(550 * 1024);
uint8_t * buf = (uint8_t*)malloc(500 * 1024);
if (buf == NULL) {
Serial.println("can't allocate memory with malloc\n");
}
Serial.print("ESP32 SDK: "); Serial.println(ESP.getSdkVersion());
Serial.print("ESP32 CPU FREQ: "); Serial.print(getCpuFrequencyMhz()); Serial.println("MHz");
Serial.print("ESP32 APB FREQ: "); Serial.print(getApbFrequency() / 1000000.0, 1); Serial.println("MHz");
Serial.print("ESP32 FLASH SIZE: "); Serial.print(ESP.getFlashChipSize() / (1024.0 * 1024), 2); Serial.println("MB");
Serial.print("ESP32 PSRAM SIZE: "); Serial.print(ESP.getPsramSize() / 1024.0, 2); Serial.println("KB");
Serial.print("ESP32 RAM SIZE: "); Serial.print(ESP.getHeapSize() / 1024.0, 2); Serial.println("KB");
Serial.print("ESP32 FREE RAM: "); Serial.print(ESP.getFreeHeap() / 1024.0, 2); Serial.println("KB");
Serial.print("ESP32 MAX RAM ALLOC: "); Serial.print(ESP.getMaxAllocHeap() / 1024.0, 2); Serial.println("KB");
Serial.print("ESP32 FREE PSRAM: "); Serial.print(ESP.getFreePsram() / 1024.0, 2); Serial.println("KB");
}
void loop() {
}
🧠 코드 설명
이 코드는 ESP32 SDK에서 제공하는 기본 API를 이용해
보드의 주요 하드웨어 정보를 시리얼 모니터(115200bps) 로 출력하는 예제입니다.
출력 항목은 다음과 같습니다.
항목설명
| ESP32 SDK | 현재 사용 중인 SDK 버전 |
| CPU FREQ | CPU 클럭 속도 (MHz) |
| APB FREQ | APB 버스 클럭 주파수 |
| FLASH SIZE | 내장 플래시 메모리 용량 |
| PSRAM SIZE | 외부 PSRAM 용량 |
| RAM SIZE / FREE RAM | 사용 가능한 내부 메모리 크기 |
| MAX RAM ALLOC | 한 번에 할당 가능한 최대 메모리 크기 |
| FREE PSRAM | 사용 가능한 PSRAM 공간 |
🔍 실행 결과 예시
시리얼 모니터에서 다음과 유사한 정보가 출력됩니다.
ESP32 SDK: v4.4.6
ESP32 CPU FREQ: 240 MHz
ESP32 APB FREQ: 80.0 MHz
ESP32 FLASH SIZE: 4.00 MB
ESP32 PSRAM SIZE: 8.00 MB
ESP32 RAM SIZE: 390.50 KB
ESP32 FREE RAM: 320.10 KB
ESP32 MAX RAM ALLOC: 162.24 KB
ESP32 FREE PSRAM: 7168.00 KB

✅ 참고
- 위 코드는 ESP32뿐 아니라 ESP32-S2, ESP32-S3 시리즈에서도 동일하게 동작합니다.
- 단, 일부 저가형 모듈은 PSRAM이 포함되어 있지 않을 수 있으니, ESP.getPsramSize()가 0으로 출력되더라도 정상입니다.
- PSRAM을 활용한 이미지 처리, 버퍼 저장, 오디오 스트리밍 등 고용량 작업을 할 때 유용한 기준 데이터로 사용할 수 있습니다.
참고 링크
반응형
'아두이노 > 응용' 카테고리의 다른 글
| 아두이노 시리얼 통신 프로토콜 만들기 (0) | 2017.12.11 |
|---|---|
| 아두이노 STM32duino (bluepill) 타이머 사용하기 (0) | 2017.12.06 |
| 아두이노 사용기 #34 3D프린터용 스테핑 모터를 다뤄보다. - (A4988 드라이버 사용) (0) | 2017.12.06 |
| 아두이노 사용기 #33 TFT LCD 1.8" SPI 모듈을 다루어 보다. (0) | 2017.12.06 |
| 아두이노 사용기#32 방수 초음파(Waterproof Ultrasonic) 거리 센서를 다뤄보다. (0) | 2017.12.06 |