我也遇到了个类似的问题,用的STM32H750的板子,App固件打包成.c的数组文件集成到bootloader,使用分散加载把固件地址映射到Qflash中,使用下载算法将固件下载到qflash,开机后通过bootloader将qflash中的程序转存到SDRAM(0xD0000000)中并跳转。可是bootloader跳转完貌似并没有进入App固件[C] 纯文本查看 复制代码 int main(void)
{
uint32_t *SouceAddr = (uint32_t *)&__Objects_App_bin;
uint32_t *DestAddr = (uint32_t *)APPLICATION_ADDRESS;
CPU_CACHE_Enable();
HAL_Init();
SystemClock_Config();
DEBUG_USART_Config();
BSP_MPU_ConfigRegion();
SDRAM_Init();
QSPI_FLASH_Init();
fh_memcpy(DestAddr, SouceAddr, 0x1000000); //转存1Mqflash数据至SDRAM
printf("booting to sdram success !!!\n");
CPU_CACHE_Disable();
SysTick->CTRL = 0;
JumpToApplication = (pFunction) (*(__IO uint32_t*) (APPLICATION_ADDRESS + 4));
__set_MSP(*(__IO uint32_t*) APPLICATION_ADDRESS);
JumpToApplication();
while(1)
{
}
}
|