feat:TFTP升级 - 配置文件OK

1、TFTP升级 - 配置文件初步测试没问题

​ 2、配置文件内容解析移植完毕,调试中

​ 3、TFTP升级 - 是否一个套接字搞定,不需要使用两个套接字,待完成
This commit is contained in:
caocong
2025-12-25 20:25:57 +08:00
parent cc8783e9f8
commit 63ebdb7baa
19 changed files with 1329 additions and 73 deletions

View File

@@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="115682257656385746" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-966894059699624056" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

View File

@@ -0,0 +1,10 @@
/*
* blv_re485_dev_energymonitor.c
*
* Created on: Dec 20, 2025
* Author: cc
*/

View File

@@ -0,0 +1,102 @@
/*
* blv_nor_dev_serviceinfo.h
*
* Created on: Dec 20, 2025
* Author: cc
*/
#ifndef BLV_485_DRIVER_INC_BLV_NOR_DEV_SERVICEINFO_H_
#define BLV_485_DRIVER_INC_BLV_NOR_DEV_SERVICEINFO_H_
#include <stdint.h>
#include "blv_rs485_protocol.h"
#include "logic_file_function.h"
#define ServiceNumMAX 64 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum //<2F><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
{
Service_Ele = 0, //0 LOOPCH01 ȡ<><C8A1>
Service_Dnd, //1 LOOPCH02 <20><><EFBFBD><EFBFBD>
Service_Clean, //2 LOOPCH03 <20><><EFBFBD><EFBFBD>
Service_Call, //3 LOOPCH04 <20><><EFBFBD><EFBFBD>
Service_Wash, //4 LOOPCH05 ϴ<><CFB4>
Service_CheckOut, //5 LOOPCH06 <20>˷<EFBFBD>
Service_Wait, //6 LOOPCH07 <20>Ժ<EFBFBD>
Service_Sos, //7 LOOPCH08 SOS
Service_Meals, //8 LOOPCH09 ԤԼ<D4A4><D4BC><EFBFBD><EFBFBD>
Service_Food_Plate, //9 LOOPCH10 <20><><EFBFBD><EFBFBD>
Service_Luggage, //10 LOOPCH11 <20><><EFBFBD><EFBFBD>
Service_Strong, //11 LOOPCH12 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ſں<C5BF><DABA><EFBFBD>ʹ<EFBFBD><CAB9>
Service_Door, //12 LOOPCH13 <20>Ŵ<EFBFBD>
Service_Warning, //13 LOOPCH14 <20><>ʾ<EFBFBD><CABE> <20><><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͹ر<CDB9>
Service_15, //14 LOOPCH15 <20><><EFBFBD><EFBFBD>15 <20><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><E2BFAA><EFBFBD>͹ر<CDB9>
Service_16,
Service_17,
Service_18,
Service_19,
Service_20,
Service_21,
Service_22,
Service_23,
Service_24,
Service_PMS_Rented, //<2F><>̬ - <20><><EFBFBD><EFBFBD>
Service_PMS_CheckOut, //<2F><>̬ - <20>˷<EFBFBD>
Service_PMS_Waiting, //<2F><>̬ - <20><><EFBFBD><EFBFBD>
Service_PMS_Vacant, //<2F><>̬ - <20>շ<EFBFBD>
Service_29,
Service_30,
Service_31,
Service_32,
Service_33,
Service_34,
Service_35,
Service_36,
Service_37,
Service_38,
Service_39,
Service_40,
Service_41,
Service_42,
Service_43,
Service_44,
Service_45,
Service_46,
Service_47,
Service_48,
Service_49,
Service_50,
Service_51,
Service_52,
Service_53,
Service_54,
Service_55,
Service_56,
Service_57,
Service_58,
Service_59,
Service_60,
Service_61,
Service_62,
Service_63,
Service_64,
Service_Num_MAX, //<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}Enum_Dev_Service; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
typedef struct
{
uint8_t DevChangeFlag[ServiceNumMAX]; //<2F><EFBFBD><EFBFBD><E4BBAF>־ 1<><31><EFBFBD><EFBFBD> 2<>ر<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
uint8_t DevServiceState[ServiceNumMAX]; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>״̬ <20><><EFBFBD><EFBFBD><EFBFBD>豸״̬<D7B4><EFBFBD><E4BBAF>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<D0B6>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ǵ򿪻<C7B4><F2BFAABB>ǹر<C7B9>
uint8_t DevServiceStateLast[ServiceNumMAX]; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬
uint8_t ServiceLoopValidNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>Ч<EFBFBD><D0A7>·<EFBFBD><C2B7>
uint8_t is_first_power_on; //<2F>״<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>־λ
}NOR_SERVICE_INFO; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif /* BLV_485_DRIVER_INC_BLV_NOR_DEV_SERVICEINFO_H_ */

View File

@@ -0,0 +1,65 @@
/*
* blv_rs485_dev_energymonitor.h
*
* Created on: Dec 20, 2025
* Author: cc
*/
#ifndef BLV_485_DRIVER_INC_BLV_RS485_DEV_ENERGYMONITOR_H_
#define BLV_485_DRIVER_INC_BLV_RS485_DEV_ENERGYMONITOR_H_
#include <stdint.h>
#include "blv_rs485_protocol.h"
#include "logic_file_function.h"
#define BLV_Energy_Bus_Type 0xF4
#define BLV_Energy_RecvData_LenMax 30
#define BLV_Energy_RecvData_LenMin 8
#define BLV_Energy_DataHeard 0x8A
#define BLV_Energy_DataEnd 0xA8
#define BLV_Energy_PeriodicReport_CMD 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>
#define BLV_Energy_Inquire_CMD 0x02 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
#define BLV_Energy_SetInfo_CMD 0x03 //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define BLV_Energy_ReadVer_CMD 0x04 //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define BLV_Energy_ClearStat_CMD 0x13 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>ͳ<EFBFBD><CDB3>
#define BLV_Energy_Send_Flag_Max 4
#define BLV_Energy_SetInfo_Flag 0x0001
#define BLV_Energy_ClearStat_Flag 0x0002
#define BLV_Energy_ReadVer_Flag 0x0004
#define BLV_Energy_Inquire_Flag 0x0008
typedef struct
{
BLV_COMM_RECORD_G comm_record; //ͨѶ<CDA8><D1B6>¼
uint8_t DevSendCnt; //<2F><EFBFBD><E8B1B8><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>лظ<D0BB><D8B8><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
uint8_t DevOffline; //<2F><EFBFBD><E8B1B8><EFBFBD>߱<EFBFBD>־ 1<><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
uint8_t DevOfflineLast; //<2F><EFBFBD><E8B1B8><EFBFBD>߱<EFBFBD>־ 1<><31><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
uint8_t DevSendSN; //<2F>豸ͨѶ SN
uint8_t periodic_enable; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʹ<EFBFBD><CAB9>״̬
uint16_t voltage; //<2F><>ѹ
uint16_t current; //<2F><><EFBFBD><EFBFBD>
uint32_t active_power; //<2F>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>
uint32_t phase_energy; //<2F>׶<EFBFBD><D7B6>ܺ<EFBFBD>
uint32_t total_energy; //<2F><><EFBFBD>ܺ<EFBFBD>
uint32_t send_flag; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־λ
uint32_t periodic_time; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>mS
uint32_t inquire_tick; //ѯ<><D1AF>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
}RS485_ENERGYMONITOR_INFO;
#endif /* BLV_485_DRIVER_INC_BLV_RS485_DEV_ENERGYMONITOR_H_ */

View File

@@ -75,8 +75,7 @@ SECTIONS
ASSERT(_endof_Flashlib < ORIGIN(FLASH1), "The Flash lib must maintain in 0-wait zone");
*(.text)
*(.text.*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.t.*)
. = ALIGN(4);
} >FLASH AT>FLASH
@@ -91,6 +90,9 @@ SECTIONS
*(.non_0_wait);
*(.non_0_wait.*);
*(.rodata)
*(.rodata*)
. = ALIGN(4);
} >FLASH1 AT>FLASH1

File diff suppressed because it is too large Load Diff

View File

@@ -19,9 +19,12 @@
#define SeriaNet_Cmd_Send_Len 19 //<2F><>ͷ<EFBFBD><CDB7>15Byte+<2B><><EFBFBD>ݣ<EFBFBD>2Byte+CRC<52><43>2Byte
#define Search_Cmd 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define Heart_Cmd 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define In_Search_Cmd 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define In_Heart_Cmd 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define In_QueryTime_Cmd 0x08 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define In_IAP_Cmd 0x0A //IAP APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define In_RoomState_Cmd 0x0E //״̬<D7B4>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> 2025-09-25 ȡ<><C8A1>
#define In_DevCtr_Cmd 0x0F //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ͵<C6BA><CDB5><EFBFBD>
#define In_SingleAirCtrl_Cmd 0x13 //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -40,6 +43,9 @@
#define In_SeriaNet_Cmd 0x70 //͸<><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>
#define In_SeriaNetReported_Cmd 0x71 //͸<><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
#define In_Subgroup_Cmd 0xA2 //<2F><>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define In_Read_MCUSystem_Cmd 0xB1 //<2F><>ȡϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define In_BLVIAP_Cmd 0xB2 //BLV_Cx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><41><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EEA3AC><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ִ<EFBFBD>е<EFBFBD>BLV_Cxϵ<78>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define In_BLVIAPCheck_Cmd 0xB3 //BLV_Cx<43><78><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -90,6 +96,8 @@ uint8_t Udp_Internal_SeriaNet_Uploading(uint8_t port,uint32_t baud,uint32_t data
uint8_t Udp_Internal_SeriaNet_Uploading2(uint8_t port,uint32_t baud,uint8_t* data, uint16_t DataLen);
uint8_t Udp_Internal_SeriaNet_Response_Timeout(void);
void Udp_Internal_Analysis(uint8_t *data, uint32_t len, uint8_t* ip, uint16_t port);
void BLV_UDP_Comm_Task(void);
#endif /* MCU_DRIVER_INC_BLV_NETCOMM_FUNCTION_H_ */

View File

@@ -48,6 +48,7 @@ uint32_t RTC_Conversion_To_Unix(S_RTC *rtc_time);
void Unix_Conversion_To_RTC(S_RTC *rtc_time,uint32_t utc_tick);
uint8_t RTC_ReadDate(S_RTC *psRTC);
uint8_t RTC_WriteDate(S_RTC SetRTC);
uint8_t NetRTC_WriteDate(S_RTC SetRTC);
void RTC_TASK(void);
uint8_t RTC_TimeDate_Correct_Figure(uint8_t data);

View File

@@ -1131,7 +1131,7 @@ __attribute__((section(".non_0_wait"))) uint8_t Read_LogicFile_Information(uint8
if(temp != LOGIC_DataFlag)
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>߼<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>־λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%08X",temp);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>߼<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>־λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%X",temp);
return 0x01;
}
@@ -1145,7 +1145,7 @@ __attribute__((section(".non_0_wait"))) uint8_t Read_LogicFile_Information(uint8
if((file_len != 0x00) &&(file_len > 0x70000))
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>߼<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><EFBFBD><EFBFBD>:%08X",file_len);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD>߼<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><EFBFBD><EFBFBD>:%X",file_len);
return 0x01;
}
@@ -1155,9 +1155,9 @@ __attribute__((section(".non_0_wait"))) uint8_t Read_LogicFile_Information(uint8
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"MD5У<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!");
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"MD5У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Len:%08X",file_len);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X%02X,%02X,%02X,%02X,%02X,%02X",md5[0],md5[1],md5[2],md5[3],md5[4],md5[5],md5[6],md5[7],md5[8],md5[9],md5[10],md5[11],md5[12],md5[13],md5[14],md5[15]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"File Md5:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X",\
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"MD5У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Len:%X",file_len);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X%X,%X,%X,%X,%X,%X",md5[0],md5[1],md5[2],md5[3],md5[4],md5[5],md5[6],md5[7],md5[8],md5[9],md5[10],md5[11],md5[12],md5[13],md5[14],md5[15]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"File Md5:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X",\
file_info[8],file_info[9],\
file_info[10],file_info[11],\
file_info[12],file_info[13],\
@@ -2968,20 +2968,20 @@ __attribute__((section(".non_0_wait"))) void LOGIC_FILE_Analysis(LOGICFILE_Conte
switch(Temp_Flash_Buff[Logic_D_FrameType])
{
case Logic_FrameType_LogicInfo:
//Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_LogicInfo - <20>߼<EFBFBD><DFBC><EFBFBD>Ϣ");
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_LogicInfo - <20>߼<EFBFBD><DFBC><EFBFBD>Ϣ");
Logic_FrameType_LogicInfo_TempProcessing(&Temp_Flash_Buff[Logic_D_Para],temp_len - Logic_D_Para);
break;
case Logic_FrameType_Global:
//Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_Global - ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ");
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_Global - ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ");
Logic_FrameType_Global_TempProcessing(&Temp_Flash_Buff[Logic_D_Para],temp_len - Logic_D_Para);
break;
case Logic_FrameType_DeviceExist:
//Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_DeviceExist - <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>");
Logic_FrameType_DeviceExist_TempProcessing(read_addr,Lfile_info,&Temp_Flash_Buff[Logic_D_Para],temp_len - Logic_D_Para);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_DeviceExist - <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>");
//Logic_FrameType_DeviceExist_TempProcessing(read_addr,Lfile_info,&Temp_Flash_Buff[Logic_D_Para],temp_len - Logic_D_Para);
break;
case Logic_FrameType_DeviceAction:
//Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_DeviceAction - <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>");
Logic_FrameType_DeviceAction_TempProcessing(read_addr,Lfile_info,&Temp_Flash_Buff[Logic_D_Para],temp_len - Logic_D_Para);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"Logic_FrameType_DeviceAction - <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>");
//Logic_FrameType_DeviceAction_TempProcessing(read_addr,Lfile_info,&Temp_Flash_Buff[Logic_D_Para],temp_len - Logic_D_Para);
break;
#if RS485_MUSIC_BLW_Flag
case Logic_FrameType_VoiceMap:
@@ -3561,9 +3561,9 @@ __attribute__((section(".non_0_wait"))) uint8_t LOGIC_FILE_Check(void)
{
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"MD5У<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!");
}else {
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"MD5У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Len:%08X",file_len);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X%02X,%02X,%02X,%02X,%02X,%02X",md5[0],md5[1],md5[2],md5[3],md5[4],md5[5],md5[6],md5[7],md5[8],md5[9],md5[10],md5[11],md5[12],md5[13],md5[14],md5[15]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"UDP Md5:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X",\
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"MD5У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Len:%X",file_len);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X",md5[0],md5[1],md5[2],md5[3],md5[4],md5[5],md5[6],md5[7],md5[8],md5[9],md5[10],md5[11],md5[12],md5[13],md5[14],md5[15]);
Dbg_Println(DBG_BIT_LOGIC_STATUS_bit,"UDP Md5:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X",\
file_info[8],file_info[9],\
file_info[10],file_info[11],\
file_info[12],file_info[13],\

View File

@@ -151,7 +151,7 @@ __attribute__((section(".non_0_wait"))) uint8_t Log_write_sram(uint8_t data_type
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2><EFBFBD><EFBFBD>־д<D6BE><D0B4><EFBFBD><EFBFBD>ַ*/
Last_add = Last_add + write_len;
Set_Log_Current_Address(Last_add);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"SRAM LOG Addr : %08X",Last_add);
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"SRAM LOG Addr : %X",Last_add);
return 0;
}

View File

@@ -270,7 +270,13 @@ __attribute__((section(".non_0_wait"))) void UART1_RECEIVE(void)
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"UART_1 Len %d ",g_uart[UART_1].RecvLen);
Dbg_Print_Buff(DBG_BIT_SYS_STATUS_bit,"UART_1 Buff:", g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>SRAM<41><4D><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷд<CDB7><D0B4><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
SRAM_Write_Byte((uint8_t)(g_uart[UART_1].RecvLen & 0xFF),g_uart[UART_1].RX_Buffer_WriteAddr);
SRAM_Write_Byte((uint8_t)((g_uart[UART_1].RecvLen >> 8) & 0xFF),g_uart[UART_1].RX_Buffer_WriteAddr+1);
SRAM_DMA_Write_Buff(g_uart[UART_1].RecvBuffer,g_uart[UART_1].RecvLen,g_uart[UART_1].RX_Buffer_WriteAddr+2);
g_uart[UART_1].RX_Buffer_WriteAddr += SRAM_Uart_Buffer_Size;
if(g_uart[UART_1].RX_Buffer_WriteAddr > SRAM_UART1_RecvBuffer_End_Addr) g_uart[UART_1].RX_Buffer_WriteAddr = SRAM_UART1_RecvBuffer_Start_Addr;
g_uart[UART_1].RecvLen = 0;
g_uart[UART_1].Receiving = 0;

View File

@@ -31,7 +31,7 @@ extern "C" {
/* The number of sockets, the maximum is 31 */
#define WCHNET_MAX_SOCKET_NUM (WCHNET_NUM_IPRAW+WCHNET_NUM_UDP+WCHNET_NUM_TCP+WCHNET_NUM_TCP_LISTEN)
#define WCHNET_TCP_MSS 768 /* Size of TCP MSS Ĭ<><C4AC>:1460*/
#define WCHNET_TCP_MSS 1460 /* Size of TCP MSS Ĭ<><C4AC>:1460*/
#define WCHNET_NUM_POOL_BUF (WCHNET_NUM_TCP*2+2) /* The number of POOL BUFs, the number of receive queues */

View File

@@ -18,7 +18,7 @@ uint16_t srcport = 1000; //source port
uint8_t SocketId;
uint8_t socket[WCHNET_MAX_SOCKET_NUM]; //Save the currently connected socket
uint8_t SocketRecvBuf[WCHNET_MAX_SOCKET_NUM][RECE_BUF_LEN]; //socket receive buffer
uint8_t SocketRecvBuf[WCHNET_MAX_SOCKET_NUM][1472]; //socket receive buffer
//<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
WCHNET_INFO_T g_netinfo = {
@@ -94,7 +94,7 @@ void TIM2_IRQHandler(void)
* cb - socket<65>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
* Return : None
*******************************************************************************/
__attribute__((section(".non_0_wait"))) void WCHNET_CreateUdpSocket(uint8_t* S, uint16_t SourPort, pSockRecv cb)
void WCHNET_CreateUdpSocket(uint8_t *S, uint16_t SourPort, pSockRecv cb)
{
uint8_t i;
SOCK_INF TmpSocketInf; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱsocket<65><74><EFBFBD><EFBFBD> */
@@ -112,7 +112,7 @@ __attribute__((section(".non_0_wait"))) void WCHNET_CreateUdpSocket(uint8_t* S,
i = WCHNET_SocketCreat(S, &TmpSocketInf); /* <20><><EFBFBD><EFBFBD>socket<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>socket<65><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SocketId<49><64> */
mStopIfError(i);
WCHNET_ModifyRecvBuf(SocketId, (uint32_t) SocketRecvBuf[SocketId], RECE_BUF_LEN);
WCHNET_ModifyRecvBuf(*S, (uint32_t) SocketRecvBuf[*S], RECE_BUF_LEN);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s - %d",__func__, *S);
}
@@ -152,9 +152,9 @@ void UDPSocket1_AppCallBack( struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16
ip[3] = ipaddr>>24;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"ip:%d.%d.%d.%d, port:%d",ip[0], ip[1], ip[2], ip[3], port);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"Socket1 len:%ld",len);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"Socket1 len:%d",len);
Dbg_Print_Buff(DBG_BIT_NET_STATUS_bit,"Recv data:",buff,len);
Dbg_Print_Buff(DBG_BIT_NET_STATUS_bit,"data :",buff,len);
//Udp_Internal_Analysis(buff, len, ip, port);
if(buff[0] == 0xAA)
@@ -162,7 +162,7 @@ void UDPSocket1_AppCallBack( struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16
switch(buff[1])
{
case 0x55: //<2F>ɵķ<C9B5><C4B7><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
//Udp_Internal_Analysis(buff, len, ip, port);
Udp_Internal_Analysis(buff, len, ip, port);
break;
case 0x66: //UDP<44><50><EFBFBD><EFBFBD>Э<EFBFBD><D0AD> - 2022-05-31
//UDP_NetServer_Data_Analysis(buff, len, ip, port);
@@ -1055,13 +1055,6 @@ __attribute__((section(".non_0_wait"))) void NetWork_Task(void)
//Udp_Internal_Task(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
if(SysTick_1s - server_info.con_tick > 10)
{
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
server_info.con_tick = SysTick_1s;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...\n");
}
/* -<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* -<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>״̬<D7B4>£<EFBFBD>PC<50><43><EFBFBD>߻<EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7>Ͳ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
* */
@@ -1087,7 +1080,6 @@ __attribute__((section(".non_0_wait"))) void NetWork_Task(void)
/*<2A>ͷ<EFBFBD><CDB7>׽<EFBFBD><D7BD><EFBFBD>*/
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD>ͷ<EFBFBD><EFBFBD>׽<EFBFBD><EFBFBD><EFBFBD>");
WCHNET_SocketClose(g_netinfo.SocketId[SocketIdnex_BLVSeriver],0x00);
}
break;

View File

@@ -118,7 +118,8 @@ typedef struct
uint16_t goal_port; //Ŀ<><C4BF>port
uint16_t dis_port; //<2F>ƶ˷<C6B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
uint16_t frame_no; //<2F><><EFBFBD>͵<EFBFBD>֡<EFBFBD><D6A1>
uint16_t ack_frame; //ACK֡<4B><D6A1>
uint16_t ack_frame; //ACK֡<4B><D6A1> - <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>֡<EFBFBD><D6A1>
uint16_t udp_frame; //UDPͨѶ<CDA8><D1B6><EFBFBD>յ<EFBFBD>֡<EFBFBD><D6A1>
uint16_t udp_timesync_cnt; //ʱ<><CAB1>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - 1sһ<73><D2BB>
uint16_t udp_periodic_cnt; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> - 1sһ<73><D2BB>

View File

@@ -53,9 +53,9 @@ __attribute__((section(".non_0_wait"))) uint16_t TFTP_Pack_Get_Block(uint8_t *bu
{
uint16_t temp = 0x00;
temp = buf[3];
temp = buf[2];
temp <<= 8;
temp |= buf[4];
temp |= buf[3];
return temp;
}
@@ -94,7 +94,7 @@ __attribute__((section(".non_0_wait"))) uint8_t TFTP_send_ack_packet(uint8_t s,
{
uint8_t err = 0;
uint32_t sendlen = TFTP_ACK_PKT_LEN;
char packet[TFTP_ACK_PKT_LEN];
uint8_t packet[24];
/* define the first two bytes of the packet */
if(1 == IAPVarTypeStruct_Ptr.IapErrFlag) TFTP_Pack_Set_Opcode(packet,TFTP_ERROR);
@@ -102,8 +102,10 @@ __attribute__((section(".non_0_wait"))) uint8_t TFTP_send_ack_packet(uint8_t s,
TFTP_Pack_Set_Block(packet, block);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"TFTP ACK packet -- SocketId:%d , port:%d ,block:%ld len:%ld , IP:%d.%d.%d.%d",s,to_port,block,sendlen,to_ip[0],to_ip[1],to_ip[2],to_ip[3]);
err = WCHNET_SocketUdpSendTo(s, (uint8_t *)&packet[0], &sendlen, to_ip, to_port);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"TFTP ACK packet -- SocketId:%d , port:%d ,block:%d len:%d , IP:%d.%d.%d.%d",s,to_port,block,sendlen,to_ip[0],to_ip[1],to_ip[2],to_ip[3]);
Dbg_Print_Buff(DBG_BIT_NET_STATUS_bit, "Send Data: ", packet, sendlen);
err = WCHNET_SocketUdpSendTo(s, packet, &sendlen, to_ip, to_port);
return err;
}
@@ -128,7 +130,7 @@ __attribute__((section(".non_0_wait"))) uint8_t IAP_tftp_process_write(uint8_t s
IAPVarTypeStruct_Ptr.TotalCount =0;
IAPVarTypeStruct_Ptr.IapErrFlag = 0;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"ip:%d.%d.%d.%d, port:%d",to_ip[0], to_ip[1], to_ip[2], to_ip[3], to_port);
/*BLV_C1 -- <20><><EFBFBD><EFBFBD>Flash<73><68><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD>ͬʱ<CDAC><CAB1>SRAM<41>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>flash<73><68>*/
if(IAPVarTypeStruct_Ptr.IapFileType == TFTP_IAP_DataType_APP)
{
@@ -145,7 +147,7 @@ __attribute__((section(".non_0_wait"))) uint8_t IAP_tftp_process_write(uint8_t s
return 0x01;
}
TFTP_send_ack_packet(s, to_ip, to_port, tftp_args.block);
TFTP_send_ack_packet(g_netinfo.SocketId[SocketIdnex_TFTPDATA], to_ip, to_port, tftp_args.block); //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
return 0x00;
}
@@ -167,7 +169,9 @@ __attribute__((section(".non_0_wait"))) void TFTP_IAP_Data_Processing(uint8_t s,
IAPVarTypeStruct_Ptr.IapPercent++;
IAPVarTypeStruct_Ptr.processing_tick = SysTick_1ms;
if( (pkt_buf_len > TFTP_DATA_PKT_HDR_LEN) && (TFTP_Pack_Get_Block(pkt_buf) == (IAPVarTypeStruct_Ptr.Write_Block + 1) ) )
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s block:%d - %d",__func__,IAPVarTypeStruct_Ptr.Write_Block,TFTP_Pack_Get_Block(pkt_buf));
if( (pkt_buf_len > TFTP_DATA_PKT_HDR_LEN) && ( TFTP_Pack_Get_Block(pkt_buf) == (IAPVarTypeStruct_Ptr.Write_Block + 1) ) )
{
pkt_buf_len = pkt_buf_len - TFTP_DATA_PKT_HDR_LEN;
memset(data_buffer,0,TFTP_DATA_LEN_MAX);
@@ -368,9 +372,9 @@ __attribute__((section(".non_0_wait"))) void TFTP_IAP_Data_Processing(uint8_t s,
// }
IAPVarTypeStruct_Ptr.IapErrFlag = 1;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X%02X,%02X,%02X,%02X,%02X,%02X", \
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X", \
md5[0],md5[1],md5[2],md5[3],md5[4],md5[5],md5[6],md5[7],md5[8],md5[9],md5[10],md5[11],md5[12],md5[13],md5[14],md5[15]);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"UDP Md5:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X", \
Dbg_Println(DBG_BIT_NET_STATUS_bit,"UDP Md5:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X", \
IAPVarTypeStruct_Ptr.Md5[0],IAPVarTypeStruct_Ptr.Md5[1], \
IAPVarTypeStruct_Ptr.Md5[2],IAPVarTypeStruct_Ptr.Md5[3], \
IAPVarTypeStruct_Ptr.Md5[4],IAPVarTypeStruct_Ptr.Md5[5], \
@@ -422,8 +426,8 @@ __attribute__((section(".non_0_wait"))) void TFTP_IAP_Data_Processing(uint8_t s,
memcpy(&data_buffer[8],IAPVarTypeStruct_Ptr.Md5,16);
Flash_Write(data_buffer,24,SPIFLASH_LOGIC_DataFlag_ADDRESS);
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
LOG_LogicInfo_DebugRecord("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ");
Dbg_Println(DBG_BIT_DEVICE_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
LOG_LogicInfo_DebugRecord("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ");
}else{
// switch(IAPVarTypeStruct_Ptr->IapType)
// {
@@ -436,9 +440,9 @@ __attribute__((section(".non_0_wait"))) void TFTP_IAP_Data_Processing(uint8_t s,
// }
IAPVarTypeStruct_Ptr.IapErrFlag = 1;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X%02X,%02X,%02X,%02X,%02X,%02X",\
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>Md5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X",\
md5[0],md5[1],md5[2],md5[3],md5[4],md5[5],md5[6],md5[7],md5[8],md5[9],md5[10],md5[11],md5[12],md5[13],md5[14],md5[15]);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"UDP Md5:%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X,%02X",\
Dbg_Println(DBG_BIT_NET_STATUS_bit,"UDP Md5:%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X,%X",\
IAPVarTypeStruct_Ptr.Md5[0],IAPVarTypeStruct_Ptr.Md5[1],\
IAPVarTypeStruct_Ptr.Md5[2],IAPVarTypeStruct_Ptr.Md5[3],\
IAPVarTypeStruct_Ptr.Md5[4],IAPVarTypeStruct_Ptr.Md5[5],\
@@ -461,7 +465,7 @@ __attribute__((section(".non_0_wait"))) void TFTP_IAP_Data_Processing(uint8_t s,
* Function Name : UDPSocket_TFTP_CMD_AppCallBack
* Description : TFTP<54><50><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD> - <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
__attribute__((section(".non_0_wait"))) void UDPSocket_TFTP_CMD_AppCallBack(struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16_t port,uint8_t *buff,uint32_t len)
void UDPSocket_TFTP_CMD_AppCallBack(struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16_t port,uint8_t *buff,uint32_t len)
{
uint8_t ip_addr[4];
ip_addr[0] = ipaddr & 0xFF;
@@ -469,7 +473,7 @@ __attribute__((section(".non_0_wait"))) void UDPSocket_TFTP_CMD_AppCallBack(stru
ip_addr[2] = (ipaddr >> 16) & 0xFF ;
ip_addr[3] = (ipaddr >> 24) & 0xFF ;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s len:%ld",__func__,len);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s len:%d",__func__,len);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"ip:%d.%d.%d.%d, port:%d",ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3], port);
/*TFTP <20><><EFBFBD><EFBFBD><EEB4A6>*/
@@ -483,7 +487,7 @@ __attribute__((section(".non_0_wait"))) void UDPSocket_TFTP_CMD_AppCallBack(stru
IAP_tftp_process_write(g_netinfo.SocketId[SocketIdnex_TFTPCMD], ip_addr, port); //<2F>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD> д<>ļ<EFBFBD>ָ<EFBFBD><D6B8>
}else{
Dbg_Println(DBG_BIT_NET_STATUS_bit,"TFTP Type:%d",IAPVarTypeStruct_Ptr.FunType);
}
}else if( TFTP_Pack_Get_Opcode(buff) == TFTP_OPTION )
@@ -501,7 +505,7 @@ __attribute__((section(".non_0_wait"))) void UDPSocket_TFTP_CMD_AppCallBack(stru
* Function Name : UDPSocket_TFTP_DATA_AppCallBack
* Description : TFTP<54><50><EFBFBD><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD> - <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
__attribute__((section(".non_0_wait"))) void UDPSocket_TFTP_DATA_AppCallBack(struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16_t port,uint8_t *buff,uint32_t len)
void UDPSocket_TFTP_DATA_AppCallBack(struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16_t port,uint8_t *buff,uint32_t len)
{
uint8_t ip_addr[4];
ip_addr[0] = ipaddr & 0xFF;
@@ -509,7 +513,7 @@ __attribute__((section(".non_0_wait"))) void UDPSocket_TFTP_DATA_AppCallBack(str
ip_addr[2] = (ipaddr >> 16) & 0xFF ;
ip_addr[3] = (ipaddr >> 24) & 0xFF ;
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s len:%ld",__func__,len);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"%s len:%d",__func__,len);
Dbg_Println(DBG_BIT_NET_STATUS_bit,"ip:%d.%d.%d.%d, port:%d",ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3], port);
if( TFTP_Pack_Get_Opcode(buff) == TFTP_DATA ) //TFTP IAP<41>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
@@ -564,7 +568,7 @@ __attribute__((section(".non_0_wait"))) void Internal_TFTP_Task(void)
case STA_INIT_IDLE:
//<2F><><EFBFBD>ƶ˷<C6B6><CBB7>Ͷ<EFBFBD>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
if( SysTick_1ms - IAPVarTypeStruct_Ptr.processing_tick > TFTP_IAP_Timeout) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ͷ<EFBFBD><CDB7>׽<EFBFBD><D7BD><EFBFBD>
if( SysTick_1ms - IAPVarTypeStruct_Ptr.processing_tick > 30000) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ͷ<EFBFBD><CDB7>׽<EFBFBD><D7BD><EFBFBD>
{
//Cloud_IAP_Plan_SendPack(tftp_args,IAPVarTypeStruct_Ptr,IAPPlan_State_IAPTimeout); //<2F><><EFBFBD><EFBFBD>IAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
@@ -587,7 +591,7 @@ __attribute__((section(".non_0_wait"))) void Internal_TFTP_Task(void)
IAPVarTypeStruct_Ptr.enable = 0x00;
break;
default:
IAPVarTypeStruct_Ptr.status = STA_END; //<2F>ͷ<EFBFBD><CDB7>׽<EFBFBD><D7BD><EFBFBD>
IAPVarTypeStruct_Ptr.status = STA_INIT_WAIT; //<2F>ͷ<EFBFBD><CDB7>׽<EFBFBD><D7BD><EFBFBD>
break;
}

View File

@@ -38,6 +38,13 @@
#define TFTP_IAP_DataType_APP 0x01 //IAP<41><50><EFBFBD><EFBFBD> - APP<50>̼<EFBFBD>
#define TFTP_IAP_DataType_CONFIG 0x02 //IAP<41><50><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
#define TFTP_IAP_Status_Ready 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TFTP_IAP_Status_Finish 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TFTP_IAP_Status_Error 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TFTP_IAP_Status_Error_Block 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TFTP_IAP_Status_Error_File 0x04 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
#define TFTP_IAP_Status_Error_Md5 0x05 //<2F><><EFBFBD><EFBFBD>MD5ֵ<35><D6B5><EFBFBD><EFBFBD>
typedef enum {
TFTP_RRQ = 1,
@@ -97,6 +104,7 @@ typedef struct
uint32_t last_time;
}tftp_connection_args;
extern IAPVarTypeStruct IAPVarTypeStruct_Ptr;
void Internal_TFTP_Task(void);

View File

@@ -1,3 +1,19 @@
#### 2025-12-25
1、TFTP升级 - 配置文件初步测试没问题
2、配置文件内容解析移植完毕调试中
3、TFTP升级 - 是否一个套接字搞定,不需要使用两个套接字
#### 2025-12-10
1、TFTP IAP升级功能移植完毕待测试
2、优化代码编译的空间问题目前零等待区的空间已满需将除了库函数以外的代码及相关变量全部放置非零等待区中否则项目编译不成功
#### 2025-12-06
1. 动作执行函数初步实现完毕 - 待测试

View File

@@ -49,6 +49,8 @@
#include "blv_nor_dec_virtualcard.h"
#include "blv_nor_dev_hvoutfun.h"
#include "blv_nor_dev_lvinput.h"
#include "blv_nor_dev_serviceinfo.h"
#include "blv_rs485_dev_energymonitor.h"
#include "blv_rs485_dev_switchctrl.h"
#include "blv_rs485_dev_tempctrl.h"

View File

@@ -46,6 +46,8 @@ int main(void)
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"MCU Start!! 2025-11-03-10:42\r\n");
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"SystemClk:%d\r\n", SystemCoreClock);
BLV_DevAction_AllData_Init();
while (1)
{
SYS_LED_Task();
@@ -58,7 +60,7 @@ int main(void)
if(SysTick_1ms - test_tick >= 10000){
test_tick = SysTick_1ms;
Dbg_Println(DBG_BIT_SYS_STATUS_bit,"RUN PYH:%x...\r\n",ETH_ReadPHYRegister(PHY_ADDRESS, PHY_BSR));
//Dbg_Println(DBG_BIT_SYS_STATUS_bit,"RUN PYH:%x...\r\n",ETH_ReadPHYRegister(PHY_ADDRESS, PHY_BSR));
}