硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3915|回复: 4
收起左侧

[有问必答] 串口IAP Ymodem协议问题求助

[复制链接]

3

主题

5

回帖

14

积分

新手上路

积分
14
发表于 2020-1-4 15:54:36 | 显示全部楼层 |阅读模式
本帖最后由 wenzi 于 2020-1-4 15:56 编辑

在阅读串口IAP的程序中,发现关于Ymodem协议方面有个地方没弄明白/* 读取文件名 */
for (i = 0, file_ptr = packet_data + PACKET_HEADER; (*file_ptr != 0) && (i < FILE_NAME_LENGTH);)
{
    FileName[i++] = *file_ptr++;
}


关于这个读取文件名的:*file_ptr != 0,是因为在发送完文件名后,要在最后加入00以表示文件名的结束,
所以这里是*file_ptr != 0。

但是对于下面读取文件大小中:
/* 读取文件大小 */
for (i = 0, file_ptr ++; (*file_ptr != ' ') && (i < FILE_SIZE_LENGTH);)
{
    file_size[i++] = *file_ptr++;
}

我所查阅的资料是在读取完文件大小后,同样最后要加上00以表示结束,然后剩余的不够的字节再以
00填充,那这里的程序为什么是*file_ptr != ' ',而不是上述所示的*file_ptr != 0呢?
还请各位大佬指点,谢谢

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2020-1-4 16:52:08 | 显示全部楼层
' '是啥,空格?空字符?
回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-1-4 17:10:17 | 显示全部楼层
eric2013 发表于 2020-1-4 16:52
' '是啥,空格?空字符?

我也没弄明白这是啥,源程序就是这样的,是一个空格,难道Ymodem协议在传送完文件大小时,空了一格?
}{~8YFRD~U50QL`C_T$YP22.png


回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2020-1-6 11:15:49 | 显示全部楼层
我看到的Ymodem协议里面文件名字符串是以0结束,文件长度字符串是以空格结束,其余以0填充
回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2020-1-9 12:57:46 | 显示全部楼层
hzwyx 发表于 2020-1-6 11:15
我看到的Ymodem协议里面文件名字符串是以0结束,文件长度字符串是以空格结束,其余以0填充

哦哦~按照这样说的话那程序就能够解释的通了
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 00:20 , Processed in 0.166167 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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