#ifndef __HAL_FLASH_H__ #define __HAL_FLASH_H__ /************************************* *INCLUDES */ #include "bsp_flash.h" #include "app_step.h" #include "exception.h" #include "app_power.h" #include "nrf_gpio.h" #include "nrf_delay.h" #include "nrf_sdm.h" /************************************* *DEFINITION */ //ERROR CODE #define ZONE_OP_SUCCESS 0x00 //ZONE操作成功 #define ZONE_ERROR_NO_PAGE (ZONE_OP_SUCCESS+0x01) //需要分配的页数不够 #define ZONE_ERROR_PARAM_PAGE_NUM (ZONE_OP_SUCCESS+0x02) //初始化分配的页数不能为0或小于0 #define ZONE_ERROR_NO_INDEX (ZONE_OP_SUCCESS+0x03) //没有区域对应索引(没有申请对应区域) #define ZONE_ERROR_READ_FAIL (ZONE_OP_SUCCESS+0x04) //读取该区域失败 #define ZONE_ERROR_WRITE_FAIL (ZONE_OP_SUCCESS+0x05) //写入该区域失败 #define ZONE_ERROR_ERASE_FAIL (ZONE_OP_SUCCESS+0x06) //擦除该区域失败 /******************************************** *API FUCTIONS */ //分配一个区域 uint32_t Zone_Alloca(uint8_t page_num, uint32_t *zone_start_addr); //读取一个区域中指定位置的数据 uint32_t Zone_Read(uint32_t destination_addr, uint32_t *pData, uint32_t dataLen); //往一个区域指定位置写入数据 uint32_t Zone_Write(uint32_t destination_addr, uint32_t *pData, uint32_t dataLen); //擦除一个区域 uint32_t Zone_Erase(uint32_t zone_start_addr); //获取一个区域的总字节大小 uint32_t Zone_GetByteSize(uint32_t zone_start_addr, uint32_t *bytes); #endif