mcu_ab568x/userboot240328/app/platform/libs/api_flash.h
2025-05-30 18:03:10 +08:00

114 lines
5.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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