网络IAP+网络主程序同时烧入F407,主程序网络连接不上

2019-07-20 01:15发布

本帖最后由 youfishing 于 2017-2-20 13:54 编辑

根据IAP与网络通信例程,制作了使用网络来IAP升级主程序,其中由于主程序只作为服务器部分,所以删掉了客户端部分程序和DHCP的部分程序。有以下2个问题想求教一下原子哥和各位前辈:
1、当主程序单独从8000000烧入后,电脑是可以连接上主程序的。当8000000烧入IAP程序,然后8010000烧入主程序后(两者设置的IP和端口号相同,使用ST烧写),IAP运行结束跳转到主程序时,电脑连接不上主程序了,但是主程序的运行灯正常工作(把主程序替换为例程中的原版网络例程,也连不上!)。

2、IAP通过网口接收升级数据包,我是分包发送,接收到每个小数据包后,直接写入flash,然后再接收下一个数据包。当每个小数据包设置为2KB时,IAP升级成功,主程序运行指示灯工作正常。当小数据包设置为3KB时,烧入FLASH中的主程序好像就有部分程序丢失了,导致跳转后无法运行!(我网上查到TCP协议每个数据包的最大限制是1460字节,当超过时,接收到后会分片重组,不知道是不是3KB时分片重组丢失了部分数据??)


程序在附件中,求教各位了。。。。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
aozima
1楼-- · 2019-07-20 02:46
>>问题1,已找到原因:在跳转的时候关闭了所有中断,把那条语句屏蔽就可以了。。。。。

要是APP中还没设置好ISR就来了中断你就死了。
正确姿势是boot中关闭中断,APP中准备好了再重新开。
tuy0326
2楼-- · 2019-07-20 03:27
 精彩回答 2  元偷偷看……
youfishing
3楼-- · 2019-07-20 05:24
tuy0326 发表于 2017-2-14 00:56
一包搞这么大有特殊意义吗?

刚开始用407,所以还没开始简化程序。。。
正点原子
4楼-- · 2019-07-20 05:38
你这得慢慢查了、
youfishing
5楼-- · 2019-07-20 10:26
 精彩回答 2  元偷偷看……
ztrx
6楼-- · 2019-07-20 12:59
附件呢