본문 바로가기

[ST_MICRO]/STM32H7

[STM32H7 EVM] STM32H7 Arduino 만들기 - Arduino 성능 측정

STM32 시리즈중 최고의 성능을 구현할 수 있는 STM32H7을 아두이노로 만들면 어떨까?

아두이노의 장점은 다양한 라리브러리를 쉽게 적용하여 사용 할수 있어서 성능과 편리함을 동시에 만족 할 수 있지 않을까...

 

STM32H7 EVM 보드를 Arduino로 만들기 위해 Arduino 보드메이저에 "Gereic STM32H7 Series" 타입으로 등록 했다. 

 

board.txt 파일을 수정해서 보드 메니저에 등록

# ELAB_H7_EV board

GenH7.menu.pnum.ELAB_H7_EV=ELAB_H7_EV

GenH7.menu.pnum.ELAB_H7_EV.upload.maximum_size=2097152

GenH7.menu.pnum.ELAB_H7_EV.upload.maximum_data_size=524288

GenH7.menu.pnum.ELAB_H7_EV.build.board=ELAB_H7_EV

GenH7.menu.pnum.ELAB_H7_EV.build.product_line=STM32H743xx

GenH7.menu.pnum.ELAB_H7_EV.build.variant=ELAB_H7_EV

 

약간의 핀맵 수정만 해 주면 잘 동작 한다.


최대 480Mhz로 구동 할수 있는 STM32H743 MCU를 아두이노로 구동하면 성능이 제대로 나올까?

우선 STM32H7 FPU테스트 에 사용했던 코드를 아두이노에서 구동해 보자

 

void loop() {

  d = 0.0;
  Serial.println(d);

  GPIOA->BSRR = GPIO_PIN_5;

  for(i=0;i<10;i++)
  {
    d += sqrt(2.0);
  }

  GPIOA->BSRR = GPIO_PIN_5<<16;

  Serial.println(d);
  delay(10)
}

 

 

결과

0.00

14.14

0.00

14.14

 

측정 결과 1us

옵티마이즈는 -Os

캐시 enable 상태  (캐시 disable 상태에서는 4us 로 측정)

 

왜 이렇게 느리지? 120ns는 나와야 하는데...

FPU 코드변환이 안된건가?

 

 

옵티마이즈는 -O3 로 변경시

1.25us

로 더 느려졌다.