| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #ifndef __YMODEM_H__
- #define __YMODEM_H__
- #include "board.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define YMODEM_FLAG_UNKNOWN (0x0001u)
- #define YMODEM_FLAG_BLK_END (0x0002u)
- #define YMODEM_FLAG_FILE_END (0x0004u)
- #define YMODEM_SOH (0x01u)
- #define YMODEM_STX (0x02u)
- #define YMODEM_EOT (0x04u)
- #define YMODEM_ACK (0x06u)
- #define YMODEM_NAK (0x15u)
- #define YMODEM_CAN (0x18u)
- #define YMODEM_C (0x43u)
- #define YMODEM_LONG_SIZE (1024)
- #define YMODEM_SHORT_SIZE (128)
- #define YMODEM_GOOD_CRC (0x0000u)
- #define YMODEM_BUF_DEPTH (2048+256)
- typedef struct {
- uint8_t HeadByte;
- uint8_t BlkSeq;
- uint16_t Flag;
- uint16_t CalCRC;
- uint16_t ByteLeft;
- uint16_t ByteIdx;
- uint16_t WrAddr;
- uint16_t AckAddr;
- uint16_t RdAddr;
- uint32_t Fsize;
- uint32_t MaxSize;
- uint32_t FlashAddr;
- uint8_t *Buf;
- } ymodem_cntxt_t;
- extern ymodem_cntxt_t ymodem_cntxt;
- extern uint16_t ymodem_crc(uint8_t byte, uint16_t crc_old);
- extern void ymodem_rx_byte(uint8_t RxByte, void *arg);
- extern uint16_t ymodem_rx_file(ymodem_cntxt_t *p);
- extern uint16_t FIFO_to_MCU_pp(uint8_t last_blk, uint8_t *buf, uint16_t waddr, uint16_t raddr, uint32_t *faddr);
- #ifdef __cplusplus
- }
- #endif
- #endif
|