프로그래밍/STM32

[STM32] STM32CubeMX로 CMake설정하기

Beginner:) 2023. 9. 10.
320x100

1. 설치

아래의 링크에서 설치가 가능하다. 회원가입이 필요할 수 있다.

https://www.st.com/content/st_com/en/stm32cubemx.html

 

 

2. 실행&설정

먼저 자신에게 맞는 board를 선택하고 Start Project 클릭

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

[RCC] - [HSE] - "Crystal/Ceramic Resonator" 선택

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

[SYS] - [Debug] - "Serial Wire"선택 (이후 VSCode에서 Debug 실행해 볼 예정)

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

 

PA5번 핀을 "GPIO_Output"으로 선택

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

NUCLEO-F411RE board에서 PA5핀은 User LED인 LD(초록색 빛)에서 확인할 수 있다. 즉 별도의 LED를 연결하지 않아도 board자체에서 확인할 수 있기에 PA5번을 선택.

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 다음은 디버깅을 위한 printf문을 출력하기 위해[Connectivity] - [USART2]에서 [Mode]를 "Asynchronous"를 선택하고 [NMC Settings]에서 USART2 global interrupt의 Enable을 체크한다. 

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

[Configure]에서 "HSE" 선택

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

[Project Manager] - [Project]에서 Toolchain / IDE를 STM32CubeIDE 선택

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

[Project Manager] - [Code Generator]에서 "Generator peripheral initialize..."를 선택 후 오른쪽 상단 Generate Code 선택

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정

 

3. 프로젝트 구성 확인

폴더를 확인하면 Core, Drivers, .ioc, FLASH.ld, RAM.ld 등이 생성되는 것을 확인해야 한다.

(아래에서 build, Lib폴더와 README.md, DS10314.pdf, CMakeLists.txt, stm32f411re.cmake, .gitignore는 생성이 안되는 것이니 참고하자)

[STM32] STM32CubeMX로 CMake설정하기 - undefined - 3. 프로젝트 구성 확인

 

다음은 생성된 프로젝트로 cmake를 이용하여 빌드하는 방법이다.

2023.09.03 - [프로그래밍/STM32] - [STM32] cmake build(feat .bin, .elf, .hex 추출)

 

[STM32] cmake build(feat .bin, .elf, .hex 추출)

먼저 나의 작업환경을 tree -L 4로 출력한 Directory 구조이다. . ├── CMakeLists.txt ├── MAIN │ └── board │ └── F4 │ ├── Core │ ├── Drivers │ ├── stm32f411re │ └── ledtest2.ioc ├─...

park-duck.tistory.com

 

cmake로 빌드를 하게 되면 VSCode에서 디버그를 찍어볼 수 있고

2023.09.03 - [프로그래밍/STM32] - [STM32] VSCode 에서 STM32 디버깅하기

 

[STM32] VSCode 에서 STM32 디버깅하기

1. 먼저 elf 파일을 만들어줘야 하는데 아래 링크를 참조 2023.09.03 - [프로그래밍/STM32] - [STM32] cmake build(feat .bin, .elf, .hex 추출) [STM32] cmake build(feat .bin, .elf, .hex 추출) 먼저 나의 작업환경을 tree -L 4로...

park-duck.tistory.com

 

Renode라는 가상환경에서 board 없이 실행시켜 볼 수도 있으며

2023.08.22 - [Learning/Renode] - [Renode] 가상머신 실행(Hello world 출력)

 

[Renode] 가상머신 실행(Hello world 출력)

이전에 Renode를 설치했었다. 2023.08.15 - [Learning/Renode] - [Renode] 설치 [Renode] 설치 1. 지원 아키텍처 ARMv7 and ARMv8 Cortex-A and Cortex-M x86 RISC-V SPARC POWER Xtensa 2. 설치 아래 링크에서 renode-*.linux-portable.tar.gz를...

park-duck.tistory.com

 

이후 Jenkins를 이용하여 테스트를 진행해 볼 수도 있다.(머나먼 미래에 작성 계획 중)

2023.07.23 - [Learning/CI&CD] - [Jenkins] Cmake 사용&버전 변경

 

[Jenkins] Cmake 사용&버전 변경

1. [Dashboard] - [Jenkins 관리] - [Plugin Manager]에서 Cmake 설치 나는 이미 설치되어 있으므로, 처음인 사람은 Available plugins에서 설치 설치를 하고 cmake 명령어를 사용하면 version이 3.10.2이다. 버전이 너무...

park-duck.tistory.com

 

반응형

댓글