/**
 * @file WSPN_Security.h
 * @brief 간단한 디버거 감지 및 플래시 보호 기능
 */

#ifndef WSPN_SECURITY_H
#define WSPN_SECURITY_H

#include "stm32f4xx.h"

// 일부 필요한 정의가 없을 경우를 대비
#ifndef FLASH_CR_SNB_Pos
#define FLASH_CR_SNB_Pos 3
#endif

#ifndef FLASH_CR_SER
#define FLASH_CR_SER (1 << 1)
#endif

#ifndef FLASH_CR_PSIZE_1
#define FLASH_CR_PSIZE_1 (1 << 9)
#endif

// 디버거 감지 상태 변수
extern volatile uint8_t g_debugger_detected;

// 디버거 감지 함수
uint8_t WSPN_SECURITY_IsDebuggerPresent(void);

// 메인 펌웨어 삭제 함수 (섹터 1)
void WSPN_SECURITY_EraseMainFirmware(void);

extern void WSPN_SECURITY_RUN(void);

#endif /* WSPN_SECURITY_H */
