128 lines
5.6 KiB
C
128 lines
5.6 KiB
C
|
#include "usercmd.h"
|
|||
|
#include "flash.h"
|
|||
|
#include "usart.h"
|
|||
|
#include "sysport.h"
|
|||
|
#include "user_tcp.h"
|
|||
|
#include "userapp.h"
|
|||
|
#include "osPort.h"
|
|||
|
#include "logflash.h"
|
|||
|
#include "key.h"
|
|||
|
#include "user_ftp.h"
|
|||
|
#include "user_tcp.h"
|
|||
|
|
|||
|
/******************************************************************************
|
|||
|
*<EFBFBD><EFBFBD><EFBFBD>ⲿʹ<EFBFBD>õij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*******************************************************************************/
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLASH<53>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
|
|||
|
IAPFlash_u uIapFlash ; //<2F><><EFBFBD><EFBFBD>IAPFlash_u<5F><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
/*********************************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD>void InitIapFlashConfig( IAPFlash_u *config )
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ܣ<EFBFBD><EFBFBD>ȴ<EFBFBD>FLASH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IAPFlash<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IAPFlash_u<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>FLASH<EFBFBD><EFBFBD>
|
|||
|
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡRunAppNum<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLASH<EFBFBD>е<EFBFBD>RunAppNum<EFBFBD><EFBFBD>־λ
|
|||
|
*********************************************************************************************************************/
|
|||
|
void InitIapFlashConfig( IAPFlash_u *config )
|
|||
|
{
|
|||
|
Get_uIapFlash(config) ; //<2F><>FLASH<53>ж<EFBFBD>ȡIAP<41><50>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uIapFlash<73><68>
|
|||
|
config->sIapFlash.Head = '[' ; //֡ͷ<D6A1><CDB7>ʼ<EFBFBD><CABC>
|
|||
|
if((uint8_t)config->sIapFlash.IapFlag == 0xff ) /*δ<><CEB4><EFBFBD>ù<EFBFBD>IapFlag*/
|
|||
|
{
|
|||
|
config->sIapFlash.IapFlag = 0x31 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ<D6BE><CEBB>ʼ<EFBFBD><CABC>
|
|||
|
}
|
|||
|
if((uint8_t)config->sIapFlash.RunAppNum == 0xff ) /*δ<><CEB4><EFBFBD>ù<EFBFBD>RunAppNum*/
|
|||
|
{
|
|||
|
config->sIapFlash.RunAppNum = 0x31 ; //RunAppNum<75><6D>ʼ<EFBFBD><CABC>
|
|||
|
}
|
|||
|
if((uint8_t)config->sIapFlash.JumpResult == 0xff ) /*δ<><CEB4><EFBFBD>ù<EFBFBD>JumpResult*/
|
|||
|
{
|
|||
|
config->sIapFlash.JumpResult = 0x31 ; //JumpResult<6C><74>ʼ<EFBFBD><CABC>ϵͳ<CFB5><CDB3>boot<6F><74>ת<EFBFBD><D7AA>APP<50>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>JumpResultλ<74><CEBB><EFBFBD><EFBFBD>Ϊtrue<75><65>д<EFBFBD><D0B4>FLASH<53><48>//<2F><><EFBFBD><EFBFBD>BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD>жϸ<D0B6>ΪΪfalse<73><65><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>APP<50><50><EFBFBD><EFBFBD><EFBFBD>⣬ֱ<E2A3AC><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP1
|
|||
|
}
|
|||
|
|
|||
|
if((uint8_t)config->sIapFlash.FtpFolder[0] == 0xff ) /*δ<><CEB4><EFBFBD>ù<EFBFBD>FtpFolder*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpFolder, 0, FOLDER_MAXLEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpFolder, "/firmware") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpFolder<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>/ABM<42><4D>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetAppFtpDir(&sFtpBoot, config->sIapFlash.FtpFolder) ;
|
|||
|
}
|
|||
|
if( (uint8_t)config->sIapFlash.FtpUsername[0] == 0xff ) /*FLASH<53>д洢ftp<74>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpUsername, 0, USERNAME_MAXLEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpUsername, "caiyu") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpUsername<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTPĬ<50><C4AC><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ABM<42><4D>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetAppFtpUsername(&sFtpBoot, config->sIapFlash.FtpUsername) ;
|
|||
|
}
|
|||
|
if((uint8_t)config->sIapFlash.FtpPassword[0] == 0xff) /*FLASH<53>д洢ftp<74>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpPassword, 0, PASSWORD_MAXLEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpPassword, "aa") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpUsername<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTPĬ<50><C4AC><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Shop344794749
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetAppFtpPassword(&sFtpBoot, config->sIapFlash.FtpPassword) ;
|
|||
|
}
|
|||
|
if( (uint8_t)config->sIapFlash.FtpIP[0] == 0xff ) /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.FtpIP, 0, MAX_IP_LEN) ;
|
|||
|
strcpy( config->sIapFlash.FtpIP, "58.23.31.118") ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD>Ϊ"121.5.217.252"
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetAppFtpIP(&sFtpBoot, config->sIapFlash.FtpIP) ;
|
|||
|
}
|
|||
|
if( ((uint8_t)config->sIapFlash.TcpIP[0] == 0xFF) ||
|
|||
|
((uint8_t)config->sIapFlash.TcpIP[0] == 0x00)) /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.TcpIP, 0, MAX_IP_LEN) ;
|
|||
|
strcpy( config->sIapFlash.TcpIP, TCP_CONNECTID0_SERVERIP0) ;//<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>FtpIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD>ΪTCP_CONNECTID0_SERVERIP0
|
|||
|
}
|
|||
|
else /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>s_Channal0ȱʡIP<49><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>IP*/
|
|||
|
{
|
|||
|
SetAppTcpIP(&sChannal0, uIapFlash.sIapFlash.TcpIP ) ; //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
|
|||
|
}
|
|||
|
if( ((uint8_t)config->sIapFlash.TcpPort[0] == 0xFF) ||
|
|||
|
((uint8_t)config->sIapFlash.TcpPort[0] == 0x00) ) /*FLASH<53>д洢FtpIP<49>ֶ<EFBFBD><D6B6><EFBFBD>Ч*/
|
|||
|
{
|
|||
|
memset( config->sIapFlash.TcpPort, 0, PORT_MAXLEN) ;
|
|||
|
char port[PORT_MAXLEN] = {0} ;
|
|||
|
itoa(TCP_CONNECTID0_SERVERPORT0, port, 10);
|
|||
|
strcpy( config->sIapFlash.TcpPort, port) ; //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>TcpPort<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD>ΪTCP_CONNECTID0_SERVERPORT0
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
SetAppTcpPort(&sChannal0, uIapFlash.sIapFlash.TcpPort ) ; //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>port
|
|||
|
}
|
|||
|
config->sIapFlash.Tail = ']' ; //֡β<D6A1><CEB2>ʼ<EFBFBD><CABC>
|
|||
|
Set_uIapFlash(config) ; //<2F><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>д<EFBFBD><D0B4>FLASH<53><48>
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void Get_uIapFlash(IAPFlash_u *config)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>flash<EFBFBD><EFBFBD>IAPCONFIG_AREA_ADDR<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>ȡһҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡFLASH<EFBFBD>е<EFBFBD>IAP<EFBFBD><EFBFBD>Ϣ
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *uIapInfo IAPFlash_u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void Get_uIapFlash(IAPFlash_u *config)
|
|||
|
{
|
|||
|
memset( config->iapFlashBuffer , 0, IAPFLASHCONFIGLEN) ;
|
|||
|
Read_Flash_Byte(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void Set_uIapFlash(IAPFlash_u *config)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>IAP<EFBFBD><EFBFBD>Ϣд<EFBFBD><EFBFBD>FLASH
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 *uIapInfo IAPFlash_u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void Set_uIapFlash(IAPFlash_u *config)
|
|||
|
{
|
|||
|
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, config->iapFlashBuffer, IAPFLASHCONFIGLEN) ;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|