#ifndef __OTA_MESH_FLASH_ #define __OTA_MESH_FLASH_ #include "ota_flash.h" #ifndef CFG_OTA_MESH #error "unsupported OTA_mesh config, please check micro:CFG_OTA_MESH!" #else #if(CFG_FLASH >= 512) #define OTAFM_APP_RAMRUN_ADDR 0x11017000 //108K bytes #define OTAFM_APP_XIP_ADDR 0x11032000 //120K bytes #define OTAFM_FW_OTA_ADDR 0x11050000 //256K bytes #define OTAFM_FW_OTA_INFO_SZ 0x1000 //size of ota info, 4K #define OTAFM_FW_OTA_DATA_OFFSET 0x2000 #define OTAFM_FW_OTA_DATA_ADDR (OTAFM_FW_OTA_ADDR + OTAFM_FW_OTA_DATA_OFFSET) #endif #define OTAFM_DEV_FLG_USED 0 #define OTAFM_DEV_FLG_UNINIT 0xff #define OTAFM_DEV_FLG_INVALID 0x80 #define OTAFM_DEV_FLG_READY 0xfe #define OTAFM_DEV_FLG_OTAING 0xfc #define OTAFM_DEV_FLG_COMPLETED 0xf8 #define OTAFM_DEV_FLG_FAILED 0xec typedef struct{ uint16_t dev_type; uint16_t index; uint8_t dev_addr[6]; }otafmesh_dev_t; int otafm_write_partition(uint32 addr, uint32_t* p_sect, uint32_t size); int otafm_write_boot_sector(uint32_t* p_sect, uint32_t size, uint32_t offset); int otafm_dev_add(otafmesh_dev_t* pdev); int otafm_dev_pull(otafmesh_dev_t* pdev); int otafm_dev_clear(otafmesh_dev_t* pdev); int otafm_fw_load(ota_fw_t* pfw); int otafm_fw_execute(void); int otafm_format(void); #endif //CFG_FLASH #endif //__OTA_MESH_FLASH_