IAP解释起来比较复杂,需要理解它的本质
IAP就是你可以把程序放到APROM/LDROM的任何地方。这时候APROM和LDROM中的函数可以跳来跳去互相调用。APROM中的程序可以跳到APROM任何地方执行,也可以跳到LDROM的任何地方执行;LDROM中的程序也一样。如果bootloader太大,没关系,使能IAP之后,可以将bootloader一部分放在LDROM,一部分放在APROM,也可以全部放在APROM(将APROM分2块,1块放bootloader,1块放用户程序),系统从APROM启动后,先跑bootloader,然后切到后面的app执行。
附件是nano上的IAP bootloader的例子。这个例子将APROM分成3块:简单的boot code,app1和app2。因为有些应用,需要保证新的程序已经更新完才能擦除老的app,所以假设app1是老得程序,app2就是新的;下次再要更新程序的时候,app2就是老得,app1空间就是新更新的
|
|