This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc3200 OTA

Other Parts Discussed in Thread: CC3200

HI  ,cc3200 的sdk 1.3.0 的ota_update_os,中使用drop_box在国内不能使用,请问下,如果只是使用简单的httpserver,进行OTAS升级,应该怎么做?

请了解的,协助,谢谢!

  • 您可以参考附件,可以尝试在本地搭一个服务器来做升级。

  • hi ,susan ,有以下几个问题:

    1。看了SDK中的ota_update_os 中,在OTAUpdateTask中,

    else if ((iRet & RUN_STAT_DOWNLOAD_DONE))
    {
    //
    // Set OTA File for testing
    //
    iRet = sl_extLib_OtaSet(pvOtaApp, EXTLIB_OTA_SET_OPT_IMAGE_TEST,
    sizeof(int), (_u8 *)&SetCommitInt);

    sDisplayInfo.iOTAStatus = OTA_DONE;

    if (iRet & (OTA_ACTION_RESET_MCU| OTA_ACTION_RESET_NWP) )
    {
    g_ulSysState = SYS_STATE_REBOOT;
    }
    else
    {
    g_ulSysState = SYS_STATE_WAIT;
    }

    DisplayRefresh();
    }

    不明白为什么要调用sl_extLib_OtaSet,其中Option  为什么要设置为EXTLIB_OTA_SET_OPT_IMAGE_TEST,是测试刚刚接收的IMAGE?

      iRet = sl_extLib_OtaSet(pvOtaApp, EXTLIB_OTA_SET_OPT_IMAGE_TEST, sizeof(int), (_u8 *)&SetCommitInt);

    2.我现在在本地用HFS,搭建一个http服务器,能不能将创建新的IMG_USER_1,升级文件 完整下载下来后,修改为新的IMAGE,然后reboot,这样做可以吗?

  • 请问,CC3200 OTA  SDK 中是怎样校验的?

  • 国内使用参考如下方案

    由于在官方的SDK里面使用的是dropbox做服务器来进行OTA升级,国内访问不了, 为了方便大家可以参考,下面是用国内的一个服务器来实现的OTA例程。

    https://github.com/yhpan0613/SimpleLink-CC3200/releases/tag/cc3200_ota_servicepack_and_image_v1_0

    这是整套的代码,是基于SDK 1.2.0的,例程的名称是ota_update_cn。

    请注意在编译这个例程之前, simplelink_extlib/ota是需要重新编译的。

    在服务器端的准备升级的MCU Image以及Service Pack根据协议要放在位置OTA/CC3200。待升级的文件列表以及它们的大小是存储在一个文件img.txt里面,文件格式如下:

          SP_SIGN:{f40_sys_servicepack.sig}

          SIGN_SIZE:{256}

          SERVICEPACK:{f43_sys_servicepack.ucf}

          SP_SIZE:{28236}

          MCU_IMG:{f80_sys_mcuimg.bin}

          MCU_SIZE:{36316}

    冒号前面的字段是文件标识,后面的字段是文件名称, f是文件标识,后面的数字代表标识的含义如下:

    • 01 - The file is secured 
    • 02 - The file is secured with signature
    • 04 - The file is secured with certificate
    • 08 - Don't convert _sys_ into /sys/ for SFLASH 
    • 10 - Use external storage instead of SFLASH 
    • 20 - Reserved.
    • 40 - NWP should be reset after this download
    • 80 - MCU should be reset after this download

    还有另外一个文件ver.txt, 里面存储的是MCU image和Service Pack存储的路径,格式如下:

    “CDN_url”: http://SERVER_DOMAIN/OTA/CC3200/Vid01_Pid33_Ver18/,

    Vid代表Vendor ID, Pid代表Product ID, Ver代表升级软件版本,OTA/CC3200目录下文件列表如下

    Vid01_Pid33_Ver18下面文件列表如下:

          

     

    sys_servicepack.sig代表service pack的签名文件,会存储在/sys/serverpack.sig。sys_servicepack.ucf是待升级的service pack文件,会存储在/sys/serverpack.ucf。sys_mcuimg.bin是待升级的MCU Image文件,会存储在/sys/mcuimg2.bin。在进行OTA前, /sys/mcuimg.bin需要烧录application_bootloader, /sys/mcuimg1.bin需要烧录当前运行的Image。当OTA升级结束后,application_bootloader将会加载mcuimg2去运行。然后在下一次OTA的时候,从云服务器上下载的Image会烧录到/sys/mcuimg1.bin,在设备重启后application bootloader会自动加载mcuimg1。

    注意:服务器端的KeepAlive选项要设置成ON.

  • 请教一下,OTA下载mcuimg2.bin 失败后, bootloader 怎样才会去加载mcuimg1.bin。 现在是失败了,不能还原