본문 바로가기

[ST_MICRO]/STM32G

#STM32G-SSM EVM - Arduino 성능 테스트

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로 작성한 코드와 비슷한 성능이 나오는것 같다.

작고 저렴한데 성능도 좋아서 다양한 곳에 적용될 수 있을것 같다.