1. 硬石科技的IAP功能
1.1 bootloader采用swd进行下载,下载到FLASH 中0x0800 0000为起始地址的flash中;
1.2. app采用串口发送的方式进行下载,首先存放在ram中,bootloader程序初始化后会定义一个内存区域strAppBin,其定义为
struct STRUCT_IAP_RECIEVE
{
uint8_t ucDataBuf[APP_FLASH_LEN];
uint16_t usLength;
} strAppBin;
如果按键KEY1按下,则进行RAM到FLASH 的copy操作IAP_Write_App_Bin()函数;
1.3. app中设定的偏移量为 SCB->VTOR = FLASH_BASE | 0x10000;。这样如果按键KEY2按下,开始运行app程序后,则会从0x0801 0000 进行app的死循环;