本帖最后由 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时分片重组丢失了部分数据??)
程序在附件中,求教各位了。。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
要是APP中还没设置好ISR就来了中断你就死了。
正确姿势是boot中关闭中断,APP中准备好了再重新开。
刚开始用407,所以还没开始简化程序。。。
一周热门 更多>