微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 关于2630 ota 完毕后无法启动的问题

关于2630 ota 完毕后无法启动的问题

时间:10-02 整理:3721RD 点击:

    基于2630 ota demo 进行功能添加, 不添加SC的任务代码,ota功能正常;

    添加SC的相关任务代码后, ota img能够 下载到外部flash 并 通过校验,client端在执行 OTA_loadExtImage()后,新镜像一直没被有加载 且  没有重启动作,人为重启后设备的固件仍然为更新前的固件;

→改进:在ota启动时,将SC的任务删除,依然更新失败,现象同上;

SC任务创建时,对OTA产生了影响?

另外,

void OTA_loadExtImage(uint8 imageSelect)
{
  ...
  
  if(imageSelect == ST_FULL_IMAGE || imageSelect == ST_APP_ONLY_IMAGE)
  {
    ((void (*)(uint32_t, uint32_t, uint32_t))SENSORTAGAPP_BL_OFFSET)
                          (EFL_ADDR_IMAGE_MIRROR,zclOTA_DownloadedImageSize - 64, 0);
  }

  ...
}

该函数中的相关 宏 SENSORTAGAPP_BL_OFFSET 的位置如何去检查?

在你的Bootloader+zigbee协议栈+Sensor controller的代码时,能够正常运行么?

建议在升级前把SCE的任务stop掉。

另外一个版本,可以在OTA结束以后,从外部falsh把代码拷贝到内部以后,可以用Flash Programmer 2把程序读到hex文件,可以跟第一次的hex文件对比下。

   Bootloader+zigbee协议栈+Sensor controller的代码 是可以正常执行,目前测试结果,应该是 系统cpu 下I2C驱动对OTA有影响,测试情况如下:

   在sensorTag工程下,注释掉I2C相关代码后,ota更新完毕后无法自行加载 新镜像 而导致失败;

                                    不注释掉I2C相关代码,则ota正常;

   我们这边在sensorTag工程下禁止I2C的操作如下:

  

    ①添加编译选项:DISABLE_CPU_I2C_FUNC

     #ifndef DISABLE_CPU_I2C_FUNC
            // Setup I2C for sensors
           bspI2cInit();
      #endif
 

      #ifndef DISABLE_CPU_I2C_FUNC
         // Initialise the Temperature Sensor driver
        sensorTmp007Init();
     #endif


     ②禁止ZCL_REPORT 和 TI_DRIVERS_I2C_INCLUDED编译选项
     ③注释掉下方文件中I2C相关代码

      C:\ti\simplelink\zstack_home_1_02_02a_44539_ota_sensorTag\Projects\zstack\HomeAutomation\SensorTag-OTA\CC2650\Baseloader\CC26XXST_0120\Board.h

      C:\ti\tirtos_simplelink_2_11_01_09\packages\ti\boards\SensorTag\CC26XXST_0120\Board.c
      C:\ti\tirtos_simplelink_2_11_01_09\packages\ti\boards\SensorTag\CC26XXST_0120\Board.h

   这样操作是否正确?若不正确,2630协议栈中如何 禁止i2c驱动?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top