hal_flash.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef __HAL_FLASH_H__
  2. #define __HAL_FLASH_H__
  3. /*************************************
  4. *INCLUDES
  5. */
  6. #include "bsp_flash.h"
  7. #include "app_step.h"
  8. #include "exception.h"
  9. #include "app_power.h"
  10. #include "nrf_gpio.h"
  11. #include "nrf_delay.h"
  12. #include "nrf_sdm.h"
  13. /*************************************
  14. *DEFINITION
  15. */
  16. //ERROR CODE
  17. #define ZONE_OP_SUCCESS 0x00 //ZONE操作成功
  18. #define ZONE_ERROR_NO_PAGE (ZONE_OP_SUCCESS+0x01) //需要分配的页数不够
  19. #define ZONE_ERROR_PARAM_PAGE_NUM (ZONE_OP_SUCCESS+0x02) //初始化分配的页数不能为0或小于0
  20. #define ZONE_ERROR_NO_INDEX (ZONE_OP_SUCCESS+0x03) //没有区域对应索引(没有申请对应区域)
  21. #define ZONE_ERROR_READ_FAIL (ZONE_OP_SUCCESS+0x04) //读取该区域失败
  22. #define ZONE_ERROR_WRITE_FAIL (ZONE_OP_SUCCESS+0x05) //写入该区域失败
  23. #define ZONE_ERROR_ERASE_FAIL (ZONE_OP_SUCCESS+0x06) //擦除该区域失败
  24. /********************************************
  25. *API FUCTIONS
  26. */
  27. //分配一个区域
  28. uint32_t Zone_Alloca(uint8_t page_num, uint32_t *zone_start_addr);
  29. //读取一个区域中指定位置的数据
  30. uint32_t Zone_Read(uint32_t destination_addr, uint32_t *pData, uint32_t dataLen);
  31. //往一个区域指定位置写入数据
  32. uint32_t Zone_Write(uint32_t destination_addr, uint32_t *pData, uint32_t dataLen);
  33. //擦除一个区域
  34. uint32_t Zone_Erase(uint32_t zone_start_addr);
  35. //获取一个区域的总字节大小
  36. uint32_t Zone_GetByteSize(uint32_t zone_start_addr, uint32_t *bytes);
  37. #endif