📄 +
字号:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: Xmodem.h
** Last modified Date: 2008.08.21
** Last Version: v1.0
** Description: Xmodem的头文件
**
**------------------------------------------------------------------------------------------------------
** Created By: Weng Heiwei
** Created date: 2008.08.20
** Version: v1.0
** Descriptions:
**
********************************************************************************************************/
#ifndef __XMODEM_H__
#define __XMODEM_H__
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************************************************************************
定义Xmodem的控制字符
*********************************************************************************************************/
#define SOH 0x01
#define EOT 0x04
#define ACK 0x06
#define NAK 0x15
#define CAN 0x18
/*********************************************************************************************************
定义Xmodem协议的控制常量
*********************************************************************************************************/
#define BLOCK_SIZE 128
#define ONE_SECOND (SysCtlClockGet())
/*********************************************************************************************************
定义Xmodem的数据帧结构
*********************************************************************************************************/
struct Frame
{
unsigned char blkNum; /* 数据包序号 */
unsigned char blkNumRev; /* 数据包序号补码 */
unsigned char dataBlk[BLOCK_SIZE]; /* 数据区 */
unsigned char checkSum; /* 累加校验和 */
};
/*********************************************************************************************************
** 函数名称: XmodemRun
** 功能描述: Xmodem协议传输函数
** 入口参数: ptr Xmodem帧数据接收缓冲区
** 出口参数: true 通信成功
** false 发送方中止通信
*********************************************************************************************************/
extern uint8 XmodemRun(uint8 *ptr);
/*********************************************************************************************************
** 函数名称: RecFrame
** 功能描述: 接受XMODEM的一帧数据
** 入口参数: oneFrame 帧数据结构变量的地址
** preblkNum 预测的包号
** 出口参数: 0 接收的帧数据正确
** 1 接收的帧数据错误
*********************************************************************************************************/
static int RecFrame(struct Frame* oneFrame,uint8 preblkNum);
/*********************************************************************************************************
** 函数名称: MemCpy
** 功能描述: 数据拷贝函数
** 入口参数: des 目的数据缓冲区
** src 源数据缓冲区
** length 拷贝的数据长度
** 出口参数: 无
*********************************************************************************************************/
static void MemCpy(char *des, char *src, int length);
/*********************************************************************************************************
** 函数名称: CheckSum
** 功能描述: 求累加校验和
** 入口参数: oneFrame Xmodem帧结构数据
** 出口参数: Xmodem数据区的累加校验和
*********************************************************************************************************/
static unsigned char CheckSum(struct Frame* oneFrame);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -