우분투 STM32CubeIDE 설치 및 사용

STM32 CubeIDE는 수많은 ST MCU 및  MPU 개발을 위한 통합 개발 환경을 제공하며, 기존 TrueStudio와 CubeMX을 통합한 것이다. 따라서 CubeMX로 Pin 설정을 하고, 코드 작성을 TrueStudio로 작성했다면 이제는 CubeIDE 하나로 모든 처리가 가능하다.

 

STM32CubeIDE - STMicroelectronics

STM32CubeIDE - Integrated Development Environment for STM32, STM32CubeIDE-RPM, STM32CubeIDE-Lnx, STM32CubeIDE-Win, STM32CubeIDE-DEB, STM32CubeIDE-Mac, STMicroelectronics

www.st.com

CubeIDE는 윈도우, 맥OS 뿐만 아니라 리눅스 버전도 지원하며, 각자 플랫폼에 맞는 버전을 다운받아 설치하도록 한다. CubeIDE는 ST-Link 드라이버를 포함하고 있으며, CubeIDE를 런타임 환경에 필요한 libncurses5 및 git를 함께 설치해야 하며, CubeIDE 설치는 아래와 같다.

sudo apt install libncurses5 git
unzip en.st-stm32cubeide_1.5.1_9029_20201210_1234_amd64.sh.zip
chmod 755 en.st-stm32cubeide_1.5.1_9029_20201210_1234_amd64.sh
sudo ./en.st-stm32cubeide_1.5.1_9029_20201210_1234_amd64.sh

STM32CubeIDE 설치로 STM32 toolchain도 함께 설치되기 때문에 STM32CubeIDE로 개발 및 디버깅할 예정이라면 우분투에 arm-none-eabi-gcc와 같은 arm toolchain을 따로 설치할 필요가 없다. 윈도우도 동일할 것으로 생각된다. 정말 개발환경 구성하는 것이 이렇게 편할 것이라고는 생각을 못했는데... 과거 STChipset 개발환경 및 Makefile 만들던거 생각하면, 정말 엄청나게 발전하였고, 초심자라도 쉽게 STM32 개발을 가능하게 하였다.

STM32CubeIDE 설치 완료하고 실행하면 아래 이미지와 같은 환경을 확인할 수 있으며, 기존 CubeMX와 TrueStudio 프로젝트를 사용할 수 있는 것 같다.

새로운 프로젝트를 생성하면 GitHub에서 MCU 패키지를 다운받아 아래 이미지와 같이 사용할 MCU 또는 타겟보드를 선택해야 한다. 이글에서 STM32F407G-Disc1 보드를선택하였다.

STM32F407 데모보드를 선택하였을 경우, 아래 이미지와 같이 데모보드의 클럭 및 핀설정 상태를 아래 이미지와 같이 확인할 수 있다.

그리고 STM32CubeIDE는 데모 보드의 필요한 기본 코드를 아래 이미지와 같이 자동으로 생성하며, 이 코드로 Board Setup 및 Pin 설정에 대한 Initialize가 가능한다. 이렇게 템플릿으로 생성된 코드에 추가 기능에 대한 사용자 코드를 추가하면 된다.

펌웨어를 개발한다면 MAKE 환경을 구성하는 것도 일이었는데, STM32CubeIDE로 이런 부가적인 작업은 생략하고 개발에만 집중할 수 있다. 시대가 점점 좋아지고 있는 것 같다. Makefile 구성하는 것도 큰 작업중 하나였는데...

 

마지막으로 STM32CubeIDE에서 빌드 및 ST-Link를 사용하여 이미지 다운로드를 진행하려면 ST-Link 드라이버 및 서버를 설치해야 한다. 윈도우 환경에서는 STM32CubeIDE 설치하면서 ST-Link 및 서버가 함께 설치되지만, 우분투의 경우 따로 설치해야 한다. 우분투에서 ST-Link 설치는 아래 글을 참고하도록 한다.

 

우분투 STM32 개발환경

아래 블로그의 리눅스에서 STM32F4 개발환경 구성 포스팅을 참고하였으며, 우분투 20.04 버전에서 필요한 패키지 및 라이브러리 설치를 정리하였다. Blink for stm32f4-discovery board on Linux with Makefile I..

memories.tistory.com

그리고 STM32CubeIDE에서 빌드 및 다운로드 그리고 디버깅 backtrace를 사용하려면 ST-Link ServerApp도 설치해야 한다. ST-Link만 설치되어 있고, ST-Link ServerApp 설치되어 있지 않다면 STM32CubeIDE에서 작성한 코드를 실행하는 것은 불가능하기 때문에 STM32CubeIDE로 개발할 예정이라면 반드시 설치해야 한다.

 

ST-LINK-SERVER - STMicroelectronics

ST-LINK-SERVER - ST-LINK server software module, ST-LINK-SERVER, STMicroelectronics

www.st.com

압축파일을 해제하면 OS별 ST-Link ServerApp 버전이 있으며 우분투인 경우 deb 패키지를 설치하도록 한다.

$ sudo dpkg -i st-stlink-server-2.0.2-1-linux-amd64.deb

STM32CubeIDE에서 Run -> Debug configurations를 실행하면 아래와 같은 설정을 확인할 수 있으며, ST-Link 드라이버 및 ServerApp이 정상적으로 설치되어 있다면 다른 설정 변경없이 실행이 가능하다.

여기서 한가지 주의할 것을 STM32CubeIDE로 작성한 코드를 실행하면 데모 보드에 작성한 코드의 이미지가 다운로드 된다는 것을 명심하자. STM32CubeIDE는 작성한 코드를 실행하면 타겟 보드 메모리에서 올려서 동작하는 시키는 것이 아니라 플래시 기록한 후 실행한다.