听到这个"需求"的第一反应“这是开玩笑吧”。我是是一个普通的码农,怎么可能开发出了那么复杂的东西。
带着一头冷汗,开始查资料中…
原来如此,有一种下载程序的方式叫做“IAP”。 悬着的心终于放了下来。
原来“给单片机烧写程序”的实质就是把“编译”好的“程序二进制文件”复制到芯片的flash中,和从电脑传电影到MP4播放器上是相似的原理。只不过现在这个“电影”是 “程序二进制文件”,而单片机就是这个“二进制程序”的“播放器”。
一、前言(需求背景)
需求背景就是“远程更新硬件设备的芯片程序(固件)”。在开发硬件设备的时候,一般使用专用“烧写器”给芯片烧写程序。从而完成芯片应用程序编码和调试工作。在硬件设备研发完成,正式生产出产品并卖给客户后。如果需要更新硬件程序怎么办。难道也要给用户邮寄一个烧写器和程序文件?一个批次的产品都需要更新,你能邮寄的过来吗?这期间会消耗多少成本。这是要赔本的节奏呀。因此,你需要一个“更新固件”的功能。“更新固件”这个词,对于爱鼓捣智能设备的兄台应该很熟悉吧。注意,使用网络或GPRS远程升级固件的时候,这项技术被称为“OTA升级”。
二、实现“更新固件”的原理
“更新固件”从技术角度来看,本质上是“芯片自己给自己更新(烧写)程序”。没错就是自己给自己更新程序,听起来有点吓人,万一芯片学会了自己给自己迭代升级程序,就像生物进化一样,一步一步的进化,最终出现“智慧思想”怎么办。如果你看过“终结者”就会知道:“没办法,拦是拦不住的”。因此,就会出现“硅基生物”代替“碳基生物”的地球(如果你看过刘慈欣的著作你就会明白我要表达的意思)。</