회사에 다니면서 매일 리눅스만 사용한 것 같다.

Zynq 관련해서 FPGA나 SW를 개발했는데 MCU 관련된 프로젝트도 진행할 것 같아서 STM32CubeIDE 말고 리눅스에서 어떻게 코드를 만드는지 간단하게 진행해봤다.

 

STM32CubeMX를 사용했다. Makefile과 ldfile 등 여러 가지를 쉽게 사용하도록 만들어주기 때문이다.

 

VMware와 우분투 18.04버전을 사용했다.

 

 

설치 - (0)

www.st.com/en/development-tools/stm32cubemx.html

 

STM32CubeMX - STMicroelectronics

STM32CubeMX - STM32Cube initialization code generator, STM32CubeMX, STMicroelectronics

www.st.com

 

설치 관련해서는 간단하게 설명하면 위 사이트에서 다운로드하면. zip 파일을 받을 수 있다. 특정 디렉토리에 가서 파일을 풀면 STM32CubeMX.exe 파일이 있을 것이다.

 

$ java -jar STM32CubeMX.exe

파일이 있는 디렉토리에서 위 명령어를 치면 설치를 할 수 있다.

 

 

설치를 마치면 설치한 디렉토리에 STM32CubeMX 실행파일이 있고

 

$ ./STM32CubeMX

위 명령어로 실행할 수 있다.

실행 화면

 

 

 

코드 - (1)

CubeMX 사용법에 대해서는 자세하게 글을 쓸 생각이 없다. 기존에 STM32CubeIDE에서 사용하는 것과 똑같기 때문이다.

 

Project Manager의 Project 부분에서

Toolchain/IDE를 Makefile로 변경하고 코드를 생성하면 된다.

 

코드를 생성하고 생성된 디렉토리에 가보면

이런 식으로 코드가 생성되어있을 것이다.

 

vim으로 Makefile을 열어보면 ^M (개행 문자)가 보여서 지저분해 보일 수 있다.

 

:%s/^M//g

vim 커맨드로 ^M을 지울 수 있다. (^M은 ctrl + v + m 이다)

 

Core 디렉토리에는 main과 인터럽트 파일과 같은 파일이 들어가 있고 Drive 디렉토리에는 HAL, LL 드라이버 파일이 들어간다.

 

make 명령어로 빌드하면 build 디렉토리가 생기고 .elf, .bin, .hex 파일이 생성된다.

 

 

결과 - (2)

 

ddtxrx.tistory.com/entry/%ED%97%A5%EC%82%AC%EC%BD%A5%ED%84%B0-STM32-CubeMX-LL-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-1?category=913763

 

[STM32] CubeMX LL 드라이버 - GPIO (0)

기존에 제작하던 쿼드콥터의 경우 STM32 MCU를 사용하고 HAL드라이버를 사용하여 코드를 작성하였다. 이번에 제작하고자 하는 헥사콥터의 경우 HAL 드라이버가 아닌 LL 드라이버를 사용하여 코드를

ddtxrx.tistory.com

GPIO 코드를 똑같이 사용하여 빌드해서 LED가 켜지는 것을 확인했다.

 

 

 

-

이미 STM32CubeIDE 글을 많이 써서 CubeMX는 간단하게 넘어갔다.

 

다운로드하는 것도 java 정도 apt를 사용하여 다운로드하면 돼서 어렵지 않았다.

 

리눅스를 자주 사용하다 보니 윈도우보다 편한 점이 많아 리눅스에서도 빌드해보려 한다. 아직 stlink를 리눅스에서 연결해서 MCU에 코드를 올린 게 아니라 반쯤 한 것이라고 본다. 그 일은 나중에 올려봐야겠다.

'임베디드 > STM32' 카테고리의 다른 글

[STM32] CLI Basic - (0)  (2) 2021.03.20
[STM32] Circular Buffer printf  (0) 2021.03.16
[STM32] 간단한 ICM20948 쿼터니언  (0) 2020.09.18
[STM32] LL 드라이버 - MS5611  (0) 2020.08.28
[STM32] LL 드라이버 - SPI DMA, NRF24L01  (1) 2020.08.20
Posted by DDTXRX
,