#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