ESP-IDF SDK 개발 환경에서 ESP32-C3 성능을 테스트해 보자. ESP32 Arduino IDE 개발환경에서 성능 테스트 결과 와 비교해 보면 좋을것 같다.
우선 SDK에서 제공하는 GPIO제어 예제로 테스트 해보자
#define BLINK_GPIO 0
void app_main(void)
{
gpio_reset_pin(BLINK_GPIO);
/* Set the GPIO as a push/pull output */
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
while(1) {
gpio_set_level(BLINK_GPIO, 1);
gpio_set_level(BLINK_GPIO, 0);
}
}
ESP32-C3 GPIO 토글 주기가 280ns(1.7Mhz)로 Arduino에서보다는 빠르지만 만족 스럽지는 않다.
레지스터 제어로 GPIO를 제어 해 보자
#define BLINK_GPIO 0
void app_main(void)
{
gpio_reset_pin(BLINK_GPIO);
/* Set the GPIO as a push/pull output */
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
while(1) {
//gpio_set_level(BLINK_GPIO, 1);
//gpio_set_level(BLINK_GPIO, 0);
GPIO.out_w1ts.out_w1ts = (1 << BLINK_GPIO);
GPIO.out_w1tc.out_w1tc = (1 << BLINK_GPIO);
}
}
112ns(4Mhz)로 조금 빨라 졌지만... 다른 MCU들과 비교하면 많이 느린것 같다.
GPIO로 제어 하는 어플리케이션은 좀 어려움이 있을 것 같다.
반응형