둘의 차이점은 GCC 컴파일러 세팅이다.
- Debug --> Optimization off -O0
- Release --> Optimize for size -Os
Release 모드는 최적화를 사용하므로 실행 속도가 빠르고 코드 크기가 줄어든다.
하지만 #ifdef _DEBUG 코드와 assertion macro 가 비활성화되고 디버그 심볼과 소스/라인 넘버 정보가 사라지므로 디버그를 수행하기 힘들어질 수 있다.
커뮤니티의 글들을 살펴보니 Debug 모드로 개발하다가도 종종 Release 모드로 테스트 해보는 것을 추천하고, 퍼포먼스가 크게 문제가 되는 상황이 아니라면 두가지 설정을 가지고 갈 필요 없이 Debug모드만 사용하는 것도 고려해볼 수 있을것 같다.
한편 Debug 모드로 실행 시 메모리가 부족하다면 Debug 환경을 방해하지 않을 정도의 최적화를 수행하는 -Og 옵션을 선택할 수도 있다.
'임베디드 개발 > 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 |