연구 & 공부/STM32

STM32 Cube IDE 개발환경 세팅 - STM32F746 NG Discovery Board

RacoonSensei 2021. 5. 4. 18:59

현재 핫한 Tiny ML과 관련하여 교수님이 STM32 보드를 이용하여 Cube AI까지 직접 사용해보라고 하셔서 

아래 그림의 STM32F746NG Discovery 보드를 가지고 개발환경세팅부터 직접 해본 결과를 보여주고자 한다.

 

Cube IDE는 STM에서 True Studio를 중단하면서 새롭게 출시한것으로 보이는 IDE로 특히 개발자들에게 되게 편하게 개발할 수 있는 기능들인 함수 generating, 자신이 사용하고자 하는 pin들을 기능에 맞게 설정하고 Initialize는 자동적으로 만들어주는 기능, 리소스 관리 등 다양하고 강력한 기능들을 제공하는 것으로 보인다.

현재는 여러 사이트들을 참고하여 세팅한 후 조금 알아가는 단계이고 처음 설치 및 세팅 과정을 설명해보고자 한다.

 

STM32CubeIDE - Integrated Development Environment for STM32 - STMicroelectronics

 

위 사이트에 들어가면 Cube IDE를 다운받을 수 있으며, 

현재는 1.6.1이 최신버전이다. 다운 받은 후 다음다음다음을 누르는 식으로 설치해도 문제는 없다.

 

실행을 하게 되면 아래와 같은 모습이 나오게 되는데 여기서 Start new STM32 project를 클릭하거나 File->New->Stm32 Project를 클릭하면 프로젝트 생성단계로 나아가게 된다.

 

 

그러면 이제 프로젝트 생성을 위해 Part Number 또는 MCU 이름을 입력하여 본인이 현재 개발하고 싶은 환경을 생성하도록 할 수 있다. 또한 추가적으로 내가 원하는 기능들을 여기서 세팅해서 환경을 구성할 수 도 있다.

여기서 좋은 점은 내가 보드를 아직 구매하기 전이고 어느정도의 스펙을 원하는지 정해져 있다면 여기서 원하는 보드의 스펙을 검색하면 거기에 부합하는 보드들을 보여주기 때문에 처음에 개발을 시작하기전에 어떤 보드를 선택할지 결정하기에도 도움이 될 것이라고 생각한다.

 

하지만 자신의 보드만 검색한 후 추후 추가를 하는것도 어렵지 않기 때문에 검색후 바로 Next 를 누르고

Project 명을 입력하고 본인이 개발을 원하는 언어 C / C++ 중 선택을 하고 Finish를 누르면 프로젝트가 생성이 된다.

 

 

생성 후 Pinout & Configuration 화면이 제일먼저 나오게 되는데 여기서 오른쪽 맨위 2개 PA13, PA14를 SYS JSCK-SWCLK, SYS JTMS-SWDIO로 세팅을 해주면 따로 JTAG 없이도 빌드 및 디버깅이 가능하다.

 

그리고 아래에서 보이는 G_led 및 B_Button은 green_led와 blue button 부분을 세팅한 것인데 이건 다음에 추후 포스팅을 하고자 한다.

 

 

그리고 OS는 FreeRtos를 사용할 것이기 때문에 이를 설정하기 위해서 Middleware란에 FREERTOS를 선택하고 Interface를 disable -> CMSIS_V1으로 바꿔주면 설정이 된다.

여기서 Task를 새로 생성하고 싶다면, 

 

여기서 Task를 새로 생성하는 부분도 설정을 해 줄수 있는데 Tasks and Queues를 선택하고 

Add버튼을 눌러서 Stack size 및 Priority, Task name 등을 입력하면 Task까지 생성이 된다.

 

여기서 저장을 하면( Ctrl + S 혹은 Project->Generate Code 클릭 ) 위와 같이 generate code를 할 것인지를 물어보게 되고 yes를 누르면 자동으로 initialize까지 설정이 된 프로젝트를 만들어주게 된다.

 

아래는 왼쪽에 아무것도 설정을 안한상태의 코드에서 오른쪽은 GPIO를 설정하고 FreeRtos 설정을 해 준 Code generate를 한 결과이다. 다음과 같이 프로그래머가 일일이 코드작업을 하지 않아도 UI에서 설정만 해주어도 코드를 자동으로 생성을 해주는 것을 볼 수 있다.

 

여기서 이제 빌드 및 실행은 위쪽의 리본메뉴에 있는 버튼들을 클릭하면 되는데 아래 그림에서 보이는 것과 같이 망치 버튼은 빌드이며, 벌레 모습은 디버그, 재생버튼은 실행 버튼이다.

디버그 버튼을 처음 누를 시 Debug Configuration 창이 뜨게 되는데 Apply 후 실행 해주면 바로 디버그가 문제없이 되는 것을 확인할 수 있다.

 

오늘은 이까지 포스팅을 마치도록 하고 다음에 GPIO로 Led 동작 및 GPIO Interrupt까지 포스팅을 하도록 하겠습니다.

오늘도 읽어주셔서 감사합니다.