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

@@ -179,7 +179,7 @@ void UDPSocket1_AppCallBack( struct _SOCK_INF * SocketInf,uint32_t ipaddr,uint16
* id - socket id.
* Return : None
*******************************************************************************/
void WCHNET_DataLoopback(uint8_t id)
__attribute__((section(".non_0_wait"))) void WCHNET_DataLoopback(uint8_t id)
{
uint8_t i;
uint32_t len;
@@ -206,7 +206,7 @@ void WCHNET_DataLoopback(uint8_t id)
* intstat - interrupt status
* Return : None
*******************************************************************************/
void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
__attribute__((section(".non_0_wait"))) void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
{
uint8_t i;
@@ -262,7 +262,7 @@ void WCHNET_HandleSockInt(uint8_t socketid, uint8_t intstat)
* Description : <20><>ȡPHY<48><59>·״̬
* Return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PHY״̬<D7B4><CCAC> 0x00 - PHY Link Succ,0x01 - PHY Link Fail
*******************************************************************************/
uint8_t WCHNET_Get_PHY_Linked_Status(void)
__attribute__((section(".non_0_wait"))) uint8_t WCHNET_Get_PHY_Linked_Status(void)
{
uint16_t rev = 0;
rev = WCHNET_GetPHYStatus();
@@ -276,7 +276,7 @@ uint8_t WCHNET_Get_PHY_Linked_Status(void)
* Function Name : WCHNET_HandleGlobalInt
* Description : Global Interrupt Handle
*******************************************************************************/
void WCHNET_HandleGlobalInt(void)
__attribute__((section(".non_0_wait"))) void WCHNET_HandleGlobalInt(void)
{
uint8_t intstat;
uint16_t i;
@@ -1049,6 +1049,9 @@ __attribute__((section(".non_0_wait"))) void NetWork_Task(void)
break;
case NET_COMPLETE:
Internal_TFTP_Task(); //TFTP <20><><EFBFBD><EFBFBD>
BLV_UDP_Comm_Task(); //BLV UDPͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>
//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>
@@ -1059,16 +1062,19 @@ __attribute__((section(".non_0_wait"))) void NetWork_Task(void)
Dbg_Println(DBG_BIT_NET_STATUS_bit,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...\n");
}
// if(server_info.con_flag==0x01) //2023-05-27
// {
// if(SysTick_1s - server_info.con_tick > 10)
// {
// server_info.con_flag = 0x00;
// server_info.con_tick = SysTick_1s;
// server_info.init_flag = 0x00;
// Dbg_Print(DBG_BIT_NET_STATUS_bit,"ֱ<><D6B1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><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>
* */
if(server_info.con_flag==0x01)
{
if(SysTick_1s - server_info.con_tick > 10)
{
server_info.con_flag = 0x00;
server_info.con_tick = SysTick_1s;
server_info.init_flag = 0x00;
Dbg_Print(DBG_BIT_NET_STATUS_bit,"ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
}
if(server_info.init_flag == 0x00) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>
{
@@ -1078,7 +1084,6 @@ __attribute__((section(".non_0_wait"))) void NetWork_Task(void)
server_info.wait_cot = SysTick_1ms;
server_info.net_sta = NET_WAIT_MAC_RESTART;
/*<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);