2、检查内存布局是否正确:在跳转前,需要确保在IAP和bootloader两段程序之间有足够的空间,以免跳转后出现内存溢出等问题。需要检查bootloader程序所在的ROM段以及可以被复制和更新的数据段是否设置正确。
bootloader写在0x08000000开始的地方,可以设置大小为0x10000,64kb大小。APP写在0x08010000开始。在bootloader去读0x08010000的值给MSP,0x08010004为程序开始的位置,都为16位数据,然后再跳转,注意跳转时最好关闭中断和外设,不同内核还需要设置终端向量表:SCB->VTOR=0x08000000|((ADDR_FLASH_SECTOR_2-0x08000000)&(uint32_t)0x1FFFFF80)ADDR_FLASH_SECTOR_2定义为0x08010000;欢迎分享,转载请注明来源:内存溢出
评论列表(0条)