// file: debug_print.h
/*******************************************************************************
 * [한국어 설명] 디버그 출력 매크로 (조건부 컴파일)
 *
 * SEGGER RTT(Real Time Transfer)를 이용한 디버그 출력 매크로.
 * J-Link 디버거를 통해 실시간으로 로그를 PC에 전송한다.
 * UART를 사용하지 않으므로 시스템 타이밍에 미치는 영향이 적다.
 *
 * === 조건부 컴파일 ===
 * ENABLE_PRINTF = 1: DBG_PRINTF가 SEGGER_RTT_printf(채널0)로 치환됨
 *                    -> 실제 로그 출력 (디버깅 시 사용)
 * ENABLE_PRINTF = 0: DBG_PRINTF가 빈 매크로로 치환됨
 *                    -> 코드에서 완전히 제거 (릴리스 빌드 시 사용)
 *
 * === 사용법 ===
 * DBG_PRINTF("값: %d\r\n", value);  // printf와 동일한 포맷 문자열
 * 출력은 SEGGER RTT Viewer 또는 J-Link RTT Client에서 확인.
 ******************************************************************************/
#ifndef DEBUG_PRINT_H
#define DEBUG_PRINT_H

#define ENABLE_PRINTF 1  /* 1=디버그 출력 활성화, 0=전역 비활성화 */

#if ENABLE_PRINTF
    #include "SEGGER_RTT.h"
    /* SEGGER RTT 채널 0으로 포맷 문자열 출력 */
    #define DBG_PRINTF(...) SEGGER_RTT_printf(0, __VA_ARGS__)
#else
    /* 빈 매크로: 컴파일러가 호출 코드를 완전히 제거 */
    #define DBG_PRINTF(...) // Do nothing
#endif

#endif // DEBUG_PRINT_H
