feat:新增TFTP IAP升级功能

修改事项:
1、新增TFTP IAP升级功能,只是代码移植完毕,没有测试使用
2、代码空间编译优化,零等待区域空间已满,而应用层代码已全部挪移到非零等待区域中,但还是会增加零等待区的空间占用。 待优化
This commit is contained in:
caocong
2025-12-10 14:06:45 +08:00
parent d2d8800788
commit cc8783e9f8
22 changed files with 1611 additions and 65 deletions

View File

@@ -605,8 +605,8 @@ __attribute__((section(".non_0_wait"))) uint8_t Udp_Internal_Read_MCU_System_Sen
SRAM_DMA_Read_Buff(&Global_Large_Buff[BLV_UDP_HEAD_LEN+121],4,SRAM_Register_Start_ADDRESS + Register_MandateUTC_OFFSET);
SRAM_DMA_Read_Buff(&Global_Large_Buff[BLV_UDP_HEAD_LEN+125],4,SRAM_Register_Start_ADDRESS + Register_MandateExpiresTime_OFFSET);
SRAM_DMA_Read_Buff(&Global_Large_Buff[BLV_UDP_HEAD_LEN+129],128,SRAM_Register_Start_ADDRESS + Register_RoomNumNote_OFFSET);
Flash_Read(&Global_Large_Buff[BLV_UDP_HEAD_LEN+257],64,FLASH_MCU_Model_Revision_ADDRESS);
Flash_Read(&Global_Large_Buff[BLV_UDP_HEAD_LEN+321],64,FLASH_MCU_Control_Revision_ADDRESS);
Flash_Read(&Global_Large_Buff[BLV_UDP_HEAD_LEN+257],64,SPIFLASH_MCU_Model_Revision_ADDRESS);
Flash_Read(&Global_Large_Buff[BLV_UDP_HEAD_LEN+321],64,SPIFLASH_MCU_Control_Revision_ADDRESS);
//temp_rev = Read_LogicFile_Information(0x04,(uint8_t *)&temp_data); //<2F><>ѯLOGIC<49>ļ<EFBFBD><C4BC>еľƵ<C4BE><C6B5><EFBFBD><EFBFBD><EFBFBD> - 32Byte
if(temp_rev == 0x00)
@@ -1162,7 +1162,6 @@ __attribute__((section(".non_0_wait"))) uint8_t Udp_Internal_SeriaNet_Uploading(
NetCRC16(&Global_Large_Buff[0],data_len);
WCHNET_SocketUdpSendTo(g_netinfo.SocketId[SocketIdnex_BLVSeriver], &Global_Large_Buff[0], &data_len, pc_ip, pc_port);
return 0x00;
}
@@ -1189,11 +1188,10 @@ __attribute__((section(".non_0_wait"))) uint8_t Udp_Internal_SeriaNet_Uploading2
if((server_info.frame_no < 0xfffe) && (server_info.frame_no >= 0x8000))
{
server_info.frame_no++;
}
else
{
}else{
server_info.frame_no = 0x8000;
}
/*<2A><>ȡPC IP<49><50>ַ*/
SRAM_DMA_Read_Buff(pc_ip,4,SRAM_IAP_IP_ADDRESS);
pc_port = SRAM_Read_Word(SRAM_IAP_PORT_ADDRESS);
@@ -1276,7 +1274,7 @@ __attribute__((section(".non_0_wait"))) void BLV_UDP_Comm_Task(void)
{
udp_state_tick = SysTick_1ms;
if(server_info.init_flag == 0x00) return ; //DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>ֱ<EFBFBD><D6B1><EFBFBD>˳<EFBFBD>
if( (WCHNET_Get_PHY_Linked_Status() == 0x01) || (server_info.init_flag == 0x00) ) return ; //DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>ֱ<EFBFBD><D6B1><EFBFBD>˳<EFBFBD>
/*<2A><><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>TFTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
// if(IAPVarTypeStruct_Ptr != NULL)