我对这三个问题的理解是这样的。大家看看对不对: 1.首先运行的是启动代码中的 “Reset_Handler”在“_Handler中调用” ProcessorInit,复制bootloader到sram中,并在sram中运行bootloader。执行完 “Reset_Handler”再接着执行 “Reset_Handler_In_SRAM”,在 “Reset_Handler_In_SRAM”调用 CheckForceUpdate函数,在 CheckForceUpdate函数中判断如果使能了 ENABLE_UPDATE_CHECK,则return(CheckGPIOForceUpdate()); 在这留两个个问题。2.在bl_check.c中怎么判断按键按下?是在 CheckGPIOForceUpdate()中的
如果按键按下则g_ulForced = 1;return(1);。 3.之所以停在这,是因为调用了 Updater函数,在这个函数中
而我没有通过LM Flash Programmer来升级程序,所以一直停在 if(ReceivePacket(g_pucDataBuffer, &ulSize) != 0) { continue; } 不知道我理解的对不对,还请大家帮忙分析分析! 在刚开始留下了两个问题, 1.在 CheckForceUpdate()函数里有个
不清楚是干嘛用的? 2.在 CheckForceUpdate函数中判断如果使能了 ENABLE_UPDATE_CHECK,则return(CheckGPIOForceUpdate()); 如果按键按下则g_ulForced = 1;return(1);根据返回值来决定是执行bootloader还是用户程序,那么是哪条语句来利用返回的“0”或者“1”来决定是执行bootloader还是用户程序啊? |