STM32CubeIDE 프로젝트 생성 및 빌드하는 법
STM32CubeIDE는 MCU 통합 개발 환경입니다.
STM32 시리즈 MCU를 위한 주변장치 환경설정, 코드 생성, 컴파일, 디버깅 등의 기능을 제공합니다.
Eclipse / CDT framework을 기반으로 제작되었습니다.
ST 시리즈의 마이크로컨트롤러를 활용해 개발한다면 해당 IDE를 활용하면 됩니다.
STM32CubeIDE는 다음 경로에서 설치할 수 있습니다: www.st.com/en/development-tools/stm32cubeide.html#get-software
오늘은 STM32CubeIDE에서 프로젝트를 생성하고 빌드하는 법을 정리하려 합니다.
프로젝트 생성하기
먼저 STM32CubeIDE를 실행시키면 STM32CubeIDE Launcher가 실행되게 됩니다.
Workspace를 지정해주고 Launch를 누릅니다.
아래와 같이 화면이 뜨면 Start new STM32 project 버튼을 누릅니다. (빨간 박스)
STM32 project의 target selection 페이지가 나오게 됩니다. 해당 페이지에서 개발하고자 하는 MCU를 선택하면 됩니다.
MCU를 지정하여 프로젝트를 생성하고 싶다면 MCU/MPU Selector에서 Par Number를 검색하면 됩니다.
예제에서는 보드를 선택하여 프로젝트를 생성할 것이므로 Board Selector를 눌러 보드 선택 페이지로 넘어갑니다.
Board Selector에서 자신의 보드를 검색합니다.
예제에서는 nucleo-f446re를 검색하였고 검색 결과로 나온 보드를 선택하였습니다. 보드가 선택되었다면 Next를 누릅니다.
Project Name을 지정해줍니다. Targeted Project Type은 Empty로 지정합니다. Finish를 누르면 프로젝트 생성이 완료됩니다.
프로젝트 빌드하기
프로젝트를 생성하면 다음과 같이 Inc, Src 폴더가 생성됩니다. Inc는 헤더파일을, Src는 C파일을 보관하는 폴더입니다.
Src 폴더에 내용이 비어있는 main.c를 확인할 수 있습니다. main.c 파일이 프로그램의 entry point입니다.
프로젝트를 선택해서 우클릭 - Build Project를 누르면 프로젝트를 빌드할 수 있습니다.
콘솔 화면에서 빌드 결과를 확인할 수 있는데 아래와 같은 경고가 뜰 수 있습니다.
./Src/main.c:11:4: warning: #warning "FPU is not initialized, but the project is compiling for an FPU. Please initialize the FPU before use." \[-Wcpp\]
#warning "FPU is not initialized, but the project is compiling for an FPU. Please initialize the FPU before use."
^~~~~~~
다음과 같은 경고 메세지가 발생한다면 FPU를 비활성화하여 경고 메세지를 제거할 수 있습니다.
프로젝트를 선택 마우스 우클릭 - Properties - C/C++ Build - Settings로 이동합니다.
Tool Settings - MCU Settings에서 Floating-point unit은 None으로 Floating-point ABI는 Software Implementation으로 선택합니다.
설정 후 Apply and close를 누릅니다.
프로젝트를 타겟 보드에 다운로드
프로젝트를 마우스 우클릭 Debug as를 선택합니다.
STM32 Cortex-M C/C++ Application을 누릅니다.
이 옵션은 코드를 타겟에 다운로드하고 보드를 디버그 모드로 전환해줍니다.
다운로드 하기 전 디버그 설정을 해주어야 합니다.
Debug Configuration 창이 뜨면 Debugger 탭으로 넘어갑니다.
Debug probe는 ST-LINK(GDB-Server)로 선택되어져 있어야 합니다. Interface는 기본 값인 SWD로 둔다.
Serial Wire Viewer에 Enable을 선택하고 선택이 완료되면 Apply-Ok를 누릅니다.
Debug perspective로 바꾸겠냐는 메세지가 뜨면 Remember my decision을 클릭하고 Switch를 누릅니다.
디버그 모드를 종료하고 싶으면 상단의 Terminate버튼을 누르면 됩니다. 종료되면 다시 편집 모드로 돌아가게 됩니다.