1. 설치
아래의 링크에서 설치가 가능하다. 회원가입이 필요할 수 있다.
https://www.st.com/content/st_com/en/stm32cubemx.html
2. 실행&설정
먼저 자신에게 맞는 board를 선택하고 Start Project 클릭
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
[RCC] - [HSE] - "Crystal/Ceramic Resonator" 선택
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
[SYS] - [Debug] - "Serial Wire"선택 (이후 VSCode에서 Debug 실행해 볼 예정)
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
PA5번 핀을 "GPIO_Output"으로 선택
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
NUCLEO-F411RE board에서 PA5핀은 User LED인 LD(초록색 빛)에서 확인할 수 있다. 즉 별도의 LED를 연결하지 않아도 board자체에서 확인할 수 있기에 PA5번을 선택.
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](https://blog.kakaocdn.net/dn/dH4ELt/btstr2Xvd3z/A1IwaIdGNtmT3ejcJDrj5k/img.png)
다음은 디버깅을 위한 printf문을 출력하기 위해[Connectivity] - [USART2]에서 [Mode]를 "Asynchronous"를 선택하고 [NMC Settings]에서 USART2 global interrupt의 Enable을 체크한다.
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](https://blog.kakaocdn.net/dn/cm16Tl/btstwiTdOWr/94lSbSQI2xxhghKTXCmbv1/img.png)
[Configure]에서 "HSE" 선택
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](https://blog.kakaocdn.net/dn/cuuPjZ/btstzkB6pWT/87kclkHOwNlqQaxmL0qehk/img.png)
[Project Manager] - [Project]에서 Toolchain / IDE를 STM32CubeIDE 선택
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](https://blog.kakaocdn.net/dn/RJWC2/btstrPc2WNJ/k5GsUx8nJ97EanR1BZZff1/img.png)
[Project Manager] - [Code Generator]에서 "Generator peripheral initialize..."를 선택 후 오른쪽 상단 Generate Code 선택
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 2. 실행&설정](https://blog.kakaocdn.net/dn/cW43Om/btstzlA0WDk/WqKoiLRZK7RKpWfqRQL8pk/img.png)
3. 프로젝트 구성 확인
폴더를 확인하면 Core, Drivers, .ioc, FLASH.ld, RAM.ld 등이 생성되는 것을 확인해야 한다.
(아래에서 build, Lib폴더와 README.md, DS10314.pdf, CMakeLists.txt, stm32f411re.cmake, .gitignore는 생성이 안되는 것이니 참고하자)
![[STM32] STM32CubeMX로 CMake설정하기 - undefined - 3. 프로젝트 구성 확인 [STM32] STM32CubeMX로 CMake설정하기 - undefined - 3. 프로젝트 구성 확인](https://blog.kakaocdn.net/dn/Xz28B/btstxqwxr7L/6J19qh3xsodeFXwGByYmbk/img.png)
다음은 생성된 프로젝트로 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
'프로그래밍 > STM32' 카테고리의 다른 글
[STM32] CPU 온도 측정하기 (0) | 2023.09.30 |
---|---|
[STM32] USART를 활용한 print찍기 (0) | 2023.09.30 |
[STM32] EXTI(External Interrupt) 제어 (0) | 2023.09.24 |
[STM32] VSCode 에서 STM32 디버깅하기(.vscode) (0) | 2023.09.03 |
[STM32] cmake build(feat .bin, .elf, .hex 추출) (0) | 2023.09.03 |
댓글