114 lines
5.3 KiB
C
114 lines
5.3 KiB
C
#ifndef _API_FLASH_H
|
||
#define _API_FLASH_H
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name uint os_spiflash_read(void *buf, u32 addr, uint len);
|
||
* @brief 读取flash数据
|
||
* @param buf: 数据读取存储buf
|
||
* @param addr:目标数据所在flash地址
|
||
* @param len: 需要读取数据长度
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
uint os_spiflash_read(void *buf, u32 addr, uint len);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name void spiflash_program(void *buf, u32 addr, uint len);
|
||
* @brief 写入flash数据
|
||
* @param buf: 数据写入存储buf
|
||
* @param addr:目标写入数据所在flash地址
|
||
* @param len: 需要写入数据长度
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
void spiflash_program(void *buf, u32 addr, uint len);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name void os_spiflash_erase(u32 addr);
|
||
* @brief 擦除flash 4k擦除
|
||
* @param addr: 擦除起始地址,注意4k对齐擦除
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
void os_spiflash_erase(u32 addr);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name void write_code_init(void);
|
||
* @brief code区域写入初始化
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
void write_code_init(void);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name void os_spiflash_erase(u32 addr);
|
||
* @brief 程序区域开始写入
|
||
* @param type: 0:code 1:res
|
||
* @param addr: 程序区域起始地址
|
||
* @param len: 数据总长度
|
||
* @return true/false
|
||
******************************************************************************************************************
|
||
*/
|
||
bool write_code_start(int type, int addr, int len);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name void spiflash_read_dis(void *buf, u32 addr, uint len);
|
||
* @brief flash数据读取函数,无加密
|
||
* @param buf: 数据读取存储buf
|
||
* @param addr:目标数据所在flash地址
|
||
* @param len: 需要读取数据长度
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
void spiflash_read_dis(void *buf, u32 addr, uint len);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name bool write_code(void *buf);
|
||
* @brief 写入程序
|
||
* @param buf: 目标数据
|
||
* @return true/false
|
||
******************************************************************************************************************
|
||
*/
|
||
bool write_code(void *buf);
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name bool write_code_verify();
|
||
* @brief 校验程序
|
||
* @return true/false
|
||
******************************************************************************************************************
|
||
*/
|
||
bool write_code_verify();
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name bool spiflash_read(void *buf, u32 addr, uint len, int encrypt_key, u16 crc_seed);
|
||
* @brief flash数据读取函数,带解密
|
||
* @param buf: 数据读取存储buf
|
||
* @param addr:目标数据所在flash地址
|
||
* @param len: 需要读取数据长度
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
bool spiflash_read(void *buf, u32 addr, uint len, int encrypt_key, u16 crc_seed);
|
||
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name void spiflash_addrlimit_init(u32 addr);
|
||
* @brief 设置flash擦除/写入限制地址,保护DRIVER不被擦除
|
||
* @param addr:需要限制的flash,小于该地址的擦写操作将被禁止
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
void spiflash_addrlimit_init(u32 addr);
|
||
|
||
/**
|
||
******************************************************************************************************************
|
||
* @name bool read_code(void *buf, u32 addr)
|
||
* @brief 读取code区解密后数据
|
||
* @param buf:解密后数据取放buf
|
||
* @param addr:需要读取code的绝对地址,注意code区域大小
|
||
* @return reserve
|
||
******************************************************************************************************************
|
||
*/
|
||
bool read_code(void *buf, u32 addr);
|
||
#endif // _API_FLASH_H
|