⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 +

📁 基于Luminary远程在线升级解决方案
💻
字号:
/****************************************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 + -