/**
*@file    sr_flash.h
*@brief   片内FLASH的抽象接口头文件
*@details 提供片内FLASH相关抽象接口、枚举、结构体
*@copyright Copyright (c) 2024 lierda. All rights reserved. 
*@author  Lierda-RDC
*@date    2024-04-18
*@example ZhaoyangSDK\example\pal\hal\flash_example.c
*/

#ifndef _SR_FLASH_H
#define _SR_FLASH_H


#include "sr_bsp_flash.h"

/*****************抽象接口*****************************************/
/**
 * @brief 片内flash读
 * 
 * @param offset[in]  偏移地址，srSize_t类型
 * @param buf[out]    读缓存，uint8_t*指针类型
 * @param size[in]    读取长度
 *
 * @return 成功(>0): 返回实际读取长度，失败：返回负值错误码
 */
#define SR_HalFlashRead(offset,buf,size)    BspFlashRead(offset,buf,size)

/**
 * @brief 片内flash写,带擦除操作
 * 
 * @param offset[in]  偏移地址，srSize_t类型
 * @param buf[in]     待写入数据缓存，uint8_t*指针类型
 * @param size[in]    写入长度
 *
 * @return 成功(>0): 返回实际写入长度，失败：返回负值错误码
 */
#define SR_HalFlashWrite(offset,buf,size)   BspFlashWrite(offset,buf,size)


/**
 * @brief 片内flash擦除
 * 
 * @param offset[in]  偏移地址，srSize_t类型，必须与扇区大小对齐
 * @param num[in]     擦除扇区数量
 *
 * @return 成功:返回0   失败:返回负值错误码
 */
#define SR_HAlFlashErase(offset,num)       BspFlashErase(offset,num)


#endif

