微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > 关于cc3200在启动时的bootloader加载过程以及ota升级的几个问题

关于cc3200在启动时的bootloader加载过程以及ota升级的几个问题

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

我在看《CC3200 Bootloader OTA_Update Note.pdf》这个文档时有几个问题,请TI的朋友帮忙解答一下

1. 出厂后的板子的flash中初始有“/sys/mcuimg.bin”和“/sys/mcuimg1.bin”两个文件,后续随着ota升级会再增加“/sys/mcuimg2.bin”和“/sys/mcuimg3.bin”。

    “/sys/mcuimg.bin”是relocator.bin+bootmgr.bin,作用是将/sys/mcubootinfo.bin中标志位指定的“/sys/mcuimgX.bin”加载入RAM并执行,这样看来实际的App程序应该是 “/sys/mcuimgX.bin”。

    我的问题是,为什么使用UniFlash向cc3200 launchpad的flash烧程序时目标文件是“/sys/mcuimg.bin”?我们烧的程序应该是App程序,难道目标程序不应该是 “/sys/mcuimgX.bin”吗?

没人回答吗?

是我的问题描述不清晰吗?

请知道的朋友帮忙解答一下,谢谢!

请对这个比较清楚的朋友帮忙解答一下,感激不尽

/sys/mcuimg.bin的作用是选择启动哪个程序。

/sys/mcuimg1.bin的作用是从网络上把mcuimg2.3下载到flash里面,等价于用uniflash烧写进去,

Song Fu Sheng

/sys/mcuimg.bin的作用是选择启动哪个程序。

/sys/mcuimg1.bin的作用是从网络上把mcuimg2.3下载到flash里面,等价于用uniflash烧写进去,

多谢回复

你的意思是说mcuimg1.bin仅仅负责ota升级下载mcuimg2.3,除此之外所有其他的app程序都不在mcuimg1.bin文件中?

在CC3200的Spi_Flash中,

/sys/mcuimg .bin               ------是你自己写的Bootloader 程序 

/sys/mcubootinfo.bin         -------这个是系统自己创建的文件

/sys/mcuimg1.bin              -------出厂IMG_FACTORY_DEFAULT

/sys/mcuimg2.bin              --------你实际的APP.bin程序

/sys/mcuimg3.bin              --------你实际的APP.bin程序(做备份处理,如果上一次升级失败了可以退回到之前的版本中正常运行)

在升级过程中mcuimg2/mcuimg3均失败时,程序可以退回到出厂固件mcuimg1中,否则仅退回到上一次固件版本中。

Terry Han

在CC3200的Spi_Flash中,

/sys/mcuimg .bin               ------是你自己写的Bootloader 程序 

/sys/mcubootinfo.bin         -------这个是系统自己创建的文件

/sys/mcuimg1.bin              -------出厂IMG_FACTORY_DEFAULT

/sys/mcuimg2.bin              --------你实际的APP.bin程序

/sys/mcuimg3.bin              --------你实际的APP.bin程序(做备份处理,如果上一次升级失败了可以退回到之前的版本中正常运行)

在升级过程中mcuimg2/mcuimg3均失败时,程序可以退回到出厂固件mcuimg1中,否则仅退回到上一次固件版本中。

mcuimg1.bin也是app程序吧,是出厂时的app程序。

那这样的话我在用uniflash向开发板的flash上刷程序更新/sys/mcuimg.bin时,是不是也更新了/sys/mcuimg1.bin这个文件呢?

我做的一个项目就是利用

/sys/mcuimg.bin -bootloader

/sys/mcuimg1.bin -ota

两个文件实现从服务器下载文件到/sys/mcuimg2.bin然后把/sys/mcuimg2.bin复制到/sys/mcuimg3.bin供升级失败回滚。

下载成功之后运行mcuimg2.bin

uniflash上面可以选择更新文件的擦除 校验 编程

多谢楼上各位的回复。

可能是我的问题说的不够清楚,大家的回复没能解决我的疑问。

请看这样一个场景:

我在尝试wlan_station这个sample,我在CCS中打开wlan_station工程,编译后生成了一个wlan_station.bin文件,我使用uniflash向开发板的flash上刷程序,这需要我选择刚编译生成的wlan_station.bin文件去更新/sys/mcuimg.bin,刷写成功。

我使用uniflash去“List File System”,结果发现仅有“/sys/mcuimg.bin”,没有“/sys/mcuimg1.bin”文件。

按照文档上的说法,mcuimg.bin是relocator.bin+bootmgr.bin,mcuimg1.bin才是app程序,那么为什么这里没有mcuimg1.bin,而且wlan_station的app程序在mcuimg.bin中?

请对这一块比较清楚地朋友不吝赐教,谢谢!

请参考我的output, 你要不要用最新的UNIFLASH再试试看,版本3.4.1.

[17:57:16] Begin ListFileSystem operation.
[17:57:17] INFO: > Executing Operation: Connect
[17:57:19] INFO: setting break signal
[17:57:19] INFO: connection succeeded
[17:57:19] INFO: getting storage list
[17:57:19] INFO: > Executing Operation: Init
[17:57:19] INFO: reading version info
[17:57:19] INFO: DEVICE CC3200 ES1.33
[17:57:19] INFO: reading version info
[17:57:20] INFO: reading version info
[17:57:22] INFO: > Executing Operation: ListFileSystem
[17:57:22] INFO: extracting file system information...
[17:57:22] INFO: Serial Flash block size: 4096 bytes
[17:57:22] INFO: Serial Flash capacity:  256 blocks

[17:57:22] INFO:  file start size fail total size filename
[17:57:22] INFO:  index block [BLKs] safe [BLKs]
[17:57:22] INFO: ----------------------------------------------------------------------------
[17:57:22] INFO:  N/A 0 5 N/A 5  FATFS
[17:57:22] INFO:  0 81 11 no 11  /sys/mcuimg.bin
[17:57:22] INFO:  4 5 5 yes 10  /tmp/phy.cal
[17:57:22] INFO:  6 15 33 yes 66  /sys/servicepack.ucf
[17:57:22] INFO:  7 92 2 no 2  www/index.html
[17:57:22] INFO:  8 94 3 no 3  www/about.html
[17:57:22] INFO:  9 97 1 no 1  www/demos.html
[17:57:22] INFO:  10 98 2 no 2  www/demos-appliances.html
[17:57:22] INFO:  11 100 2 no 2  www/demos-energy.html
[17:57:22] INFO:  12 102 2 no 2  www/demos-security.html
[17:57:22] INFO:  13 104 2 no 2  www/demos-sprinkler.html
[17:57:22] INFO:  14 106 1 no 1  www/overview.html
[17:57:22] INFO:  15 107 1 no 1  www/param_about.html
[17:57:22] INFO:  16 108 1 no 1  www/param_config.html
[17:57:22] INFO:  17 109 1 no 1  www/param_demos.html
[17:57:22] INFO:  18 110 1 no 1  www/param_online.html
[17:57:22] INFO:  19 111 2 no 2  www/portal.html
[17:57:22] INFO:  20 113 4 no 4  www/setup.html
[17:57:22] INFO:  21 117 3 no 3  www/css/style.css
[17:57:22] INFO:  22 120 1 no 1  www/images/demo-lightswitch.jpg
[17:57:22] INFO:  23 121 2 no 2  www/images/demo-security-alarmoff.jpg
[17:57:22] INFO:  24 123 3 no 3  www/images/demo-security-alarmon.jpg
[17:57:22] INFO:  26 126 12 no 12  www/images/demo-sprinkler-on.jpg
[17:57:22] INFO:  27 138 13 no 13  www/images/demo-sprinkler-off.jpg
[17:57:22] INFO:  28 151 12 no 12  www/images/demo-washerdryer.jpg
[17:57:22] INFO:  29 163 5 no 5  www/images/hw-sbd.gif
[17:57:22] INFO:  30 168 1 no 1  www/images/icon-demo-safety.gif
[17:57:22] INFO:  31 169 2 no 2  www/images/icon-demo-smartenergy.gif
[17:57:22] INFO:  32 171 4 no 4  www/images/sw-sbd.gif
[17:57:22] INFO:  33 175 1 no 1  www/images/icon_l_html_a.png
[17:57:22] INFO:  34 176 1 no 1  www/images/icon-demo-homeappliances.gif
[17:57:22] INFO:  35 177 1 no 1  www/images/icon-demo-homeautomation.gif
[17:57:22] INFO:  36 178 1 no 1  www/images/ticom3-tab-left.gif
[17:57:22] INFO:  37 179 1 no 1  www/images/tab-line.gif
[17:57:22] INFO:  38 180 1 no 1  www/images/ticom3-tab-right.gif
[17:57:22] INFO:  39 181 1 no 1  www/images/ti-logo.png
[17:57:22] INFO:  40 182 2 no 2  www/js/com.ti.numericstepper.js
[17:57:22] INFO:  41 184 1 no 1  www/js/com.ti.tokenpoller.js
[17:57:22] INFO:  42 185 1 no 1  www/js/jquery.rwdimagemaps.js
[17:57:22] INFO:  43 186 1 no 1  www/js/jquery.rwdimagemaps.min.js
[17:57:22] INFO:  44 187 24 no 24  www/js/jquery-1.8.3.min.js
[17:57:22] INFO:  45 211 2 no 2  www/js/page-actions.js
[17:57:22] INFO:


[17:57:22] INFO:  Flash usage
[17:57:22] INFO: -------------------------
[17:57:22] INFO: used space: 213 blocks
[17:57:22] INFO: free space: 43 blocks
[17:57:22] INFO: memory hole: [213-255]
[17:57:22] INFO: > Executing Operation: Disconnect
[17:57:22] Operation ListFileSystem returned.

请问你是怎么弄,能提供相关的代码吗。邮箱349071257@qq.com

没有代码,我就只是用uniflash把out_of_box例程烧录进去了。然后用uniflash去读文件列表。

hi Yonghua Pan

谢谢回复

我现在使用的uniflash版本就是3.4.1

从你的ListFileSystem操作的输出结果来看,flash上只有/sys/mcuimg.bin文件,没有/sys/mcuimg1.bin文件

这就是我有疑问的地方

按照文档上的说法,mcuimg.bin是relocator.bin+bootmgr.bin,mcuimg1.bin才是app程序,那么为什么这里没有mcuimg1.bin,而且app程序在mcuimg.bin中?

能否先做一个实验,先格式化,然后用uniflash打开C:\ti\CC3200SDK_1.2.0\cc3200-sdk\example\out_of_box\html\out_of_box.ucf,烧录到CC3200里面,再用unflash读取一下,记得SOP2要跳上,看看列表和我上面的是否一样。

如果和我上面的一样,再试一下格式化再烧录你的mcuimg1等等,如果还有问题,把你的usf打包保存下来上传,我这里可以测试看看。

能否先做一个实验,先格式化,然后用uniflash打开C:\ti\CC3200SDK_1.2.0\cc3200-sdk\example\out_of_box\html\out_of_box.ucf,烧录到CC3200里面,再用unflash读取一下,记得SOP2要跳上,看看列表和我上面的是否一样。

如果和我上面的一样,再试一下格式化再烧录你的mcuimg1等等,如果还有问题,把你的usf打包保存下来上传,我这里可以测试看看。

能否先做一个实验,先格式化,然后用uniflash打开C:\ti\CC3200SDK_1.2.0\cc3200-sdk\example\out_of_box\html\out_of_box.ucf,烧录到CC3200里面,再用unflash读取一下,记得SOP2要跳上,看看列表和我上面的是否一样。

如果和我上面的一样,再试一下格式化再烧录你的mcuimg1等等,如果还有问题,把你的usf打包保存下来上传,我这里可以测试看看。

http://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/p/113625/315534.aspx#315534

终于弄明白了

mcuimg就是cc3200内置bootloader启动的img
在调试类似于wlan_station这种example时,mcuimg由cc3200内置bootloader启动,它就是app的bin文件

在加入ota升级功能后,mcuimg是另一个bootloader,它在被cc3200内置bootloader启动后,本身再去读取mcubootinfo中的信息并选择mcuimg1.bin、mcuimg2.bin、mcuimg3.bin其中之一启动,后三者就是app的bin文件

谢谢这个帖子里的各位朋友的帮助

你好,

有两问题请赐教:

(1)上电后拷贝系统内置Bootloader到SRAM的原因?在ROM里面不可以直接运行吗?

(2)如果烧写固件的过程中,主动给CC3200断电,会有什么后果?

在线等回复,先表谢意。

就是我现在需要一种功能,就是通过建立一个TCP连接,然后进行应用程序的远程升级,之前有用atmel做过这个的远程升级,

现在想把这部分功能移植到CC3200上面,具体有没有这方面的示例程序。

之前ATMEL的做法是:

(1)修改bootload.c 

         主要是串口透传的从服务器读取文件

(2)应用程序倒没有做什么特别的要求

(3)ATMEL有一个融丝烧写的。

漏掉了一个

(4)之前是单独有个ATMEL bootload工程代码。

我看到有类似的博客介绍,这个CC3200 bootload工程代码的,但是不知道如何进行修改。

ATMEL bootload远程APP.bin远程升级的做法细化:

a.切换到bootload区域,执行代码

b.通过串口发送wifi模块的AT指令,发送HTTP请求,从云端获取,hex文件。

c.从串口接收HTTP数据,有一个串口缓存,轮询的按页的方式,使能读写用户数据,(这些AVR有专门的函数)写入到特定128字节的写入到用户应用存储程序的区域,读写完成,结束。

d.退出,切换到应用区域执行代码,重新启动程序。

但是有一个前提是,我的wifi是和AVR单片机相互独立的。

CC3200该如何做到?http://blog.csdn.net/hytgab/article/details/48014103 看这个连接,他好像是自己从flash里面读取的。

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

网站地图

Top