ESP32를 이용하여 Arduino에서 CPU 성능을 테스트 해 보았다. 역시 많이 느리군...
우선 Arduino 에서 제공하는 GPIO 제어 함수를 이용해 보면 112ns(3.2Mhz) 로 출력 된다.
#define PIN_OUT 5
void setup() {
pinMode(PIN_OUT, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
//delay(1);
digitalWrite(PIN_OUT, 1);
digitalWrite(PIN_OUT, 0);
}
ESP32의 GPIO 제어 레지스터에 직접 출력하면 62ns 정도로 출력된다.
ESP8266이용한 Arduino 성능 측정 실험의 75ns 와 비교 하면 조금 빨라 졌다. 240Mhz 코어지만 GPIO속도는 다른 Arduino 보드와 비교 해보면 상당히 느린것 같다.
void loop() {
delay(1);
//digitalWrite(PIN_OUT, 1);
//digitalWrite(PIN_OUT, 0);
//ESP32 GPIO Fast
GPIO.out_w1ts = (1 << PIN_OUT);
GPIO.out_w1tc = (1 << PIN_OUT);
}
루프 수행 속도는 140ns 정도로 측정된다.
반응형