1. vscode를 다운로드한다.
https://code.visualstudio.com/download
다운로드가 끝나면, 인스톨해준다. (인스톨 과정 생략)
2. 툴체인을 다운로드한다.
툴체인은 IDE가 사용하는 컴파일러이다. ARM 아키텍쳐가 적용된 STM사의 STM32Fxx를 사용하기 때문에 이 칩에 들어갈 바이너리 파일을 만들어줄 C/C++ (크로스)컴파일러가 필요하다. Toolchain은 이러한 일(컴파일링+링크)을 해주는 프로그램으로 보면 된다.
다운로드가 끝나면, 인스톨해준다. (인스톨 과정 생략)
3. vscode를 실행한다.

처음 실행하면 좌측패널과 같이 나타나지 않을 것이다. 이처럼 나올려면, 아래 화살표 부분(플러그인)을 누른 후,

makefile를 입력창에 넣은 후 검색결과 최상단에 뜬 것을 다운로드 하면 된다. Makefile Tools라는 플러그인이다. 이걸 깔면, C/C++ 플러그인이 디펜던시 때문에 자동으로 깔린다. (한국어는 마음의 평화를 위해서 깔았다.)
이 정도만 해 놓아도 contents-asststant라는 좋은 기능을 이용할 수 있다. 물론 함수의 정의보여주기 및 이동하기도 가능하다.
그런데 먼가 어수선하다. Extention, debuging and run 및 소스제어 부분을 가려주었다.

그런데, 여기서 툴체인을 다운로드 했는데 이것에 대한 어떠한 설명도 없었다. 왜냐면 Makefile에 나는 툴체인으로 GNU-ARM_COMPILER를 사용하겠다고 적어 주었기 때문이다.
아래는 Makefile의 일부분이다.
————-
PREFIX = arm-none-eabi-
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
# either it can be added to the PATH environment variable.
해석) make GCC_PATH=xxx(파일의 위치)라는 명령어를 통해서 make에게 gcc compiler bin이 어디에 있는지 알려주던가 또는,
PATH 환경 변수에 추가해 주던가
ifdef GCC_PATH
CC = $(GCC_PATH)/$(PREFIX)gcc
CPP = $(GCC_PATH)/$(PREFIX)g++
AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp
CP = $(GCC_PATH)/$(PREFIX)objcopy
SZ = $(GCC_PATH)/$(PREFIX)size
else
CC = $(PREFIX)gcc
CPP = $(PREFIX)g++
AS = $(PREFIX)gcc -x assembler-with-cpp
CP = $(PREFIX)objcopy
SZ = $(PREFIX)size
endif
HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S
—————-
위 문서에서 주목할 문자는 PREFIX = arm-none-eabi- 정의부이다. 즉, gcc, g++일반적으로 사용되는 compiler인데, 이 앞에 arm-none-eabi-를 붙여 넣으면, arm-none-eabi-gcc, arm-none-eabi-g++는 arm용 컴파일러를 지정하게 된다.
마직막으로 주의사항.
CubeMX는 .C문서를 만들어 낸다. 이것을 CPP에서 컴파일하기 위해서 위와같이 변형하였다. 물론, main.c 파일의 이름을 main.cpp로 변경해 주어야 한다.
(단, cubeMX를 가지고 다시 code generation하면, main.c가 만들어 진다. 그러나, Makefile은 초기화 되지 않고 main.c 만 추가해서 컴파일하라고 한 줄 덧붙여준다. 이 줄을 삭제하고 이름을 main.cpp로 변경해서 make 해주면 된다.)