打印

关于官方IAP远程升级程序

[复制链接]
2518|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


在ST官网下好了IAP的库,根据代码
   if (key == 0x31)    {
      /* Download user application in the Flash */
      SerialDownload();
    }

在超级终端按下按键“1”进入 SerialDownload();函数,然后超级终端开始传文件,但是传不过去如下图



后来我查了ymodem协议,需要接收方先发一个大写字母C开启传输,我在ST的官方程序里并没有看到传输C的地方,不知道是不是这个原因,所以超级终端一直没有发生?
Ymodem协议是一种发送并等待的协议。即发送方发送一个数据包以后,都要等待接收方的确认。如果是ACK信号,则可以发送新的包。如果是NAK信号,则重发或者错误退出。
2、文件传输过程
文件传输过程的开启:
(1)开启是由接收方开启传输,它发一个大写字母C开启传输。然后进入等待(SOH)状态,如果没有回应,就会超时退出。
(2)发送方开始时处于等待过程中,等待C。收到C以后,发送(SOH)数据包开始信号,发送序号(00),补码(FF),“文件名”,“空格”“文件大小”“除去序号外,补满128字节”,CRC校验两个字节。进入等待(ACK)态。                                                         
沙发
wenshijian| | 2013-10-30 19:12 | 只看该作者
嗯这个确实有点麻烦,当初我也花了不少时间来研究这个ymodern,想做远程升级。折腾了至少一个月后来果断放弃,因为这个协议其实很麻烦。
后来我转而研究远程ISP升级去了,其实ISP远程升级要简单多了

使用特权

评论回复
板凳
玉蓝田i|  楼主 | 2013-10-31 10:38 | 只看该作者
wenshijian 发表于 2013-10-30 19:12
嗯这个确实有点麻烦,当初我也花了不少时间来研究这个ymodern,想做远程升级。折腾了至少一个月后来果断放弃 ...

ISP怎么远程升级,要是板子挂在天花板上怎么办?

使用特权

评论回复
地板
wenshijian| | 2013-10-31 13:01 | 只看该作者
本帖最后由 wenshijian 于 2013-10-31 13:03 编辑
玉蓝田i 发表于 2013-10-31 10:38
ISP怎么远程升级,要是板子挂在天花板上怎么办?

呵呵,IAPISP同样是采用串口升级的,为什么不能用ISP?而且IAP还要增加YMODERN协议,修改中断向量,转移APP起始地址,偶尔会出现Hardfauld...ISP都不需要修改你的任何代码。
有兴趣的话去我的博客看看吧,大概原理是:把HEX文件传到FTP服务器,然后载客户端登陆,选择HEX文件,就可以进行ISP升级。升级完了自动运行新的程序。
当然为了能够实现升级过程中得免手动接BOOT0,RST,你可以参考我的电路图来制作智能ISP电路。这样就只需要打开ISP软件就能升级了,当然要在你的产品上预留好相应的接口了,可以是USB也可以是6PIN的插座。

使用特权

评论回复
5
wenshijian| | 2013-10-31 15:17 | 只看该作者
好吧我忘记告诉你了,这还是有区别的。IAP升级是内置IAP代码,如果你会的话,这个还是蛮自由的可以修改;ISP是使用了电脑软件,通过网络方式来远程刷写FLASH。如果你要做的是全程免操作的话,IAP会比较好。
ISP只是给各种手持仪器做远程升级比较方便,因为手持仪器支持电脑操作,移动比较方便。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

105

帖子

2

粉丝