본문 바로가기
DSP, MCU/STM32 (ARM Cortex-M)

STM32CubeIDE 프로젝트의 debug 와 release 빌드 차이점

by eteo 2023. 2. 6.

 

둘의 차이점은 GCC 컴파일러 세팅이다.

 

  • Debug --> Optimization off -O0
  • Release --> Optimize for size -Os

 

 

Release 모드는 최적화를 사용하므로 실행 속도가 빠르고 코드 크기가 줄어든다.

하지만 #ifdef _DEBUG 코드와 assertion macro 가 비활성화되고 디버그 심볼과 소스/라인 넘버 정보가 사라지므로 디버그를 수행하기 힘들어질 수 있다.

 

커뮤니티의 글들을 살펴보니 Debug 모드로 개발하다가도 종종 Release 모드로 테스트 해보는 것을 추천하고, 퍼포먼스가 크게 문제가 되는 상황이 아니라면 두가지 설정을 가지고 갈 필요 없이 Debug모드만 사용하는 것도 고려해볼 수 있을것 같다.

 

한편 Debug 모드로 실행 시 메모리가 부족하다면 Debug 환경을 방해하지 않을 정도의 최적화를 수행하는 -Og 옵션을 선택할 수도 있다.

 

https://community.st.com/s/question/0D53W000014WQskSAG/what-is-the-difference-between-debug-and-release-of-a-project

'DSP, MCU > STM32 (ARM Cortex-M)' 카테고리의 다른 글

STM32 ] Reset Sequence 이해하기  (8) 2023.02.06
STM32 ] 메모리 구조  (0) 2023.02.06
STM32 ] HSE bypass 설정  (0) 2023.02.05
STM32 ] Clock 설정, HSI, HSE, PLL, LSI, LSE  (0) 2023.02.05
STM32 ] CAN Interrupt  (3) 2023.01.31