芯片是STM32F107VCT
就调用了一个systeminit初始化,然后进入while(1)循环;
while(1)
{
if(cishu==8)
{
iap_write_appbin(FLASH_APP1_ADDR,udp_recvbuff,applen);
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)
{
iap_load_app(FLASH_APP1_ADDR);
}
}
}
在做用网口在线升级程序,这个是iap程序,本来while(1)里面不是这几句语句的,后来监控发现初始化完成后立马就会进入iap_write_appbin(FLASH_APP1_ADDR,udp_recvbuff,applen)这句,之后cishu等于8满足后程序就直接到判断if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)了,不会执行iap_write_appbin这句了。所以直接把写flash这句放到while里面直接执行,结果情况还是如此。
请问这是什么情况?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>