From ad4745ba9ee6c8957263d890696e090eae65e204 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Mon, 9 Nov 2026 10:18:45 +0800 Subject: [PATCH] =?UTF-8?q?ymodem=20TX=E6=8F=A1=E6=89=8B=E6=94=B9=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E5=BC=8F=E7=AD=89'C'=EF=BC=8C=E5=AE=B9=E5=BF=8D?= =?UTF-8?q?=E6=8C=87=E4=BB=A4=E5=9B=9E=E6=B3=A2=E5=8F=8A"ry:=20receiving..?= =?UTF-8?q?."=E6=89=93=E5=8D=B0=E7=AD=89=E6=9D=82=E5=AD=97=E8=8A=82?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=E6=8F=A1=E6=89=8B=E8=AF=AF=E6=8A=A5?= =?UTF-8?q?=E8=B6=85=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- peripheral/ymodem.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/peripheral/ymodem.c b/peripheral/ymodem.c index 4b8f7c3..48bcc40 100644 --- a/peripheral/ymodem.c +++ b/peripheral/ymodem.c @@ -304,14 +304,13 @@ static int _rym_do_send_handshake(struct rym_ctx *ctx, int tm_sec) tm_sec, (unsigned)RYM_CHD_INTV_MS); for (i = 0; i < (size_t)tm_sec; i++) { - code = _rym_read_code(ctx, RYM_CHD_INTV_MS); + /* 容忍杂字节扫描: 'C' 之前可能混有对端回波/文本打印 (如发送端 UI + * 自动代发 c:ry(".") 后对端 REPL 的回显和 "ry: receiving ..." 提示), + * 直读会把杂字节逐个烧成超时轮次造成误报 TMO, 见 _rym_read_code_scan 注释 */ + const uint8_t ucAccept[1] = { RYM_CODE_C }; + code = _rym_read_code_scan(ctx, RYM_CHD_INTV_MS, ucAccept, 1); if (code == RYM_CODE_C) break; - if (code != RYM_CODE_NONE) - { - /* 收到别的字节也报出来: 区分"链路完全没数据"与"有数据但不是 'C'" */ - log_w("ymodem TX handshake: got 0x%02X while waiting 'C'", (unsigned)code); - } } if (i == (size_t)tm_sec) {