우분투 STM32 개발환경 - 마지막 정리

STM32 개발환경은 CubeIDE 설치하면 STM32 관련 개발 툴을 더 이상 설치할 필요가 없다. 처음에는 이것저것 설치하였으나 CubeIDE 플러그인에 필요한 개발툴이 대부분 포함되어 있어 기본 설치되는 플러그인으로 처리가 가능하다.

 

STM32CubeIDE는 아래 링크에서 다운받을 수 있으며, CubeIDE를 설치하기 전에 CubeIDE 설치에 필요한 의존성 패키지를 설치하도록 한다.

$ sudo apt install libncurses5 git
 

STM32CubeIDE - STMicroelectronics

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

www.st.com

다운받은 STM32CubeIDE 설치 파일은 아래의 명령어로 압축 해제 후, 설치가 가능하며 설치 디렉토리가 /opt 설치되며 설치 경로는 변경이 불가한 것 같다.

$ unzip en.st-stm32cubeide_1.6.1_9958_20210326_1446_amd64.deb_bundle.sh.zip
$ chmod 755 en.st-stm32cubeide_1.6.1_9958_20210326_1446_amd64.deb_bundle.sh
$ sudo ./en.st-stm32cubeide_1.6.1_9958_20210326_1446_amd64.deb_bundle.sh

CubeIDE는 개발에 필요한 툴을 모두 플러그인으로 포함하고 있어, 내게 필요한 툴을 아래와 같이 링크 및 실행경로를 설정하도록 한다.

Toolchain, GDBServer 및 CubeProgrammer의 실행 및 라이브러리 경로를 아래와 같이 등록하도록 한다.

$ vi ~/.zshrc

...
export PATH=/opt/st/STM32Toolchain/bin:/opt/st/STM32GDBServer/bin:/opt/st/STM32CubeProg/bin:$PATH
export LD_LIBRARY_PATH=/opt/st/STM32GDBServer/bin/native/linux_x64:$LD_LIBRARY_PATH

STM32_CubeProgramer_CLI 명령어를 간단히 사용하기 위해 아래와 같이 stm32prog 스크립트를 생성하고 권한을 할당하여 간단하게 elf 파일만 파라미터로 전달하면 Flash Write가 되도록 한다.

$ sudo vi /opt/st/STM32CubeProg/bin/stm32prog

#!/bin/sh
STM32_Programmer_CLI -c port=SWD -w $1.elf -v -ob displ -rst

그리고 GDBServer를 간단히 사용하기 위해 아래와 같이 st-gdbserver 스크립트를 생성하도록 한다. ST-LINK_gdbserver에 사용되는 파라미터는 config.txt 파일을 참고하도록 한다.

$ sudo vi /opt/st/STM32GDBServer/bin

#!/bin/sh
ST-LINK_gdbserver -p 61234 -r 15 -e -d -cp /opt/st/STM32CubeProg/bin

마지막으로 GDBServer를 사용하여 디버깅 방법은 STM32 개발보드가 연결된 상태에서 앞서 생성한 st-gdbserver 스크립트를 실행시키면 gdb client를 연결할 수 있는 상태된다.

 

이 상태에서 gdb로 디버깅할 elf 파일을 아래와 같이 실행하고 gdb 명령 프롬프트 상태에서 원격 접속을 하도록 한다.

CubeIDE만 설치하면 ST에서 제공하는 다른 개발툴은 설치없이 사용할 수 있으나, 몇가지 수작업이 필요하여 블로그에 정리하여 나중에 참고하려고 한다.