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);
}