From 65f1d70842d83f92aa31d79c97e364b4b0fd9ab6 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 20 五月 2025 09:39:51 +0800
Subject: [PATCH] 加入气压计驱动  空间不够报错

---
 keil/include/drivers/ymodem.c | 1186 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 593 insertions(+), 593 deletions(-)

diff --git a/keil/include/drivers/ymodem.c b/keil/include/drivers/ymodem.c
index 9e9b9ae..8d48742 100644
--- a/keil/include/drivers/ymodem.c
+++ b/keil/include/drivers/ymodem.c
@@ -1,6 +1,6 @@
 /**
   ******************************************************************************
-  * @file    STM32F0xx_IAP/src/ymodem.c 
+  * @file    STM32F0xx_IAP/src/ymodem.c
   * @author  MCD Application Team
   * @version V1.0.0
   * @date    29-May-2012
@@ -16,8 +16,8 @@
   *
   *        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, 
+  * 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.
@@ -58,85 +58,85 @@
 /* Private functions ---------------------------------------------------------*/
 uint32_t Str2Int(uint8_t *inputstr, int32_t *intnum)
 {
-  uint32_t i = 0, res = 0;
-  uint32_t val = 0;
+    uint32_t i = 0, res = 0;
+    uint32_t val = 0;
 
-  if (inputstr[0] == '0' && (inputstr[1] == 'x' || inputstr[1] == 'X'))
-  {
-    if (inputstr[2] == '\0')
+    if (inputstr[0] == '0' && (inputstr[1] == 'x' || inputstr[1] == 'X'))
     {
-      return 0;
+        if (inputstr[2] == '\0')
+        {
+            return 0;
+        }
+        for (i = 2; i < 11; i++)
+        {
+            if (inputstr[i] == '\0')
+            {
+                *intnum = val;
+                /* return 1; */
+                res = 1;
+                break;
+            }
+            if (ISVALIDHEX(inputstr[i]))
+            {
+                val = (val << 4) + CONVERTHEX(inputstr[i]);
+            }
+            else
+            {
+                /* return 0, Invalid input */
+                res = 0;
+                break;
+            }
+        }
+        /* over 8 digit hex --invalid */
+        if (i >= 11)
+        {
+            res = 0;
+        }
     }
-    for (i = 2; i < 11; i++)
+    else /* max 10-digit decimal input */
     {
-      if (inputstr[i] == '\0')
-      {
-        *intnum = val;
-        /* return 1; */
-        res = 1;
-        break;
-      }
-      if (ISVALIDHEX(inputstr[i]))
-      {
-        val = (val << 4) + CONVERTHEX(inputstr[i]);
-      }
-      else
-      {
-        /* return 0, Invalid input */
-        res = 0;
-        break;
-      }
+        for (i = 0; i < 11; i++)
+        {
+            if (inputstr[i] == '\0')
+            {
+                *intnum = val;
+                /* return 1 */
+                res = 1;
+                break;
+            }
+            else if ((inputstr[i] == 'k' || inputstr[i] == 'K') && (i > 0))
+            {
+                val = val << 10;
+                *intnum = val;
+                res = 1;
+                break;
+            }
+            else if ((inputstr[i] == 'm' || inputstr[i] == 'M') && (i > 0))
+            {
+                val = val << 20;
+                *intnum = val;
+                res = 1;
+                break;
+            }
+            else if (ISVALIDDEC(inputstr[i]))
+            {
+                val = val * 10 + CONVERTDEC(inputstr[i]);
+            }
+            else
+            {
+                /* return 0, Invalid input */
+                res = 0;
+                break;
+            }
+        }
+        /* Over 10 digit decimal --invalid */
+        if (i >= 11)
+        {
+            res = 0;
+        }
     }
-    /* over 8 digit hex --invalid */
-    if (i >= 11)
-    {
-      res = 0;
-    }
-  }
-  else /* max 10-digit decimal input */
-  {
-    for (i = 0;i < 11;i++)
-    {
-      if (inputstr[i] == '\0')
-      {
-        *intnum = val;
-        /* return 1 */
-        res = 1;
-        break;
-      }
-      else if ((inputstr[i] == 'k' || inputstr[i] == 'K') && (i > 0))
-      {
-        val = val << 10;
-        *intnum = val;
-        res = 1;
-        break;
-      }
-      else if ((inputstr[i] == 'm' || inputstr[i] == 'M') && (i > 0))
-      {
-        val = val << 20;
-        *intnum = val;
-        res = 1;
-        break;
-      }
-      else if (ISVALIDDEC(inputstr[i]))
-      {
-        val = val * 10 + CONVERTDEC(inputstr[i]);
-      }
-      else
-      {
-        /* return 0, Invalid input */
-        res = 0;
-        break;
-      }
-    }
-    /* Over 10 digit decimal --invalid */
-    if (i >= 11)
-    {
-      res = 0;
-    }
-  }
 
-  return res;
+    return res;
 }
 /**
   * @brief  Receive byte from sender
@@ -145,18 +145,18 @@
   * @retval 0: Byte received
   *         -1: Timeout
   */
- int32_t Receive_Byte (uint8_t *c, uint32_t timeout)
+int32_t Receive_Byte (uint8_t *c, uint32_t timeout)
 {
-  while (timeout-- > 0)
-  {
-    if (SerialKeyPressed(c) == 1)//如果收到串口数据
+    while (timeout-- > 0)
     {
-		//	Serial0_PutString("接受成功");
-      return 0;
+        if (SerialKeyPressed(c) == 1)//如果收到串口数据
+        {
+            //	Serial0_PutString("接受成功");
+            return 0;
+        }
     }
-  }
-		//	Serial0_PutString("接受失败");
-  return -1;
+    //	Serial0_PutString("接受失败");
+    return -1;
 }
 
 /**
@@ -164,40 +164,40 @@
   * @param  c: Character
   * @retval 0: Byte sent
   */
- uint32_t Send_Byte (uint8_t c)
+uint32_t Send_Byte (uint8_t c)
 {
-  SerialPutChar(c);
-  return 0;
+    SerialPutChar(c);
+    return 0;
 }
 
 /**
   * @brief  Update CRC16 for input byte
-  * @param  CRC input value 
+  * @param  CRC input value
   * @param  input byte
   * @retval Updated CRC value
   */
 uint16_t UpdateCRC16(uint16_t crcIn, uint8_t byte)
 {
-  uint32_t crc = crcIn;
-  uint32_t in = byte|0x100;
+    uint32_t crc = crcIn;
+    uint32_t in = byte|0x100;
 
-  do
-  {
-    crc <<= 1;
-    in <<= 1;
-
-    if(in&0x100)
+    do
     {
-      ++crc;
-    }
-    
-    if(crc&0x10000)
-    {
-      crc ^= 0x1021;
-    }
- } while(!(in&0x10000));
+        crc <<= 1;
+        in <<= 1;
 
- return (crc&0xffffu);
+        if(in&0x100)
+        {
+            ++crc;
+        }
+
+        if(crc&0x10000)
+        {
+            crc ^= 0x1021;
+        }
+    } while(!(in&0x10000));
+
+    return (crc&0xffffu);
 }
 
 /**
@@ -208,17 +208,17 @@
   */
 uint16_t Cal_CRC16(const uint8_t* data, uint32_t size)
 {
-  uint32_t crc = 0;
-  const uint8_t* dataEnd = data+size;
-  
-  while(data<dataEnd)
-  {
-    crc = UpdateCRC16(crc,*data++);
-  }
-  crc = UpdateCRC16(crc,0);
-  crc = UpdateCRC16(crc,0);
+    uint32_t crc = 0;
+    const uint8_t* dataEnd = data+size;
 
-  return (crc&0xffffu);
+    while(data<dataEnd)
+    {
+        crc = UpdateCRC16(crc,*data++);
+    }
+    crc = UpdateCRC16(crc,0);
+    crc = UpdateCRC16(crc,0);
+
+    return (crc&0xffffu);
 }
 
 /**
@@ -229,15 +229,15 @@
   */
 uint8_t CalChecksum(const uint8_t* data, uint32_t size)
 {
-  uint32_t sum = 0;
-  const uint8_t* dataEnd = data+size;
- 
-  while(data < dataEnd)
-  {
-    sum += *data++;
-  }
+    uint32_t sum = 0;
+    const uint8_t* dataEnd = data+size;
 
- return (sum&0xffu);
+    while(data < dataEnd)
+    {
+        sum += *data++;
+    }
+
+    return (sum&0xffu);
 }
 
 /**
@@ -256,73 +256,73 @@
 uint8_t c;
 static int32_t Receive_Packet (uint8_t *data, int32_t *length, uint32_t timeout)
 {
-  uint16_t packet_size, computedcrc;
-  
-  *length = 0;
-  if (Receive_Byte(&c, timeout) != 0)//返回0成功收取数据,-1为没收到数据
-  {
-    return -1;
-  }
-  switch (c)
-  {
-    case SOH:
-      packet_size = PACKET_SIZE;
-      break;
-    case STX:
-      packet_size = PACKET_1K_SIZE;
-      break;
-    case EOT:
-      return 0;
-    case CA:
-      if ((Receive_Byte(&c, timeout) == 0) && (c == CA))
-      {
-        *length = -1;
-        return 0;
-      }
-      else
-      {
+    uint16_t packet_size, computedcrc;
+
+    *length = 0;
+    if (Receive_Byte(&c, timeout) != 0)//返回0成功收取数据,-1为没收到数据
+    {
         return -1;
-      }
+    }
+    switch (c)
+    {
+    case SOH:
+        packet_size = PACKET_SIZE;
+        break;
+    case STX:
+        packet_size = PACKET_1K_SIZE;
+        break;
+    case EOT:
+        return 0;
+    case CA:
+        if ((Receive_Byte(&c, timeout) == 0) && (c == CA))
+        {
+            *length = -1;
+            return 0;
+        }
+        else
+        {
+            return -1;
+        }
     case ABORT1:
     case ABORT2:
-      return 1;
+        return 1;
     default:
-      return -1;
-  }
-  *data = c;//放到1024+5字节的包里面
-  for (i2 = 1; i2 < (packet_size + PACKET_OVERHEAD); i2 ++)
-  {
-    if (Receive_Byte(data + i2, timeout) != 0)//不断的接收1024字节放入
-    {
-      return -1;
+        return -1;
     }
-  }
-	//检测序号补码是是否正确
-  if (data[PACKET_SEQNO_INDEX] != ((data[PACKET_SEQNO_COMP_INDEX] ^ 0xff) & 0xff))
-  {
-		
-    return 1;
-  }
-	if(current_seqno==data[PACKET_SEQNO_INDEX]||c==SOH)
-	{
-		current_seqno++;
-	}else{
-		return 1;
-	}
+    *data = c;//放到1024+5字节的包里面
+    for (i2 = 1; i2 < (packet_size + PACKET_OVERHEAD); i2 ++)
+    {
+        if (Receive_Byte(data + i2, timeout) != 0)//不断的接收1024字节放入
+        {
+            return -1;
+        }
+    }
+    //检测序号补码是是否正确
+    if (data[PACKET_SEQNO_INDEX] != ((data[PACKET_SEQNO_COMP_INDEX] ^ 0xff) & 0xff))
+    {
 
-  /* Compute the CRC */
-  computedcrc = Cal_CRC16(&data[PACKET_HEADER], (uint32_t)packet_size);//计算CRC16码
-  /* Check that received CRC match the already computed CRC value
-     data[packet_size+3]<<8) | data[packet_size+4] contains the received CRC 
-     computedcrc contains the computed CRC value */
-  if (computedcrc != (uint16_t)((data[packet_size+3]<<8) | data[packet_size+4]))//检测CRC16校验码
-  {
-    /* CRC error */
-    return 1;
-  }
+        return 1;
+    }
+    if(current_seqno==data[PACKET_SEQNO_INDEX]||c==SOH)
+    {
+        current_seqno++;
+    } else {
+        return 1;
+    }
 
-  *length = packet_size;
-  return 0;
+    /* Compute the CRC */
+    computedcrc = Cal_CRC16(&data[PACKET_HEADER], (uint32_t)packet_size);//计算CRC16码
+    /* Check that received CRC match the already computed CRC value
+       data[packet_size+3]<<8) | data[packet_size+4] contains the received CRC
+       computedcrc contains the computed CRC value */
+    if (computedcrc != (uint16_t)((data[packet_size+3]<<8) | data[packet_size+4]))//检测CRC16校验码
+    {
+        /* CRC error */
+        return 1;
+    }
+
+    *length = packet_size;
+    return 0;
 }
 
 /**
@@ -332,111 +332,111 @@
   */
 extern volatile unsigned long time32_reset;
 uint8_t packet_data[PACKET_1K_SIZE + PACKET_OVERHEAD], file_size[FILE_SIZE_LENGTH], *file_ptr, *buf_ptr;	//1024 + 5
-uint8_t bufferOut[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+uint8_t bufferOut[16]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 uint8_t *BufferIn;
 int32_t i, j, packet_length, session_done, file_done, packets_received, errors, session_begin, size = 0;
 uint32_t flashdestination, ramsource,tempaddress;
 int32_t Ymodem_Receive (uint8_t *buf)
-{  
+{
 
-	aesDecInit();//AES解密初始化
-  /* Initialize flashdestination variable */
-  flashdestination = APP_CONFIG_APPLICATION_ADDRESS; //APP代码的起始地址,APP_CONFIG_APPLICATION_ADDRESS = 0x8005000,可在target界面根据情况设置
+    aesDecInit();//AES解密初始化
+    /* Initialize flashdestination variable */
+    flashdestination = APP_CONFIG_APPLICATION_ADDRESS; //APP代码的起始地址,APP_CONFIG_APPLICATION_ADDRESS = 0x8005000,可在target界面根据情况设置
     current_seqno=0;                                       //这些都在ymodem.h里面的宏进行设置
-  flash_seqno=2;
-  for (session_done = 0, errors = 0, session_begin = 0; ;)//死循环直至文件数据包全部发送完成
-  {
-    for (packets_received = 0, file_done = 0, buf_ptr = buf; ;)
+    flash_seqno=2;
+    for (session_done = 0, errors = 0, session_begin = 0; ;)//死循环直至文件数据包全部发送完成
     {
-			
-      switch (Receive_Packet(packet_data, &packet_length, NAK_TIMEOUT))
-      {
-        case 0://成功接收到1K
-          errors = 0;
-          switch (packet_length)
-          {
-            /* Abort by sender */
-            case - 1:  //接收失败
-              Send_Byte(ACK);  //回复
-              return 0;
-            /* End of transmission */
-            case 0:
-              Send_Byte(ACK);//回复
-              file_done = 1;
-              break;
-            /* Normal packet */
-            default:   //接收成功
-              if ((packet_data[PACKET_SEQNO_INDEX] & 0xff) != (packets_received & 0xff))
-              {//序号00(文件名)
-                Send_Byte(NAK);
-								
-              }
-              else
-              {
-                if (packets_received == 0)//文件名(首包)
-                {
-                  /* Filename packet */
-                  if (packet_data[PACKET_HEADER] != 0)//文件名字
-                  {
-                    /* Filename packet has valid data */
-                    for (i = 0, file_ptr = packet_data + PACKET_HEADER; (*file_ptr != 0) && (i < FILE_NAME_LENGTH);)
-                    {
-                      FileName[i++] = *file_ptr++;//保存文件名
-                    }
-                    FileName[i++] = '\0';//字符串形式
-                    for (i = 0, file_ptr ++; (*file_ptr != ' ') && (i < (FILE_SIZE_LENGTH - 1));)
-                    {
-                      file_size[i++] = *file_ptr++;//文件大小
-                    }
-                    file_size[i++] = '\0';
-                    Str2Int(file_size, &size);//Convert a string to an integer
+        for (packets_received = 0, file_done = 0, buf_ptr = buf; ;)
+        {
 
-                    /* Test the size of the image to be sent */
-                    /* Image size is greater than Flash size */
-                    if (size > (APP_CONFIG_APPLICATION_SIZE + 1))
-                    {
-                      /* End session */
-                      Send_Byte(CA);
-                      Send_Byte(CA);
-                      return -1;
+            switch (Receive_Packet(packet_data, &packet_length, NAK_TIMEOUT))
+            {
+            case 0://成功接收到1K
+                errors = 0;
+                switch (packet_length)
+                {
+                    /* Abort by sender */
+                case - 1:  //接收失败
+                    Send_Byte(ACK);  //回复
+                    return 0;
+                    /* End of transmission */
+                case 0:
+                    Send_Byte(ACK);//回复
+                    file_done = 1;
+                    break;
+                    /* Normal packet */
+                default:   //接收成功
+                    if ((packet_data[PACKET_SEQNO_INDEX] & 0xff) != (packets_received & 0xff))
+                    {   //序号00(文件名)
+                        Send_Byte(NAK);
+
                     }
-                    /* erase user application area */
+                    else
+                    {
+                        if (packets_received == 0)//文件名(首包)
+                        {
+                            /* Filename packet */
+                            if (packet_data[PACKET_HEADER] != 0)//文件名字
+                            {
+                                /* Filename packet has valid data */
+                                for (i = 0, file_ptr = packet_data + PACKET_HEADER; (*file_ptr != 0) && (i < FILE_NAME_LENGTH);)
+                                {
+                                    FileName[i++] = *file_ptr++;//保存文件名
+                                }
+                                FileName[i++] = '\0';//字符串形式
+                                for (i = 0, file_ptr ++; (*file_ptr != ' ') && (i < (FILE_SIZE_LENGTH - 1));)
+                                {
+                                    file_size[i++] = *file_ptr++;//文件大小
+                                }
+                                file_size[i++] = '\0';
+                                Str2Int(file_size, &size);//Convert a string to an integer
+
+                                /* Test the size of the image to be sent */
+                                /* Image size is greater than Flash size */
+                                if (size > (APP_CONFIG_APPLICATION_SIZE + 1))
+                                {
+                                    /* End session */
+                                    Send_Byte(CA);
+                                    Send_Byte(CA);
+                                    return -1;
+                                }
+                                /* erase user application area */
 //                    Flash_Init();
 //                    Flash_Erase(APP_CONFIG_APPLICATION_ADDRESS, APP_CONFIG_APPLICATION_SIZE);MK8000 修改
-										flash_erase(FLASH_ID0, APP_CONFIG_APPLICATION_ADDRESS, APP_CONFIG_APPLICATION_SIZE);//擦除APP
-                    Send_Byte(ACK);
-                    Send_Byte(CRC16);
-                  }
-                  /* Filename packet is empty, end session */
-                  else
-                  {
-                    Send_Byte(ACK);
-                    file_done = 1;
-                    session_done = 1;
-                    break;
-                  }
-                }
-                /* Data packet */
-                else  //文件信息保存完后开始接收数据
-                {
-                  memcpy(buf_ptr, packet_data + PACKET_HEADER, packet_length);
-									
-									/*----------------------------------------------------------------------------------------------*/
-									BufferIn=buf;
-									for (j = 0; j < packet_length; j += 16) //每次解密16字节
-									{
-										//解密数据包
-										aesDecrypt(BufferIn,bufferOut); //由于参数使用的是指针,所以解密后依旧存在buf里面
-										BufferIn+=16;
-									}
-									/*----------------------------------------------------------------------------------------------*/
-								
-                  
-                  /* Write received data in Flash */                                   //这个size参数是自己加进入的,便于判断文件传输完成 
+                                flash_erase(FLASH_ID0, APP_CONFIG_APPLICATION_ADDRESS, APP_CONFIG_APPLICATION_SIZE);//擦除APP
+                                Send_Byte(ACK);
+                                Send_Byte(CRC16);
+                            }
+                            /* Filename packet is empty, end session */
+                            else
+                            {
+                                Send_Byte(ACK);
+                                file_done = 1;
+                                session_done = 1;
+                                break;
+                            }
+                        }
+                        /* Data packet */
+                        else  //文件信息保存完后开始接收数据
+                        {
+                            memcpy(buf_ptr, packet_data + PACKET_HEADER, packet_length);
+
+                            /*----------------------------------------------------------------------------------------------*/
+                            BufferIn=buf;
+                            for (j = 0; j < packet_length; j += 16) //每次解密16字节
+                            {
+                                //解密数据包
+                                aesDecrypt(BufferIn,bufferOut); //由于参数使用的是指针,所以解密后依旧存在buf里面
+                                BufferIn+=16;
+                            }
+                            /*----------------------------------------------------------------------------------------------*/
+
+
+                            /* Write received data in Flash */                                   //这个size参数是自己加进入的,便于判断文件传输完成
 //                  if (Flash_Write(flashdestination, buf, packet_length)  == 0&&(flashdestination==tempaddress||tempaddress>size)) MK8000修改
 //                  {
 //                      flashdestination += packet_length;
-//                      //写入FLASH  
+//                      //写入FLASH
 //                    Send_Byte(ACK);
 //					flash_seqno++;
 //                    time32_reset = 0;
@@ -448,60 +448,60 @@
 //                    Send_Byte(CA);
 //                    return -2;
 //                  }
-									ramsource = (uint32_t)buf;
-                  tempaddress=APP_CONFIG_APPLICATION_ADDRESS+(current_seqno-1)*0x400;
-									if(flash_write_nbytes(FLASH_ID0,flashdestination, buf, packet_length)== 0&&(flashdestination==tempaddress||tempaddress>size))
-									{
-									flashdestination += packet_length;
-                      //写入FLASH  
-                    Send_Byte(ACK);
-										flash_seqno++;
-                    time32_reset = 0;
-									}
-									else
-									{
-									 /* End session */
-                    Send_Byte(CA);
-                    Send_Byte(CA);
-                    return -2;
-									}
+                            ramsource = (uint32_t)buf;
+                            tempaddress=APP_CONFIG_APPLICATION_ADDRESS+(current_seqno-1)*0x400;
+                            if(flash_write_nbytes(FLASH_ID0,flashdestination, buf, packet_length)== 0&&(flashdestination==tempaddress||tempaddress>size))
+                            {
+                                flashdestination += packet_length;
+                                //写入FLASH
+                                Send_Byte(ACK);
+                                flash_seqno++;
+                                time32_reset = 0;
+                            }
+                            else
+                            {
+                                /* End session */
+                                Send_Byte(CA);
+                                Send_Byte(CA);
+                                return -2;
+                            }
+                        }
+                        packets_received ++;
+                        session_begin = 1;
+                    }
                 }
-                packets_received ++;
-                session_begin = 1;
-              }
-          }
-          break;
-        case 1:
-          Send_Byte(CA);
-          Send_Byte(CA);
-          return -3;
-        default://检验错误
-          if (session_begin > 0)
-          {
-            errors ++;
-          }
-          if (errors > MAX_ERRORS)
-          {
-            Send_Byte(CA);
-            Send_Byte(CA);
-            return 0;
-          }
-				
-          Send_Byte(CRC16); //发送校验值
-          break;
-      }
-			
-      if (file_done != 0)
-      {
-        break;
-      }
+                break;
+            case 1:
+                Send_Byte(CA);
+                Send_Byte(CA);
+                return -3;
+            default://检验错误
+                if (session_begin > 0)
+                {
+                    errors ++;
+                }
+                if (errors > MAX_ERRORS)
+                {
+                    Send_Byte(CA);
+                    Send_Byte(CA);
+                    return 0;
+                }
+
+                Send_Byte(CRC16); //发送校验值
+                break;
+            }
+
+            if (file_done != 0)
+            {
+                break;
+            }
+        }
+        if (session_done != 0) //文件发送完成
+        {
+            break;
+        }
     }
-    if (session_done != 0) //文件发送完成
-    {
-      break;
-    }
-  }
-  return (int32_t)size;
+    return (int32_t)size;
 }
 
 /**
@@ -511,7 +511,7 @@
   */
 int32_t Ymodem_CheckResponse(uint8_t c)
 {
-  return 0;
+    return 0;
 }
 
 /**
@@ -521,32 +521,32 @@
   */
 void Ymodem_PrepareIntialPacket(uint8_t *data, const uint8_t* fileName, uint32_t *length)
 {
-  uint16_t i, j;
-  uint8_t file_ptr[10];
-  
-  /* Make first three packet */
-  data[0] = SOH;
-  data[1] = 0x00;
-  data[2] = 0xff;
-  
-  /* Filename packet has valid data */
-  for (i = 0; (fileName[i] != '\0') && (i < FILE_NAME_LENGTH);i++)
-  {
-     data[i + PACKET_HEADER] = fileName[i];
-  }
+    uint16_t i, j;
+    uint8_t file_ptr[10];
 
-  data[i + PACKET_HEADER] = 0x00;
-  
-  Int2Str (file_ptr, *length);
-  for (j =0, i = i + PACKET_HEADER + 1; file_ptr[j] != '\0' ; )
-  {
-     data[i++] = file_ptr[j++];
-  }
-  
-  for (j = i; j < PACKET_SIZE + PACKET_HEADER; j++)
-  {
-    data[j] = 0;
-  }
+    /* Make first three packet */
+    data[0] = SOH;
+    data[1] = 0x00;
+    data[2] = 0xff;
+
+    /* Filename packet has valid data */
+    for (i = 0; (fileName[i] != '\0') && (i < FILE_NAME_LENGTH); i++)
+    {
+        data[i + PACKET_HEADER] = fileName[i];
+    }
+
+    data[i + PACKET_HEADER] = 0x00;
+
+    Int2Str (file_ptr, *length);
+    for (j =0, i = i + PACKET_HEADER + 1; file_ptr[j] != '\0' ; )
+    {
+        data[i++] = file_ptr[j++];
+    }
+
+    for (j = i; j < PACKET_SIZE + PACKET_HEADER; j++)
+    {
+        data[j] = 0;
+    }
 }
 
 /**
@@ -556,36 +556,36 @@
   */
 void Ymodem_PreparePacket(uint8_t *SourceBuf, uint8_t *data, uint8_t pktNo, uint32_t sizeBlk)
 {
-  uint16_t i, size, packetSize;
-  uint8_t* file_ptr;
-  
-  /* Make first three packet */
-  packetSize = sizeBlk >= PACKET_1K_SIZE ? PACKET_1K_SIZE : PACKET_SIZE;
-  size = sizeBlk < packetSize ? sizeBlk :packetSize;
-  if (packetSize == PACKET_1K_SIZE)
-  {
-     data[0] = STX;
-  }
-  else
-  {
-     data[0] = SOH;
-  }
-  data[1] = pktNo;
-  data[2] = (~pktNo);
-  file_ptr = SourceBuf;
-  
-  /* Filename packet has valid data */
-  for (i = PACKET_HEADER; i < size + PACKET_HEADER;i++)
-  {
-     data[i] = *file_ptr++;
-  }
-  if ( size  <= packetSize)
-  {
-    for (i = size + PACKET_HEADER; i < packetSize + PACKET_HEADER; i++)
+    uint16_t i, size, packetSize;
+    uint8_t* file_ptr;
+
+    /* Make first three packet */
+    packetSize = sizeBlk >= PACKET_1K_SIZE ? PACKET_1K_SIZE : PACKET_SIZE;
+    size = sizeBlk < packetSize ? sizeBlk :packetSize;
+    if (packetSize == PACKET_1K_SIZE)
     {
-      data[i] = 0x1A; /* EOF (0x1A) or 0x00 */
+        data[0] = STX;
     }
-  }
+    else
+    {
+        data[0] = SOH;
+    }
+    data[1] = pktNo;
+    data[2] = (~pktNo);
+    file_ptr = SourceBuf;
+
+    /* Filename packet has valid data */
+    for (i = PACKET_HEADER; i < size + PACKET_HEADER; i++)
+    {
+        data[i] = *file_ptr++;
+    }
+    if ( size  <= packetSize)
+    {
+        for (i = size + PACKET_HEADER; i < packetSize + PACKET_HEADER; i++)
+        {
+            data[i] = 0x1A; /* EOF (0x1A) or 0x00 */
+        }
+    }
 }
 
 /**
@@ -596,13 +596,13 @@
   */
 void Ymodem_SendPacket(uint8_t *data, uint16_t length)
 {
-  uint16_t i;
-  i = 0;
-  while (i < length)
-  {
-    Send_Byte(data[i]);
-    i++;
-  }
+    uint16_t i;
+    i = 0;
+    while (i < length)
+    {
+        Send_Byte(data[i]);
+        i++;
+    }
 }
 
 /**
@@ -626,234 +626,234 @@
 };
 uint8_t Ymodem_Transmit (uint8_t *buf, const uint8_t* sendFileName, uint32_t sizeFile)
 {
-  uint8_t packet_data[PACKET_1K_SIZE + PACKET_OVERHEAD];
-  uint8_t FileName[FILE_NAME_LENGTH];
-  uint8_t *buf_ptr, tempCheckSum ;
-  uint16_t tempCRC, blkNumber;
-  uint8_t receivedC[2], CRC16_F = 0, i;
-  uint32_t errors = 0, ackReceived = 0, size = 0, pktSize;
+    uint8_t packet_data[PACKET_1K_SIZE + PACKET_OVERHEAD];
+    uint8_t FileName[FILE_NAME_LENGTH];
+    uint8_t *buf_ptr, tempCheckSum ;
+    uint16_t tempCRC, blkNumber;
+    uint8_t receivedC[2], CRC16_F = 0, i;
+    uint32_t errors = 0, ackReceived = 0, size = 0, pktSize;
 
-  for (i = 0; i < (FILE_NAME_LENGTH - 1); i++)
-  {
-    FileName[i] = sendFileName[i];
-  }
-  CRC16_F = 1;
-  
-  /* Prepare first block */
-  Ymodem_PrepareIntialPacket(&packet_data[0], FileName, &sizeFile);
-  
-  do 
-  {
-    /* Send Packet */
-    Ymodem_SendPacket(packet_data, PACKET_SIZE + PACKET_HEADER);
-    
-    /* Send CRC or Check Sum based on CRC16_F */
-    if (CRC16_F)
+    for (i = 0; i < (FILE_NAME_LENGTH - 1); i++)
     {
-       tempCRC = Cal_CRC16(&packet_data[3], PACKET_SIZE);
-       Send_Byte(tempCRC >> 8);
-       Send_Byte(tempCRC & 0xFF);
+        FileName[i] = sendFileName[i];
     }
-    else
-    {
-       tempCheckSum = CalChecksum (&packet_data[3], PACKET_SIZE);
-       Send_Byte(tempCheckSum);
-    }
-  
-    /* Wait for Ack and 'C' */
-    if (Receive_Byte(&receivedC[0], 1000000) == 0)  
-    {
-      if (receivedC[0] == ACK)
-      { 
-        /* Packet transfered correctly */
-        ackReceived = 1;
-      }
-    }
-    else
-    {
-        errors++;
-    }
-  }while (!ackReceived && (errors < 0x0A));//校验错误重发
-  
-  if (errors >=  0x0A)
-  {
-    return errors;
-  }
-  buf_ptr = buf;
-  size = sizeFile;
-  blkNumber = 0x01;
+    CRC16_F = 1;
 
-  /* Here 1024 bytes package is used to send the packets */
-  while (size)
-  {
-    /* Prepare next packet */
-    Ymodem_PreparePacket(buf_ptr, &packet_data[0], blkNumber, size);
-    ackReceived = 0;
-    receivedC[0]= 0;
-    errors = 0;
+    /* Prepare first block */
+    Ymodem_PrepareIntialPacket(&packet_data[0], FileName, &sizeFile);
+
     do
     {
-      /* Send next packet */
-      if (size >= PACKET_1K_SIZE)
-      {
-        pktSize = PACKET_1K_SIZE;
-       
-      }
-      else
-      {
-        pktSize = PACKET_SIZE;
-      }
-      Ymodem_SendPacket(packet_data, pktSize + PACKET_HEADER);
-      /* Send CRC or Check Sum based on CRC16_F */
-      if (CRC16_F)
-      {
-         tempCRC = Cal_CRC16(&packet_data[3], pktSize);
-         Send_Byte(tempCRC >> 8);
-         Send_Byte(tempCRC & 0xFF);
-      }
-      else
-      {
-        tempCheckSum = CalChecksum (&packet_data[3], pktSize);
-        Send_Byte(tempCheckSum);
-      }
-      
-      /* Wait for Ack */
-      if (Receive_Byte(&receivedC[0], 1000000) == 0)  
-      {    if (receivedC[0] == ACK)
-      {
-        ackReceived = 1;  
-        if (size > pktSize)
+        /* Send Packet */
+        Ymodem_SendPacket(packet_data, PACKET_SIZE + PACKET_HEADER);
+
+        /* Send CRC or Check Sum based on CRC16_F */
+        if (CRC16_F)
         {
-           buf_ptr += pktSize;  
-           size -= pktSize;
-           if (blkNumber == (APP_CONFIG_APPLICATION_SIZE/1024))
-           {
-             return 0xFF; /*  error */
-           }
-           else
-           {
-              blkNumber++;
-           }
+            tempCRC = Cal_CRC16(&packet_data[3], PACKET_SIZE);
+            Send_Byte(tempCRC >> 8);
+            Send_Byte(tempCRC & 0xFF);
         }
         else
         {
-           buf_ptr += pktSize;
-           size = 0;
+            tempCheckSum = CalChecksum (&packet_data[3], PACKET_SIZE);
+            Send_Byte(tempCheckSum);
         }
-      }
-      }
-      else
-      {
-        errors++;
-      }
-    }while(!ackReceived && (errors < 0x0A));
-    
-    /* Resend packet if NAK  for a count of 10 else end of commuincation */
+
+        /* Wait for Ack and 'C' */
+        if (Receive_Byte(&receivedC[0], 1000000) == 0)
+        {
+            if (receivedC[0] == ACK)
+            {
+                /* Packet transfered correctly */
+                ackReceived = 1;
+            }
+        }
+        else
+        {
+            errors++;
+        }
+    } while (!ackReceived && (errors < 0x0A));//校验错误重发
+
     if (errors >=  0x0A)
     {
-      return errors;
+        return errors;
     }
-    
-  }
-  ackReceived = 0;
-  receivedC[0] = 0x00;
-  receivedC[1] = 0x00;
-  errors = 0;
-  do 
-  { 
-    Send_Byte(EOT);   
-    /* Send (EOT); */
-    /* Wait for Ack */
-    //receivedC[0] = (uint16_t)(USART1->DR & (uint16_t)0x01FF); MK8000修改
-		receivedC[0]= (uint16_t)(uart_handle[1].base->RX_DATA&(uint16_t)0x01FF);
-    if (receivedC[0] == ACK)
-    {
-      ackReceived = 1;
-      }
-    
-    else
-    {
-      errors++;
-    }
-    /* Clear Overrun flag of the USART2 */
-		//__HAL_UART_CLEAR_OREFLAG(&huart1);  MK8000修改
-   // USART_ClearFlag(USART1, UART_FLAG_ORE);
-  }while (!ackReceived && (errors < 0x0A));
-    
-  if (errors >=  0x0A)
-  {
-    return errors;
-  }
-  
-  /* Last packet preparation */
-  ackReceived = 0;
-  receivedC[0] = 0x00;
-  receivedC[1] = 0x00;
-  errors = 0;
+    buf_ptr = buf;
+    size = sizeFile;
+    blkNumber = 0x01;
 
-  packet_data[0] = SOH;
-  packet_data[1] = 0;
-  packet_data [2] = 0xFF;
+    /* Here 1024 bytes package is used to send the packets */
+    while (size)
+    {
+        /* Prepare next packet */
+        Ymodem_PreparePacket(buf_ptr, &packet_data[0], blkNumber, size);
+        ackReceived = 0;
+        receivedC[0]= 0;
+        errors = 0;
+        do
+        {
+            /* Send next packet */
+            if (size >= PACKET_1K_SIZE)
+            {
+                pktSize = PACKET_1K_SIZE;
 
-  for (i = PACKET_HEADER; i < (PACKET_SIZE + PACKET_HEADER); i++)
-  {
-     packet_data [i] = 0x00;
-  }
-  
-  do 
-  {
-    /* Send Packet */
-    Ymodem_SendPacket(packet_data, PACKET_SIZE + PACKET_HEADER);
+            }
+            else
+            {
+                pktSize = PACKET_SIZE;
+            }
+            Ymodem_SendPacket(packet_data, pktSize + PACKET_HEADER);
+            /* Send CRC or Check Sum based on CRC16_F */
+            if (CRC16_F)
+            {
+                tempCRC = Cal_CRC16(&packet_data[3], pktSize);
+                Send_Byte(tempCRC >> 8);
+                Send_Byte(tempCRC & 0xFF);
+            }
+            else
+            {
+                tempCheckSum = CalChecksum (&packet_data[3], pktSize);
+                Send_Byte(tempCheckSum);
+            }
 
-    /* Send CRC or Check Sum based on CRC16_F */
-    tempCRC = Cal_CRC16(&packet_data[3], PACKET_SIZE);
-    Send_Byte(tempCRC >> 8);
-    Send_Byte(tempCRC & 0xFF);
-  
-    /* Wait for Ack and 'C' */
-    if (Receive_Byte(&receivedC[1], 1000000) == 0)  
-    {
-      if (receivedC[1] == ACK)
-      { 
-        /* Packet transfered correctly */
-        ackReceived = 1;
-      }
+            /* Wait for Ack */
+            if (Receive_Byte(&receivedC[0], 1000000) == 0)
+            {   if (receivedC[0] == ACK)
+                {
+                    ackReceived = 1;
+                    if (size > pktSize)
+                    {
+                        buf_ptr += pktSize;
+                        size -= pktSize;
+                        if (blkNumber == (APP_CONFIG_APPLICATION_SIZE/1024))
+                        {
+                            return 0xFF; /*  error */
+                        }
+                        else
+                        {
+                            blkNumber++;
+                        }
+                    }
+                    else
+                    {
+                        buf_ptr += pktSize;
+                        size = 0;
+                    }
+                }
+            }
+            else
+            {
+                errors++;
+            }
+        } while(!ackReceived && (errors < 0x0A));
+
+        /* Resend packet if NAK  for a count of 10 else end of commuincation */
+        if (errors >=  0x0A)
+        {
+            return errors;
+        }
+
     }
-    else
+    ackReceived = 0;
+    receivedC[0] = 0x00;
+    receivedC[1] = 0x00;
+    errors = 0;
+    do
     {
-      errors++;
-    }
-  }while (!ackReceived && (errors < 0x0A));
-  
-  /* Resend packet if NAK  for a count of 10  else end of commuincation */
-  if (errors >=  0x0A)
-  {
-    return errors;
-  }  
-  receivedC[0] = 0x00;
-  do 
-  { 
-    Send_Byte(EOT);   
-    /* Send (EOT); */
-    /* Wait for Ack */
-    if ((Receive_Byte(&receivedC[0], 1000000) == 0)  && receivedC[0] == ACK)
+        Send_Byte(EOT);
+        /* Send (EOT); */
+        /* Wait for Ack */
+        //receivedC[0] = (uint16_t)(USART1->DR & (uint16_t)0x01FF); MK8000修改
+        receivedC[0]= (uint16_t)(uart_handle[1].base->RX_DATA&(uint16_t)0x01FF);
+        if (receivedC[0] == ACK)
+        {
+            ackReceived = 1;
+        }
+
+        else
+        {
+            errors++;
+        }
+        /* Clear Overrun flag of the USART2 */
+        //__HAL_UART_CLEAR_OREFLAG(&huart1);  MK8000修改
+        // USART_ClearFlag(USART1, UART_FLAG_ORE);
+    } while (!ackReceived && (errors < 0x0A));
+
+    if (errors >=  0x0A)
     {
-      ackReceived = 1;  
+        return errors;
     }
-    
-    else
+
+    /* Last packet preparation */
+    ackReceived = 0;
+    receivedC[0] = 0x00;
+    receivedC[1] = 0x00;
+    errors = 0;
+
+    packet_data[0] = SOH;
+    packet_data[1] = 0;
+    packet_data [2] = 0xFF;
+
+    for (i = PACKET_HEADER; i < (PACKET_SIZE + PACKET_HEADER); i++)
     {
-      errors++;
+        packet_data [i] = 0x00;
     }
-    /* Clear Overrun flag of the USART2 */
-   // __HAL_UART_CLEAR_OREFLAG(&huart1); MK8000修改
-  }while (!ackReceived && (errors < 0x0A));
-    
-  if (errors >=  0x0A)
-  {
-    return errors;
-  }
-  return 0; /* file trasmitted successfully */
+
+    do
+    {
+        /* Send Packet */
+        Ymodem_SendPacket(packet_data, PACKET_SIZE + PACKET_HEADER);
+
+        /* Send CRC or Check Sum based on CRC16_F */
+        tempCRC = Cal_CRC16(&packet_data[3], PACKET_SIZE);
+        Send_Byte(tempCRC >> 8);
+        Send_Byte(tempCRC & 0xFF);
+
+        /* Wait for Ack and 'C' */
+        if (Receive_Byte(&receivedC[1], 1000000) == 0)
+        {
+            if (receivedC[1] == ACK)
+            {
+                /* Packet transfered correctly */
+                ackReceived = 1;
+            }
+        }
+        else
+        {
+            errors++;
+        }
+    } while (!ackReceived && (errors < 0x0A));
+
+    /* Resend packet if NAK  for a count of 10  else end of commuincation */
+    if (errors >=  0x0A)
+    {
+        return errors;
+    }
+    receivedC[0] = 0x00;
+    do
+    {
+        Send_Byte(EOT);
+        /* Send (EOT); */
+        /* Wait for Ack */
+        if ((Receive_Byte(&receivedC[0], 1000000) == 0)  && receivedC[0] == ACK)
+        {
+            ackReceived = 1;
+        }
+
+        else
+        {
+            errors++;
+        }
+        /* Clear Overrun flag of the USART2 */
+        // __HAL_UART_CLEAR_OREFLAG(&huart1); MK8000修改
+    } while (!ackReceived && (errors < 0x0A));
+
+    if (errors >=  0x0A)
+    {
+        return errors;
+    }
+    return 0; /* file trasmitted successfully */
 }
 
 /**

--
Gitblit v1.9.3