OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9732|回复: 8

关于Ymodem协议使用上位机软件

[复制链接]

6

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2014-7-18
在线时间
23 小时
发表于 2017-2-16 17:18:55 | 显示全部楼层 |阅读模式
1金钱
最近在做Ymodem协议的IAP在线编程,感觉超级终端这个软件有点太过简单了。有没有朋友推荐一个功能比较齐全的工具软件,例如可以选择128字节一个数据包或者1024字节一个数据包等等..

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2017-2-16 19:02:54 | 显示全部楼层
自己写最符合你的要求了
回复

使用道具 举报

120

主题

7884

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-2-18 11:06:39 | 显示全部楼层
正点原子 发表于 2017-2-16 19:02
自己写最符合你的要求了

简单粗暴的回复啊
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2016-10-28
在线时间
26 小时
发表于 2017-2-21 14:55:04 | 显示全部楼层
去年用MFC 做了个类似的东西,一直忙还没有加入Ymodem协议,如果楼主能搞得定,可以给楼主。
回复

使用道具 举报

6

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2014-7-18
在线时间
23 小时
 楼主| 发表于 2017-2-21 18:17:26 | 显示全部楼层
makc 发表于 2017-2-21 14:55
去年用MFC 做了个类似的东西,一直忙还没有加入Ymodem协议,如果楼主能搞得定,可以给楼主。

MFC不太懂,暂时用着Xshell 5
回复

使用道具 举报

13

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
695
金钱
695
注册时间
2017-8-14
在线时间
131 小时
发表于 2017-11-30 13:50:18 | 显示全部楼层
正点原子 发表于 2017-2-16 19:02
自己写最符合你的要求了

原子哥我在QT平台做了一个自动升级软件,基于YModem的。
完成后,我给单片机烧写.bin文件,显示烧写成功了,但是单片机启动后还是没程序,但是用超级终端烧是可以的。 是文件格式发送对了但是数据错了,还是怎么回事  求解啊  谢谢谢谢
yi?我的二哈哪去了
回复

使用道具 举报

22

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2224
金钱
2224
注册时间
2017-7-6
在线时间
271 小时
发表于 2017-12-1 11:55:42 | 显示全部楼层
楼主你看ymodem源码了吗?在发数据的时候数据不满1K就是按128字节发的啊
回复

使用道具 举报

22

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2224
金钱
2224
注册时间
2017-7-6
在线时间
271 小时
发表于 2017-12-1 11:57:32 | 显示全部楼层
      if (size >= PACKET_1K_SIZE)
      {
        pktSize = PACKET_1K_SIZE;
      
      }
      else
      {
        pktSize = PACKET_SIZE;
      }
      Ymodem_SendPacket(packet_data, pktSize + PACKET_HEADER);
      /* Send CRC or Check Sum based on CRC16_F */
      /* Send CRC or Check Sum based on CRC16_F */
      if (CRC16_F)
      {
         tempCRC = Cal_CRC16(&packet_data[3], pktSize);
         Send_Byte(tempCRC >> 8);
         Send_Byte(tempCRC & 0xFF);
      }
      else
      {
        tempCheckSum = CalChecksum (&packet_data[3], pktSize);
        Send_Byte(tempCheckSum);
      }

我是在YMODEM发送函数摘取其中一段代码,PACKET_SIZE就是128字节
回复

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2020-10-15
在线时间
32 小时
发表于 2022-10-18 08:18:39 | 显示全部楼层
胡图图图 发表于 2017-11-30 13:50
原子哥我在QT平台做了一个自动升级软件,基于YModem的。
完成后,我给单片机烧写.bin文件,显示烧写成功 ...

大佬,您这个是用串口的吗还是网口的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 09:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表