40static uint8_t
s_ym_buf[XF_YMODEM_STX_PACKET_SIZE] = {0};
48 .user_file_info = NULL,
63 sp_ym->retry_num = 10;
64 sp_ym->timeout_ms = 50;
65 sp_ym->user_data = NULL;
68 xf_ret = xf_ymodem_check(
sp_ym);
96 int32_t rlen_real = 0;
100 uint32_t time_end_ms = time_start_ms + timeout_ms;
104 UART_NUM, (uint8_t *)dst + rlen_real, size - rlen_real);
108 if (rlen_real >= size) {
121 if ((time_ms - time_start_ms + 1) % 20 == 0) {
124 }
while (time_ms < time_end_ms);
132 uint8_t dummy_buf[32] = {0};
static int32_t port_xf_ymodem_read(void *dst, uint32_t size, uint32_t timeout_ms)
static void ex_ymodem_uart_setup(void)
static int32_t port_xf_ymodem_write(const void *src, uint32_t size, uint32_t timeout_ms)
static xf_ymodem_t s_ymodem
static void port_xf_ymodem_delay_ms(uint32_t ms)
void ex_init_xf_ymodem(void)
static xf_ymodem_t * sp_ym
xf_ymodem_t * ex_get_xf_ymodem(void)
static uint8_t s_ym_buf[XF_YMODEM_STX_PACKET_SIZE]
static const xf_ymodem_ops_t port_xf_ymodem_ops
static void port_xf_ymodem_flush(void)
xf_err_t xf_hal_uart_init(xf_uart_num_t uart_num, uint32_t baudrate)
uart 初始化。
int xf_hal_uart_read(xf_uart_num_t uart_num, uint8_t *data, uint32_t data_len)
uart 读取函数。
int xf_hal_uart_write(xf_uart_num_t uart_num, const uint8_t *data, uint32_t data_len)
uart 写入函数。
xf_err_t xf_hal_uart_set_gpio(xf_uart_num_t uart_num, xf_gpio_num_t tx_num, xf_gpio_num_t rx_num)
uart 设置 uart 的通讯 io。
xf_err_t xf_hal_uart_enable(xf_uart_num_t uart_num)
uart 启用函数。
xf_err_t xf_osal_delay_ms(uint32_t ms)
(睡眠)等待超时,以 ms 为单位。
xf_ms_t xf_sys_time_get_ms(void)
获取系统时间的时间戳,单位毫秒(ms)
#define XF_ERROR_CHECK(expression)
xfusion 错误检查宏(表达式 不等于 XF_OK 时则调用 XF_CHECK_ERROR_HANDLER)。
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
#define ARRAY_SIZE(arr)
ARRAY_SIZE - 获取数组 arr 中的元素数量。