大家好,
目前所做的项目中要实现OAD功能,配置好相关的宏并产生了image_A,B相关的 .hex文件和bin文件后,通过flash programmer将BIM,IMAGE_A,IMAGE_B烧写入设备后,总是在image_A当中运行;
在image_A 运行的情况下通过相关软件进行OAD升级后能在image_B中运行,但是通过light blue连接来观察协议,A,B的协议同时存在;然后执行相关切换操作煤油切换到image_A中去,而是不知道运行在哪里了。以下是我执行切换操作的代码:
uint16 crc[2] = { 0x0000, 0xFFFF };
uint16 addr = OAD_IMG_R_PAGE * ((uint16)(HAL_FLASH_PAGE_SIZE / HAL_FLASH_WORD_SIZE)) + OAD_IMG_CRC_OSET / HAL_FLASH_WORD_SIZE;
HalFlashWrite(addr, (uint8 *)crc, 1);
HAL_SYSTEM_RESET();
请教相关的大神,谢谢您的帮助。