You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.4 KiB
72 lines
1.4 KiB
#pragma once
|
|
#include <stdbool.h>
|
|
|
|
#include "main.h"
|
|
|
|
/**
|
|
* @brief
|
|
* STM32F407VETx 1024k
|
|
*
|
|
* 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
|
|
* 8 0x08080000 128k
|
|
* 9 0x080A0000 128k
|
|
* 10 0x080C0000 128k
|
|
* 11 0x080E0000 128k
|
|
*
|
|
*
|
|
* @WARNING:
|
|
* 1. 我们使用第7个扇区,即0x08060000~0x0807FFFF
|
|
* 2. 程序最大不能超过75%
|
|
* 3. rawstartadd第一位必须是0xABCD,最后一位是校验和
|
|
*/
|
|
|
|
#define FLASH_MASK_VAL 0xDCBA
|
|
#define FLASH_START_ADD 0x080C0000 //
|
|
#define FLASH_EARSE_SECTOR FLASH_SECTOR_10
|
|
|
|
/**
|
|
* @brief 初始化flash
|
|
*
|
|
* @param rawstartadd flash内存映射的地址
|
|
* @param defaultdata 默认数据
|
|
* @param rawsize flash内存映射的地址大小
|
|
*/
|
|
void xs_flash_init(uint32_t* rawstartadd, 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);
|
|
/**
|
|
* @brief
|
|
*
|
|
* @param defaultdata
|
|
* @return true
|
|
* @return false
|
|
*/
|
|
bool xs_flash_set_default_data(uint32_t* defaultdata);
|
|
bool xs_flash_check(void);
|