#ifndef FLASH_COUNTER_H
#define FLASH_COUNTER_H

#include "main.h"
#include <stdint.h>

// STM32F405 1MB Flash 最后一个扇区（Sector 11, 128KB）
// 地址范围 0x080E0000 ~ 0x080FFFFF
// 确保链接脚本 FLASH ORIGIN+LENGTH 不超过 0x080E0000
#define FLASH_COUNTER_SECTOR    FLASH_SECTOR_11
#define FLASH_COUNTER_ADDR      0x080E0000UL
#define FLASH_COUNTER_MAGIC     0x5A5A1234UL

// 从 Flash 读取计数器。首次使用（未写入）时 *counter = 0，返回 HAL_OK
HAL_StatusTypeDef FlashCounter_Init(uint32_t *counter);

// 将新计数器值擦除写入 Flash（约 1~2 ms）
HAL_StatusTypeDef FlashCounter_Write(uint32_t counter);

#endif // FLASH_COUNTER_H
