第一种情况,当flash较小时,app在flash上运行,去下载新的app去覆盖自己,这个情况是不行的。
第2中情况 当flash小而ARM大的情况,flash上的app上电在flash执行,然后拷贝到arm里面运行,下载新的app到arm里面,然后烧写到flash,这样确实没有问题,但是如果在烧写的时候断电了,那只烧写了一半,那板子就成砖头了,必须回厂才行。这个时候就得引入bootloader。
(图片中应该是RAM画错了尴尬)
引入BootLoader
当上电时BootLoader会检查发现没有app,或者通过网络发现BootLoader需要更新,它会不运行app,会运行自己然后通过wifi下载新的app到内存,然后覆盖之前的app,如果断电的话,app并没有更新完,它会再次上电的时候还会检测。这就是引入BootLoader的原因。