#pragma once #include #include "main.h" /** * @brief * STM32F407VETx 512k * * index startAdd size * 0 0x08000000 16k * 1 0x08004000 16k * 2 0x08008000 16k * 3 0x0800C000 16k * 4 0x08010000 64k * 5 0x08020000 128k * 6 0x08040000 128k * 7 0x08060000 128k * * * @WARNING: * 1. 我们使用第7个扇区,即0x08060000~0x0807FFFF * 2. 程序最大不能超过75% * 3. rawstartadd第一位必须是0xABCD,最后一位是校验和 */ #define FLASH_MASK_VAL 0xABCD #define FLASH_START_ADD 0x08060000 // #define FLASH_EARSE_SECTOR FLASH_SECTOR_7 /** * @brief 初始化flash * * @param rawstartadd flash内存映射的地址 * @param defaultdata 默认数据 * @param rawsize flash内存映射的地址大小 */ void xs_flash_init(uint32_t* rawstartadd, uint32_t* defaultdata, uint32_t rawsize); /** * @brief 判断是否是第一次初始化flash * * @return true * @return false */ bool xs_flash_is_first_run(void); /** * @brief 刷新内存输出到flash中 * * @return true * @return false */ bool xs_flash_flush(void); /** * @brief 恢复出厂设置 * * @return true * @return false */ bool xs_flash_factory_reset(void);