ISP

在线ISP,主要依靠IAP_CONTR寄存器,使用IAP_CONTR=0x60触发单片机进入ISP模式,而不需要冷启动,减少调试时的麻烦,可配合自定义串口命令,可使用官方提供的ISP软件,或者利用官方提供的Upgrade.exe自行开发软件。

IAP

一般将全部64K都设置成EEPROM,让用户程序空间和EEPROM空间完全重合,这样就能实现用户对自己程序空间进行修改和控制。然后用户需要开发ISP程序和AP程序,由ISP程序负责AP程序的更新和引导。 STC8-ISP

ISP程序默认在0地址,AP程序由于地址不是从0开始的,在使用Keil开发时需要在BL51 Locate中配置Code Range,在Target中配置Off-chip Code memory,AP程序和ISP程序互相跳转的方法,

#define ISPPROGRAM 0x0
void (*IspProgram)() = ISPPROGRAM;

void uart() interrupt 4
{

    IspProgram();

}

OTA

基于lora,配合IAP功能,完成OTA功能。