bootloader说白了就是你有板子在客户那里跑,但是你发现了bug或者有升级需求,但是又不能去每个客户那里一遍遍的烧录升级,那么远程的,在线的升级方式就应运而生了。
大部分bootloader的做法便是用利用flash空间的后段部分用作boot,即让代码从后半段boot开始读取,再有后半段跳回前半段代码。前半段为用户代码,而一旦你有了boot就可以挑选你从flash储存空间中何处开始算作你的用户代码,说白了,只要你的flash空间够大,你可以同时储存多个版本代码。
在远程升级的过程中可以先把代码下载下来,而主程序一直运行,代码下载完成后可以由主程序改变标志位,并且主动复位,而后重新进入boot从而实现在线升级。目前该方法运用较为普遍。