三个问题如下:
1. Image B是用户代码,它是不是不能用来升级,包括升级不能升级Image B,也不能升级OAD Target App(Image A)?
2. 如果问题1答案是不能的话,那么就是Image B必须通过OAD Target App来升级了,既然这样,为何还一定要让Image B包含OAD的Profile呢?我的理解是Image只要有下面这个操作就能回到OAD Target App了,然后用OAD Target App升级Image B。而其它的什么Profile或者Service都不用加到Image B了(好处不好用解释了)
uint16_t crc[2] = {0x0000, 0x0000}; // Invalidate the image. OADTarget_writeFlash(OAD_IMG_R_PAGE, OAD_IMG_R_OSET + AD_IMG_CRC_OSET,(uint8_t *)crc, 4); // Reset. HAL_SYSTEM_RESET();
3. 内部Flash方式的OAD是没有SNV的,如何添加?是否只要在OAD Target App的stack工程配置中的Preprocessor中将OSAL_SNV=0改为OSAL_SNV=1或者OSAL_SNV=2即可?link文件之类的需要改动吗?