备份-网线热拔插问题
This commit is contained in:
parent
a09c6a41de
commit
6dbc62e1fc
|
@ -8,6 +8,12 @@
|
||||||
"ch438q.h": "c",
|
"ch438q.h": "c",
|
||||||
"ht1200m.h": "c",
|
"ht1200m.h": "c",
|
||||||
"main.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 "dac161s997.h"
|
||||||
#include "ch438q.h"
|
#include "ch438q.h"
|
||||||
#include "tcpserverc.h"
|
#include "tcpserverc.h"
|
||||||
|
#include "lan8742.h"
|
||||||
|
#include "lwip.h"
|
||||||
|
#include "lwip/tcp.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
/* Private typedef -----------------------------------------------------------*/
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
@ -55,7 +58,9 @@ osThreadId ch438_taskHandle;
|
||||||
|
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
/* USER CODE BEGIN FunctionPrototypes */
|
/* 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 */
|
/* USER CODE END FunctionPrototypes */
|
||||||
|
|
||||||
void start_lwip_task(void const *argument);
|
void start_lwip_task(void const *argument);
|
||||||
|
@ -143,6 +148,24 @@ void start_lwip_task(void const *argument)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
// osThreadTerminate(NULL);
|
// 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_1();
|
||||||
ch438_interrupt_handler_data_ch438_chip_2();
|
ch438_interrupt_handler_data_ch438_chip_2();
|
||||||
|
|
||||||
|
|
|
@ -373,7 +373,7 @@
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>4</FileNumber>
|
<FileNumber>4</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>../Core/Src/freertos.c</PathWithFileName>
|
<PathWithFileName>../Core/Src/freertos.c</PathWithFileName>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue