본문 바로가기

[ST_MICRO]/STM32F7

STM32F7 - Arduino 만들기 (STM32F732 Arduino 성능 테스트)

 

STM32F7 Arduino 보드를 Arduino IDE에서 개발하기 위해 보드파일을 등록 해야 하는데...

Arduino 보드메이저에 Gereic 타입이 없다.

 

그냥 Nucleo_64 에다 등록을 해야 겠다

 

 

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

 

# ELAB_F7_ARDUINO board

# Support: Serial1 (USART2 on PA2, PA3)

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO=ELAB_F7_ARDUINO

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.node=ELAB_F7_ARDUINO

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.upload.maximum_size=524288

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.upload.maximum_data_size=262144

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.mcu=cortex-m7

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.flags.fp=-mfpu=fpv4-sp-d16 -mfloat-abi=hard

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.board=ELAB_F7_ARDUINO

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.series=STM32F7xx

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.product_line=STM32F732xx

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.variant=ELAB_F7_ARDUINO

Nucleo_64.menu.pnum.ELAB_F7_ARDUINO.build.cmsis_lib_gcc=arm_cortexM4lf_math

 

 

 

ELAB_F7_ARDUINO 로 등록 해서 컴파일 하니 기본 동작은 잘 한다.

물론 다른 STM32를 ARDUINO 만들기에서와 같이 핀맵이나 사이즈등의 정도는 보드에 맞게 수정해 주었다.

 

 


Arduino IDE 에서 STM32F7를 컴파일 할수 있는 설정을 완료 했기 때문에 STM32F7의 성능을 테스트 해 보자

 

Arduino 에서 제공한 함수를 이용하여 GPIO 토글해서 속도를 측정해 보니 59ns 정도로 측정된다.

//IO10 -> PB6
#define LED_BUILTIN     10

void setup() {
    
  Serial.begin(115200);
  Serial.print("STM32F7 Arduino Test\r\n");

  pinMode(LED_BUILTIN, OUTPUT);
}


void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1);
}

 

 

 

 

 

 

STM32에서 제공하는 IO제어 레지스터로 접근해 보니 GPIO 토글 속도가 8ns정도로 측정이 된다.

STM32FCubeIDE에서 테스트 결과와 유사하다.

void loop() {
  GPIOB->BSRR = GPIO_PIN_6;
  GPIOB->BSRR = GPIO_PIN_6<<16;
  
  delay(1);  
}