STM32G0를 이용한 Arduino 만들기로 STM32G0가 Arduino 개발 환경에서 동작하므로 이제 Arduino에서 간단한 성능 테스트를 해 보자
Arduino에서 기본 제공하는 GPIO제어 함수로 토글 해보았다.
#define PIN_OUT 12
void setup()
{
pinMode(PIN_OUT, OUTPUT);
}
void loop() {
digitalWrite(PIN_OUT, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(PIN_OUT, LOW); // turn the LED off by making the voltage LOW
}
920ns (300khz) 정도 출력된다. 루프지연 시간도 2.6us 로 상당히 느리다.
메모리 직접 제어 방식으로 GPIO 토글 해 보면
void loop() {
//digitalWrite(PIN_OUT, HIGH); // turn the LED on (HIGH is the voltage level)
//digitalWrite(PIN_OUT, LOW); // turn the LED off by making the voltage LOW
GPIOC->BSRR = GPIO_PIN_15;
GPIOC->BRR = GPIO_PIN_15;
}
GPIO 토글 시간은 15ns 정도 로 상당히 빨려 졌다.
루프 수행 시간은 76ns 정도
결론적으로 STM32 CubeIDE로 작성한 코드와 비슷한 성능이 나오는것 같다.
작고 저렴한데 성능도 좋아서 다양한 곳에 적용될 수 있을것 같다.
반응형