From ed57c7c32a3642c4512c71a0779bbb6e9780f3ad Mon Sep 17 00:00:00 2001 From: armink Date: Sat, 13 Sep 2014 11:15:48 +0800 Subject: [PATCH] [Ymodem]When active end the session, It can config send CAN number. --- components/utilities/ymodem/ymodem.c | 7 ++++--- components/utilities/ymodem/ymodem.h | 7 +++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/components/utilities/ymodem/ymodem.c b/components/utilities/ymodem/ymodem.c index f5ebeab832..3af1528024 100644 --- a/components/utilities/ymodem/ymodem.c +++ b/components/utilities/ymodem/ymodem.c @@ -197,7 +197,7 @@ static rt_err_t _rym_do_trans(struct rym_ctx *ctx) { rt_err_t err; enum rym_code code; - rt_size_t data_sz; + rt_size_t data_sz, i; code = _rym_read_code(ctx, RYM_WAIT_PKG_TICK); @@ -223,8 +223,9 @@ static rt_err_t _rym_do_trans(struct rym_ctx *ctx) { case RYM_CODE_CAN: /* the spec require multiple CAN */ - _rym_putchar(ctx, RYM_CODE_CAN); - _rym_putchar(ctx, RYM_CODE_CAN); + for (i = 0; i < RYM_END_SESSION_SEND_CAN_NUM; i++) { + _rym_putchar(ctx, RYM_CODE_CAN); + } return -RYM_ERR_CAN; case RYM_CODE_ACK: _rym_putchar(ctx, RYM_CODE_ACK); diff --git a/components/utilities/ymodem/ymodem.h b/components/utilities/ymodem/ymodem.h index 43ee6f5c10..d82e76d936 100644 --- a/components/utilities/ymodem/ymodem.h +++ b/components/utilities/ymodem/ymodem.h @@ -55,6 +55,9 @@ enum rym_code { #define RYM_CHD_INTV_TICK (RT_TICK_PER_SECOND * 3) #endif +/* how many CAN be sent when user active end the session. */ +#define RYM_END_SESSION_SEND_CAN_NUM 0x07 + enum rym_stage { RYM_STAGE_NONE, /* set when C is send */ @@ -129,7 +132,7 @@ struct rym_ctx * second. */ rt_err_t rym_recv_on_device(struct rym_ctx *ctx, rt_device_t dev, - rym_callback on_begin, rym_callback on_data, rym_callback on_end, - int handshake_timeout); + rt_uint16_t oflag, rym_callback on_begin, rym_callback on_data, + rym_callback on_end, int handshake_timeout); #endif