CH573F OnlyUpdateApp_JumpIAP的作用是什么

使用方式二OTA升级时, OnlyUpdateApp_JumpIAP文件起始地址为0x00000000,大小为4K;APP文件起始地址0x0000C000,大小为16K;APP文件起始地址为0x00001000,大小为44K。

  1. 请问JumpIAP是如何跳转到IAP程序的

  2. 下面的代码为OnlyUpdateApp_JumpIAP工程中main.c中仅有的代码,他的作用是什么

#define IMAGE_ADDR          0xC000

__attribute__ ((aligned(4))) int Image_Flag __attribute__((section(".ImageFlag")))=
    (0x6F<<0)|\
    ((IMAGE_ADDR>>(15-7)&(0xe0))<<8)|\
    (((IMAGE_ADDR<<(7-3)&(0xe0)) | (IMAGE_ADDR>>(11-4)&(0x10)) | (IMAGE_ADDR>>(19-3)&(0x0f)))<<16)|\
    (((((IMAGE_ADDR>>(20-7))&(0x80)) | ((IMAGE_ADDR>>(10-6))&(0x3f))))<<24);

    

    3.APP程序中也有类似的代码,两者之间是否有什么联系

/* 用于APP判断文件有效性 */
const uint32 Address=0xFFFFFFFF;
__attribute__ ((aligned(4))) UINT32 Image_Flag __attribute__((section(".ImageFlag")))=(uint32)&Address;


这个实际上 定义了一个变量,然后赋初值。
只是这个变量比较特殊,放在了特定的flash分区image.png,这个可以看工程的ld文件。

image.png

这一段就是对定义的image.png变量进行赋值。

赋值的值就是以image.png值做机器语言的运算,转换成跳转指令。

所以OTA都有这个


只有登录才能回复,可以选择微信账号登录