怎么使用stm32写IAP的bootloader和APP
1个回答
展开全部
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;
APP写在0x08010000开始。
在bootloader去读0x08010000的值给MSP,0x08010004为程序开始的位置,都为16位数据,然后再跳转,注意跳转时最好关闭中断和外设,不同内核还需要设置终端向量表:
SCB->VTOR = 0x08000000 | ((ADDR_FLASH_SECTOR_2-0x08000000) & (uint32_t)0x1FFFFF80);
ADDR_FLASH_SECTOR_2定义为0x08010000;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询