ota_flash_mesh.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef __OTA_MESH_FLASH_
  2. #define __OTA_MESH_FLASH_
  3. #include "ota_flash.h"
  4. #ifndef CFG_OTA_MESH
  5. #error "unsupported OTA_mesh config, please check micro:CFG_OTA_MESH!"
  6. #else
  7. #if(CFG_FLASH >= 512)
  8. #define OTAFM_APP_RAMRUN_ADDR 0x11017000 //108K bytes
  9. #define OTAFM_APP_XIP_ADDR 0x11032000 //120K bytes
  10. #define OTAFM_FW_OTA_ADDR 0x11050000 //256K bytes
  11. #define OTAFM_FW_OTA_INFO_SZ 0x1000 //size of ota info, 4K
  12. #define OTAFM_FW_OTA_DATA_OFFSET 0x2000
  13. #define OTAFM_FW_OTA_DATA_ADDR (OTAFM_FW_OTA_ADDR + OTAFM_FW_OTA_DATA_OFFSET)
  14. #endif
  15. #define OTAFM_DEV_FLG_USED 0
  16. #define OTAFM_DEV_FLG_UNINIT 0xff
  17. #define OTAFM_DEV_FLG_INVALID 0x80
  18. #define OTAFM_DEV_FLG_READY 0xfe
  19. #define OTAFM_DEV_FLG_OTAING 0xfc
  20. #define OTAFM_DEV_FLG_COMPLETED 0xf8
  21. #define OTAFM_DEV_FLG_FAILED 0xec
  22. typedef struct{
  23. uint16_t dev_type;
  24. uint16_t index;
  25. uint8_t dev_addr[6];
  26. }otafmesh_dev_t;
  27. int otafm_write_partition(uint32 addr, uint32_t* p_sect, uint32_t size);
  28. int otafm_write_boot_sector(uint32_t* p_sect, uint32_t size, uint32_t offset);
  29. int otafm_dev_add(otafmesh_dev_t* pdev);
  30. int otafm_dev_pull(otafmesh_dev_t* pdev);
  31. int otafm_dev_clear(otafmesh_dev_t* pdev);
  32. int otafm_fw_load(ota_fw_t* pfw);
  33. int otafm_fw_execute(void);
  34. int otafm_format(void);
  35. #endif //CFG_FLASH
  36. #endif //__OTA_MESH_FLASH_