ZSTACK中OTA升级程序问题

2019-03-24 17:50发布

Zstack里OTA的HAL_OTA_DL和HAL_OTA_RC是什么意思,指的是待更新设备和协调器吗?Image指的是镜像文件吗?

  1. /******************************************************************************
  2. * @fn      dl2rc
  3. *
  4. * [url=home.php?mod=space&uid=159083]@brief[/url]   Copy the DL image to the RC image location.
  5. *
  6. *  NOTE:   Assumes that DL image ends on a flash word boundary.
  7. *
  8. * @param   None.
  9. *
  10. * @return  None.
  11. */
  12. static void dl2rc(void)
  13. {
  14.   uint32 oset;
  15.   OTA_SubElementHdr_t subElement;
  16.   OTA_ImageHeader_t header;
  17.   uint16 addr = HAL_OTA_RC_START / HAL_FLASH_WORD_SIZE;
  18.   uint8 buf[4];

  19.   // Determine the length and starting point of the upgrade image
  20.   HalOTARead(0, (uint8 *)&header, sizeof(OTA_ImageHeader_t), HAL_OTA_DL);
  21.   HalOTARead(header.headerLength, (uint8*)&subElement, OTA_SUB_ELEMENT_HDR_LEN, HAL_OTA_DL);

  22.   for (oset = 0; oset < subElement.length; oset += HAL_FLASH_WORD_SIZE)
  23.   {
  24.     HalOTARead(oset + header.headerLength + OTA_SUB_ELEMENT_HDR_LEN, buf, HAL_FLASH_WORD_SIZE, HAL_OTA_DL);
  25.     if ((addr % (HAL_FLASH_PAGE_SIZE / HAL_FLASH_WORD_SIZE)) == 0)
  26.     {
  27.       HalFlashErase(addr / (HAL_FLASH_PAGE_SIZE / HAL_FLASH_WORD_SIZE));
  28.     }
  29.     HalFlashWrite(addr++, buf, 1);
  30.   }
  31. }
复制代码

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。