본문 바로가기

[INTERFACE]/ESP32

ESP32 Arduino 성능측정

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 정도로 측정된다.