备份-网线热拔插问题
This commit is contained in:
parent
a09c6a41de
commit
6dbc62e1fc
|
@ -8,6 +8,12 @@
|
|||
"ch438q.h": "c",
|
||||
"ht1200m.h": "c",
|
||||
"main.h": "c",
|
||||
"etharp.h": "c"
|
||||
"etharp.h": "c",
|
||||
"tcpserverc.h": "c",
|
||||
"stdio.h": "c",
|
||||
"freertos.h": "c",
|
||||
"lan8742.h": "c",
|
||||
"lwip.h": "c",
|
||||
"dhcp.h": "c"
|
||||
}
|
||||
}
|
|
@ -28,6 +28,9 @@
|
|||
#include "dac161s997.h"
|
||||
#include "ch438q.h"
|
||||
#include "tcpserverc.h"
|
||||
#include "lan8742.h"
|
||||
#include "lwip.h"
|
||||
#include "lwip/tcp.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
|
@ -55,7 +58,9 @@ osThreadId ch438_taskHandle;
|
|||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN FunctionPrototypes */
|
||||
|
||||
extern struct netif gnetif;
|
||||
extern ETH_HandleTypeDef heth;
|
||||
extern struct tcp_pcb *server_pcb_hart[TCP_MAX];
|
||||
/* USER CODE END FunctionPrototypes */
|
||||
|
||||
void start_lwip_task(void const *argument);
|
||||
|
@ -143,6 +148,24 @@ void start_lwip_task(void const *argument)
|
|||
for (;;)
|
||||
{
|
||||
// osThreadTerminate(NULL);
|
||||
uint32_t phyreg = 0;
|
||||
uint8_t tcp_hart_num = 0;
|
||||
HAL_ETH_ReadPHYRegister(&heth, 0x00, PHY_BSR, &phyreg);
|
||||
if (((phyreg >> 2) & 0x1) != 0x1)
|
||||
{
|
||||
/* When the netif link is down this function must be called */
|
||||
|
||||
netif_set_link_down(&gnetif);
|
||||
netif_set_down(&gnetif); // 热插拔下线时调用
|
||||
for (tcp_hart_num = 0; tcp_hart_num < TCP_MAX; tcp_hart_num++)
|
||||
{
|
||||
if (tcp_echo_flags[tcp_hart_num] == 1)
|
||||
{
|
||||
tcp_abort(server_pcb_hart[tcp_hart_num]); // 热插拔下线时调用
|
||||
tcp_echo_flags[tcp_hart_num] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
ch438_interrupt_handler_data_ch438_chip_1();
|
||||
ch438_interrupt_handler_data_ch438_chip_2();
|
||||
|
||||
|
|
|
@ -373,7 +373,7 @@
|
|||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>4</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>../Core/Src/freertos.c</PathWithFileName>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue