Files
TCP2UART/App/flash_param.h
T
gaoro-xiao 4996b451d9 feat: 完成TCP2UART透传核心集成
集成CH390驱动、LwIP协议栈和FreeRTOS多任务透传框架,确保TCP Server/Client与UART链路按配置稳定联动。
2026-03-30 11:39:40 +08:00

76 lines
1.8 KiB
C

/**
* @file flash_param.h
* @brief Flash parameter storage module for TCP2UART
*
* Stores configuration parameters in STM32F103 internal Flash.
* Uses the last page of Flash (1KB) for parameter storage.
*/
#ifndef __FLASH_PARAM_H__
#define __FLASH_PARAM_H__
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Flash configuration for STM32F103R8 (64KB Flash) */
#define FLASH_PARAM_PAGE_SIZE 1024 /* 1KB per page for STM32F103 */
#define FLASH_PARAM_START_ADDR 0x0800FC00 /* Last 1KB of 64KB Flash */
#define FLASH_PARAM_END_ADDR 0x08010000 /* End of Flash */
/* For STM32F103RC (256KB), use: 0x0803FC00 */
/* For STM32F103RB (128KB), use: 0x0801FC00 */
/**
* @brief Initialize Flash parameter storage
* @return 0 on success, negative on error
*/
int flash_param_init(void);
/**
* @brief Read parameters from Flash
* @param data Output buffer
* @param len Length to read
* @return 0 on success, negative on error
*/
int flash_param_read(void *data, uint32_t len);
/**
* @brief Write parameters to Flash
* @param data Data to write
* @param len Length to write
* @return 0 on success, negative on error
*
* Note: This function will erase the Flash page before writing.
*/
int flash_param_write(const void *data, uint32_t len);
/**
* @brief Erase parameter storage area
* @return 0 on success, negative on error
*/
int flash_param_erase(void);
/**
* @brief Calculate CRC32 for data
* @param data Data buffer
* @param len Data length
* @return CRC32 value
*/
uint32_t flash_param_crc32(const void *data, uint32_t len);
/**
* @brief Verify parameter storage integrity
* @return 0 if valid, negative if invalid or corrupted
*/
int flash_param_verify(void);
#ifdef __cplusplus
}
#endif
#endif /* __FLASH_PARAM_H__ */