上电后固定执行一条语句

2019-10-16 04:02发布

芯片是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里面直接执行,结果情况还是如此。
请问这是什么情况?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
hyarcher25
1楼-- · 2019-10-16 09:46
已经解决。重新用官方demo然后更改其中关键代码就行了。
正点原子
2楼-- · 2019-10-16 12:31
仿真
hyarcher25
3楼-- · 2019-10-16 16:19
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-10-16 19:52
hyarcher25 发表于 2016-12-1 19:51
仿真?啥意思原子哥。。。

仿真找问题
lavion
5楼-- · 2019-10-16 23:48
关闭编译器的优化 看看.
hyarcher25
6楼-- · 2019-10-17 03:03
正点原子 发表于 2016-12-1 22:36
仿真找问题

软件仿真么。全部是no permission....运行不了

一周热门 更多>