你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
any012 发表于 2019-8-14 10:17 请教,bootloader为什么要分任务一和任务二,下载完后直接更新app不行吗? 任务一中:
any012 发表于 2019-8-14 10:56 谢谢,受教。 就是bootladder任务一,开始0.2秒以后,将启动标志位设为app启动,如果下载完成,则将启动标 ...
奏奏奏 发表于 2019-8-14 11:17 经过这么提醒,确实任务二中第一次写入启动标志是多余的。
any012 发表于 2019-8-14 11:27 还有个疑惑,任务一中,为什么要经过0.2秒后才设置启动标志,一开始就设置启动标志不行吗? ...
不错
任务一中:
“运行0.2秒后,写入标志位F1,令重启后跳转到A区,目的防掉电后变砖”
这段不懂,任务一和任务二必须在0.2秒内完成吗?
(1)直接更新APP的风险在于,如果接收OTA数据包的过程中意外断电,即使重新上电也会变砖。
(2)写入标志位要快,如果等开机10秒后写入,那么这10秒期间断电就直接变砖。
(3)并非任务一和任务二必须在0.2秒内完成,而是写入标志位到FLASH这个操作必须在0.2秒内完成。目的就是防止意外断电重启后变砖。
就是bootladder任务一,开始0.2秒以后,将启动标志位设为app启动,如果下载完成,则将启动标志设为任务二启动,在这之前如果断电,说明下载未完成,启动后重新执行app任务。
任务一完成后,重启进入bootladder任务二,更新app程序,在此期间断电的话,重启进入的还是bootladder任务二,重新更新app程序,直到完成后,设启动标志为app任务。
那么bootloadder任务二里,没有必要再设置一遍启动标志吧?
经过这么提醒,确实任务二中第一次写入启动标志是多余的。
还有个疑惑,任务一中,为什么要经过0.2秒后才设置启动标志,一开始就设置启动标志不行吗?
我试一下。
之前是因为写入FLASH的时候影响系统初始化,开机运行受影响。