STM32 개발에 대해 글을 쓰기로 하였다.
목차는 아래와 같다. 목차 순서대로 글을 연재할 예정이다.
ST사에서 제공하는 STM32 개발 보드인 STM32F769I-DISC1을 이용한다.
ARM Cortex-M7 Processor를 내장하고 있으며, 보드에 ST-Link 디버거가 내장되어 있어 별도의 에뮬레이터 장비가 필요하지 않다. USB to Micro 5핀 케이블을 통해 PC에 냅다 꽂으면 디버깅이 가능하다. (드라이버를 별도로 설치했는지는 기억이 잘 안난다.)
본 글에서는 HAL Library를 이용할 것이므로, 꼭 위의 보드나 MCU가 아니어도, 동일 기능을 지원한다면 같은 코드를 사용하여도 될 것으로 보인다.
ST사에서 제공하는 IDE인 STM32CubeIDE를 사용한다.
STM32CubeIDE는 ST사에서 STM32 개발을 위해 만든 이클립스 기반의 IDE이다. ARM을 위한 IDE가 여럿 있지만, STM32CubeIDE를 사용하는 가장 큰 이유는 CubeMX 기능이다.
CubeMX란 다이얼로그 기반의 UI를 이용하여 개발자가 원하는 코드를 굉장히 빠른 속도로 만들 수 있도록 도와주는 기능을 말한다. STM32 MCU에 한하여 사용 가능하며, 사용하고자 하는 기능만 체크하여 활성화하고, 원하는 설정값을 입력하면 그에 맞는 소스 코드가 자동으로 생성된다. 이는 개발자로 하여금 초기 설정에 공들이는 시간을 단축시킬 수 있으며, 생성된 코드를 바탕으로 빠른 개발 시작을 도와준다.
이전에 System Workbench for STM32 라는 이클립스 기반 IDE에 CubeMX가 플러그인 형태로 내장되어 있던 것이, 아예 합쳐져서 CubeIDE란 이름으로 만들어진 것 같다.
임베디드 펌웨어가 그렇듯, 제공되는 코딩 가이드나 예제가 없으면 코드 한 줄 제대로 짜기 어려운 게 사실인데, 굉장히 초기 진입 장벽을 많이 낮춰주는 기능인 것 같다.