stm32_ota/USER/USERCMD/usercmd.c

128 lines
5.6 KiB
C
Raw Normal View History

2023-12-15 06:28:06 +00:00
#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) ;
}