/************************************************* * Copyright (C), Xiongmai Information Technologies Co., Ltd. 2018-2019. All rights reserved. * 文件名: maque_flash.h * 作者@编号: XM R&D @02479 * 版本: V1.00 * 创建日期: 2019.02.18 * 功能描述: 声明Flash读写等操作相关对外接口。 * * 修改历史: ** 1.日期: 2019.02.18 ** 修改者: XM R&D @02479 ** 修改内容: 首次创建 。 ** 2.日期: 2019.02.18 ** 修改者: XM R&D @02479 ** 修改内容: 完成了基础版。 *************************************************/ #ifndef MAQUE_FLASH_H #define MAQUE_FLASH_H #ifdef __cplusplus extern "C" { #endif /* 【功能描述】 初始化Flash操作。 【参数】 无。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 【注意】 无。 */ XM_S32 LibXmMaQue_Flash_open(XM_VOID); /* 【功能描述】 从Flash偏移addr地址处,读取大小为size的数据,保存到pBuf中。 【参数】 参数名称 描述 pBuf [out] 保存所读取数据的Buffer指针。 addr [in] 需要读取的Flash偏移地址。 size [in] 需要读取的数据大小。 【返回值】 大于0 实际读取的数据大小。 其它 失败,请参考错误码。 【注意】 LibXmMaQue_Flash_open ()调用成功后,才可以使用本API。 */ XM_S32 LibXmMaQue_Flash_read(XM_U8 *pBuf, XM_UL addr, XM_U32 size); /* 【功能描述】 把pBuf所指空间大小为size的数据,写入Flash偏移addr地址处。 【参数】 参数名称 描述 pBuf [in] 写到Flash的数据缓存。 addr [in] 往Flash该偏移地址写数据。 size [in] 需要写入的数据大小。 【返回值】 大于0 实际写入的数据大小。 其它 失败,请参考错误码。 【注意】 LibXmMaQue_Flash_open()调用成功后,才可以使用本API 考虑到效率,实际没有按"读-修改-擦除-写"这样步骤写,而是直接擦除后写,因此如果 不是整块写,需要调用者自己做好数据保护工作。Flash擦除块大小,可由下面介绍的API: LibXmDvr_Flash_getEraseSize()获取。 */ XM_S32 LibXmMaQue_Flash_write(XM_U8 *pBuf, XM_UL addr, XM_U32 size); /* 【功能描述】 获取当前Flash支持的擦除块大小。 【参数】 无。 【返回值】 大于0 Flash支持的擦除块大小。一般Spi Nor Flash的擦除块大小为64KB。 其它 失败,请参考错误码。 【注意】 考虑到效率,LibXmDvr_Flash_write()实际没有按"读-修改-擦除-写"这样步骤写,而是 直接擦除后写,因此如果不是整块写,需要调用者自己做好数据保护工作,这时就需要 获取Flash支持的擦除块大小。 */ XM_S32 LibXmMaQue_Flash_getEraseSize(XM_VOID); /* 【功能描述】 获取当前Flash的ID。 【参数】 无。 【返回值】 -1 失败。 其它 Flash ID。例如: 华邦8MB:0xEF4017 华邦16MB:0xEF4018 旺宏8MB:0xC22017 旺宏16MB:0xC22018 */ XM_S32 LibXmMaQue_Flash_getId(XM_VOID); /* 【功能描述】 获取当前Flash的名称。 【参数】 无。 【返回值】 NULL 失败。 其它 Flash 名称。例如: w25q64/s25fl064k w25q128 【注意】 它是内核Flash驱动返回的。每个平台可能有差异,只用于调试。 */ XM_CHAR *LibXmMaQue_Flash_getName(XM_VOID); /* 【功能描述】 关闭Flash操作。 【参数】 无。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 */ XM_S32 LibXmMaQue_Flash_close(XM_VOID); /* 【功能描述】 分区升级预处理。 【参数】 参数名称 描述 addr [in] 分区开始地址。 size [in] 分区大小。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 【注意】 该接口只适用支持备份系统的设备。 */ XM_S32 LibXmMaQue_Flash_prePart(XM_UL addr, XM_U32 size); /* 【功能描述】 分区升级后处理。 【参数】 参数名称 描述 addr [in] 分区开始地址。 size [in] 分区大小。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 【注意】 该接口只适用支持备份系统的设备。 */ XM_S32 LibXmMaQue_Flash_postPart(XM_UL addr, XM_U32 size); #ifdef __cplusplus } #endif #endif //MAQUE_FLASH_H