Browse Source

net is ok

v5
zhaohe 2 years ago
parent
commit
758f3d1bf7
  1. 4
      .vscode/c_cpp_properties.json
  2. 7
      .vscode/settings.json
  3. 18
      Core/Src/gpio.c
  4. 31
      LWIP/App/lwip.c
  5. 33
      LWIP/Target/ethernetif.c
  6. 8
      LWIP/Target/lwipopts.h
  7. 3
      usrc/device.cpp
  8. 1
      xsync_stm32 Debug.launch
  9. 30
      xsync_stm32.ioc

4
.vscode/c_cpp_properties.json

@ -14,6 +14,10 @@
"C:/ST/STM32CubeIDE_1.13.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/arm-none-eabi/include",
"./usrc/",
"./sdk",
"Middlewares/Third_Party/LwIP/src/include/",
"LWIP/Target/",
"LWIP/App/",
"Middlewares/Third_Party/LwIP/system/",
"./"
],
"defines": [

7
.vscode/settings.json

@ -75,7 +75,12 @@
"stop_token": "cpp",
"thread": "cpp",
"early_ticket.h": "c",
"chrono": "cpp"
"chrono": "cpp",
"lwip.h": "c",
"opt.h": "c",
"debug.h": "c",
"lwipopts.h": "c",
"arch.h": "c"
},
"files.autoGuessEncoding": false,
"files.encoding": "gbk"

18
Core/Src/gpio.c

@ -54,6 +54,9 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_RESET);
/*Configure GPIO pins : PE2 PE3 PE4 PE5
PE6 PE7 PE8 PE9
PE10 PE11 PE12 PE13
@ -102,16 +105,23 @@ void MX_GPIO_Init(void)
/*Configure GPIO pins : PD8 PD9 PD10 PD11
PD12 PD13 PD14 PD15
PD0 PD1 PD2 PD3
PD4 PD5 PD6 PD7 */
PD0 PD1 PD2 PD4
PD5 PD6 PD7 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pin : PD3 */
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
}
/* USER CODE BEGIN 2 */

31
LWIP/App/lwip.c

@ -44,6 +44,9 @@ struct netif gnetif;
ip4_addr_t ipaddr;
ip4_addr_t netmask;
ip4_addr_t gw;
uint8_t IP_ADDRESS[4];
uint8_t NETMASK_ADDRESS[4];
uint8_t GATEWAY_ADDRESS[4];
/* USER CODE BEGIN 2 */
@ -54,13 +57,30 @@ ip4_addr_t gw;
*/
void MX_LWIP_Init(void)
{
/* IP addresses initialization */
IP_ADDRESS[0] = 192;
IP_ADDRESS[1] = 168;
IP_ADDRESS[2] = 8;
IP_ADDRESS[3] = 10;
NETMASK_ADDRESS[0] = 255;
NETMASK_ADDRESS[1] = 255;
NETMASK_ADDRESS[2] = 255;
NETMASK_ADDRESS[3] = 255;
GATEWAY_ADDRESS[0] = 192;
GATEWAY_ADDRESS[1] = 168;
GATEWAY_ADDRESS[2] = 8;
GATEWAY_ADDRESS[3] = 1;
/* USER CODE BEGIN IP_ADDRESSES */
/* USER CODE END IP_ADDRESSES */
/* Initilialize the LwIP stack with RTOS */
tcpip_init( NULL, NULL );
/* IP addresses initialization with DHCP (IPv4) */
ipaddr.addr = 0;
netmask.addr = 0;
gw.addr = 0;
/* IP addresses initialization without DHCP (IPv4) */
IP4_ADDR(&ipaddr, IP_ADDRESS[0], IP_ADDRESS[1], IP_ADDRESS[2], IP_ADDRESS[3]);
IP4_ADDR(&netmask, NETMASK_ADDRESS[0], NETMASK_ADDRESS[1] , NETMASK_ADDRESS[2], NETMASK_ADDRESS[3]);
IP4_ADDR(&gw, GATEWAY_ADDRESS[0], GATEWAY_ADDRESS[1], GATEWAY_ADDRESS[2], GATEWAY_ADDRESS[3]);
/* add the network interface (IPv4/IPv6) with RTOS */
netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &tcpip_input);
@ -88,9 +108,6 @@ void MX_LWIP_Init(void)
osThreadCreate (osThread(EthLink), &gnetif);
/* USER CODE END H7_OS_THREAD_DEF_CREATE_CMSIS_RTOS_V1 */
/* Start DHCP negotiation for a network interface (IPv4) */
dhcp_start(&gnetif);
/* USER CODE BEGIN 3 */
/* USER CODE END 3 */

33
LWIP/Target/ethernetif.c

@ -7,7 +7,7 @@
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* Copyright (c) 2023 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@ -202,7 +202,7 @@ static void low_level_init(struct netif *netif)
heth.Init.RxBuffLen = 1536;
/* USER CODE BEGIN MACADDRESS */
/* USER CODE END MACADDRESS */
hal_eth_init_status = HAL_ETH_Init(&heth);
@ -254,7 +254,7 @@ static void low_level_init(struct netif *netif)
/* USER CODE END OS_THREAD_DEF_CREATE_CMSIS_RTOS_V1 */
/* USER CODE BEGIN PHY_PRE_CONFIG */
/* USER CODE END PHY_PRE_CONFIG */
/* Set PHY IO functions */
LAN8742_RegisterBusIO(&LAN8742, &LAN8742_IOCtx);
@ -309,7 +309,7 @@ static void low_level_init(struct netif *netif)
netif_set_link_up(netif);
/* USER CODE BEGIN PHY_POST_CONFIG */
/* USER CODE END PHY_POST_CONFIG */
}
@ -321,7 +321,7 @@ static void low_level_init(struct netif *netif)
#endif /* LWIP_ARP || LWIP_ETHERNET */
/* USER CODE BEGIN LOW_LEVEL_INIT */
/* USER CODE END LOW_LEVEL_INIT */
}
@ -454,7 +454,7 @@ static err_t low_level_output_arp_off(struct netif *netif, struct pbuf *q, const
errval = ERR_OK;
/* USER CODE BEGIN 5 */
/* USER CODE END 5 */
return errval;
@ -546,7 +546,7 @@ void pbuf_free_custom(struct pbuf *p)
* @brief Returns the current time in milliseconds
* when LWIP_TIMERS == 1 and NO_SYS == 1
* @param None
* @retval Current Time value
* @retval Time
*/
u32_t sys_now(void)
{
@ -611,7 +611,11 @@ void HAL_ETH_MspInit(ETH_HandleTypeDef* ethHandle)
HAL_NVIC_SetPriority(ETH_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(ETH_IRQn);
/* USER CODE BEGIN ETH_MspInit 1 */
#define ETH_RST_Pin GPIO_PIN_3
#define ETH_RST_GPIO_Port GPIOD
HAL_GPIO_WritePin(ETH_RST_GPIO_Port,ETH_RST_Pin,GPIO_PIN_RESET);
HAL_Delay(50);
HAL_GPIO_WritePin(ETH_RST_GPIO_Port,ETH_RST_Pin,GPIO_PIN_SET);
/* USER CODE END ETH_MspInit 1 */
}
}
@ -738,7 +742,7 @@ void ethernet_link_thread(void const * argument)
struct netif *netif = (struct netif *) argument;
/* USER CODE BEGIN ETH link init */
netif->link_callback(netif);
/* USER CODE END ETH link init */
for(;;)
@ -869,6 +873,17 @@ void HAL_ETH_TxFreeCallback(uint32_t * buff)
}
/* USER CODE BEGIN 8 */
/**
* @brief This function notify user about link status changement.
* @param netif: the network interface
* @retval None
*/
__weak void ethernetif_notify_conn_changed(struct netif *netif)
{
/* NOTE : This is function could be implemented in user file
when the callback is needed,
*/
}
/* USER CODE END 8 */

8
LWIP/Target/lwipopts.h

@ -1,13 +1,13 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* File Name : Target/lwipopts.h
* File Name : lwipopts.h
* Description : This file overrides LwIP stack default configuration
* done in opt.h file.
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* Copyright (c) 2023 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
@ -49,12 +49,8 @@
/* LwIP Stack Parameters (modified compared to initialization value in opt.h) -*/
/* Parameters set in STM32CubeMX LwIP Configuration GUI -*/
/*----- Value in opt.h for LWIP_DHCP: 0 -----*/
#define LWIP_DHCP 1
/*----- Value in opt.h for MEM_ALIGNMENT: 1 -----*/
#define MEM_ALIGNMENT 4
/*----- Value in opt.h for MEMP_NUM_SYS_TIMEOUT: (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + (PPP_SUPPORT*6*MEMP_NUM_PPP_PCB) + (LWIP_IPV6 ? (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD) : 0)) -*/
#define MEMP_NUM_SYS_TIMEOUT 5
/*----- Value in opt.h for LWIP_ETHERNET: LWIP_ARP || PPPOE_SUPPORT -*/
#define LWIP_ETHERNET 1
/*----- Value in opt.h for LWIP_DNS_SECURE: (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT) -*/

3
usrc/device.cpp

@ -8,9 +8,8 @@ using namespace iflytop;
#define TAG "Device"
void Device::init() {
xs_gpio_init_as_output(&m_debug_led, PC_DEBUG_LIGHT_GPIO, kxs_gpio_nopull, false, false);
XS_LOGI(TAG, "%s:%s", PC_PROJECT_NAME, PC_VERSION);
xs_gpio_init_as_output(&m_debug_led, PC_DEBUG_LIGHT_GPIO, kxs_gpio_nopull, false, false);
// chip_cfg_t chipcfg = {};
// chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;

1
xsync_stm32 Debug.launch

@ -78,5 +78,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
</launchConfiguration>

30
xsync_stm32.ioc

@ -35,6 +35,11 @@ File.Version=6
GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
LWIP.BSP.number=1
LWIP.GATEWAY_ADDRESS=192.168.008.001
LWIP.IPParameters=LWIP_DHCP,IP_ADDRESS,NETMASK_ADDRESS,GATEWAY_ADDRESS
LWIP.IP_ADDRESS=192.168.008.010
LWIP.LWIP_DHCP=0
LWIP.NETMASK_ADDRESS=255.255.255.255
LWIP.Version=v2.1.2_Cube
LWIP0.BSP.STBoard=false
LWIP0.BSP.api=BSP_COMPONENT_DRIVER
@ -72,16 +77,17 @@ Mcu.Pin11=PA9
Mcu.Pin12=PA10
Mcu.Pin13=PA13
Mcu.Pin14=PA14
Mcu.Pin15=VP_CRC_VS_CRC
Mcu.Pin16=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin17=VP_LWIP_VS_Enabled
Mcu.Pin18=VP_RNG_VS_RNG
Mcu.Pin19=VP_SYS_VS_tim11
Mcu.Pin15=PD3
Mcu.Pin16=VP_CRC_VS_CRC
Mcu.Pin17=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin18=VP_LWIP_VS_Enabled
Mcu.Pin19=VP_RNG_VS_RNG
Mcu.Pin2=PC1
Mcu.Pin20=VP_TIM1_VS_ClockSourceINT
Mcu.Pin21=VP_TIM3_VS_ClockSourceINT
Mcu.Pin22=VP_TIM6_VS_ClockSourceINT
Mcu.Pin23=VP_TIM7_VS_ClockSourceINT
Mcu.Pin20=VP_SYS_VS_tim11
Mcu.Pin21=VP_TIM1_VS_ClockSourceINT
Mcu.Pin22=VP_TIM3_VS_ClockSourceINT
Mcu.Pin23=VP_TIM6_VS_ClockSourceINT
Mcu.Pin24=VP_TIM7_VS_ClockSourceINT
Mcu.Pin3=PA1
Mcu.Pin4=PA2
Mcu.Pin5=PA7
@ -89,7 +95,7 @@ Mcu.Pin6=PC4
Mcu.Pin7=PC5
Mcu.Pin8=PB11
Mcu.Pin9=PB12
Mcu.PinsNb=24
Mcu.PinsNb=25
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VETx
@ -143,6 +149,8 @@ PC4.Mode=RMII
PC4.Signal=ETH_RXD0
PC5.Mode=RMII
PC5.Signal=ETH_RXD1
PD3.Locked=true
PD3.Signal=GPIO_Output
PH0-OSC_IN.Mode=HSE-External-Oscillator
PH0-OSC_IN.Signal=RCC_OSC_IN
PH1-OSC_OUT.Mode=HSE-External-Oscillator
@ -178,7 +186,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_LWIP_Init-LWIP-false-HAL-false
RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=144000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4

Loading…
Cancel
Save