/** ****************************************************************************** * @file STM32F0xx_IAP/inc/ymodem.h * @author MCD Application Team * @version V1.0.0 * @date 29-May-2012 * @brief Header for main.c module ****************************************************************************** * @attention * *

© COPYRIGHT 2012 STMicroelectronics

* * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef _YMODEM_H_ #define _YMODEM_H_ /* Includes ------------------------------------------------------------------*/ #include "stdint.h" /* Exported types ------------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/ #define PACKET_SEQNO_INDEX (1) #define PACKET_SEQNO_COMP_INDEX (2) #define PACKET_HEADER (3) #define PACKET_TRAILER (2) #define PACKET_OVERHEAD (PACKET_HEADER + PACKET_TRAILER) #define PACKET_SIZE (128) #define PACKET_1K_SIZE (1024) #define FILE_NAME_LENGTH (256) #define FILE_SIZE_LENGTH (16) #define SOH (0x01) /* start of 128-byte data packet */ #define STX (0x02) /* start of 1024-byte data packet */ #define EOT (0x04) /* end of transmission */ #define ACK (0x06) /* acknowledge */ #define NAK (0x15) /* negative acknowledge */ #define CA (0x18) /* two of these in succession aborts transfer */ #define CRC16 (0x43) /* 'C' == 0x43, request 16-bit CRC */ #define ABORT1 (0x41) /* 'A' == 0x41, abort by user */ #define ABORT2 (0x61) /* 'a' == 0x61, abort by user */ #define NAK_TIMEOUT (0x100000) #define MAX_ERRORS (5) #define APP_CONFIG_APPLICATION_END_ADDRESS 0x04080000 #define APP_CONFIG_APPLICATION_ADDRESS 0x0402f000 #define APP_CONFIG_APPLICATION_SIZE APP_CONFIG_APPLICATION_END_ADDRESS-APP_CONFIG_APPLICATION_ADDRESS /* Exported macro ------------------------------------------------------------*/ /* Exported functions ------------------------------------------------------- */ int32_t Ymodem_Receive (uint8_t *); uint8_t Ymodem_Transmit (uint8_t *,const uint8_t* , uint32_t ); uint16_t UpdateCRC16(uint16_t crcIn, uint8_t byte); uint16_t Cal_CRC16(const uint8_t* data, uint32_t size); uint8_t CalChecksum(const uint8_t* data, uint32_t size); int32_t Ymodem_CheckResponse(uint8_t c); void Ymodem_PrepareIntialPacket(uint8_t *data, const uint8_t* fileName, uint32_t *length); void Ymodem_PreparePacket(uint8_t *SourceBuf, uint8_t *data, uint8_t pktNo, uint32_t sizeBlk); void Ymodem_SendPacket(uint8_t *data, uint16_t length); uint32_t Send_Byte (uint8_t c); #endif /* _YMODEM_H_ */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/