From 0713a0a42c8a56e7f6844d598168299131513fca Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 21 Aug 2024 10:21:06 +0800 Subject: [PATCH] update --- .cproject | 62 +- .gitmodules | 18 + Core | 1 + Drivers | 1 + LWIP/App/lwip.c | 214 ------- LWIP/App/lwip.h | 76 --- LWIP/Target/ethernetif.c | 897 ---------------------------- LWIP/Target/ethernetif.h | 45 -- LWIP/Target/lwipopts.h | 128 ---- Middlewares | 1 + stm32basic | 1 + stm32components | 1 + stm32halport | 1 + usrc/app_main.cpp | 4 +- usrc/base/appdep.hpp | 14 +- usrc/base/appthread/app_period_task_mgr.hpp | 4 +- usrc/base/appthread/work_queue.hpp | 4 +- usrc/base/config_service.cpp | 2 +- usrc/base/config_service.hpp | 2 +- usrc/base/device_info.hpp | 2 +- usrc/base/idtable/IdMgr.cpp | 2 +- usrc/base/protocol_processer_utils.hpp | 6 +- usrc/base/utils/halutils.hpp | 4 +- usrc/module/h2o2_sensor.cpp | 2 +- usrc/module/proportional_valve_ctrl.hpp | 2 +- 25 files changed, 98 insertions(+), 1396 deletions(-) create mode 100644 .gitmodules create mode 160000 Core create mode 160000 Drivers delete mode 100644 LWIP/App/lwip.c delete mode 100644 LWIP/App/lwip.h delete mode 100644 LWIP/Target/ethernetif.c delete mode 100644 LWIP/Target/ethernetif.h delete mode 100644 LWIP/Target/lwipopts.h create mode 160000 Middlewares create mode 160000 stm32basic create mode 160000 stm32components create mode 160000 stm32halport diff --git a/.cproject b/.cproject index cc7b75f..c4c2695 100644 --- a/.cproject +++ b/.cproject @@ -120,13 +120,51 @@ + + + + + + + + - - @@ -239,12 +277,20 @@ + + + + + + + + - + - + @@ -254,12 +300,4 @@ - - - - - - - - \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..df16fe6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,18 @@ +[submodule "stm32components"] + path = stm32components + url = zwsd@192.168.1.3:zsdk_stm32_v1/stm32components.git +[submodule "stm32basic"] + path = stm32basic + url = zwsd@192.168.1.3:zsdk_stm32_v1/stm32basic.git +[submodule "stm32halport"] + path = stm32halport + url = zwsd@192.168.1.3:zsdk_stm32_v1/stm32halport.git +[submodule "Middlewares"] + path = Middlewares + url = zwsd@192.168.1.3:zsdk_stm32_v1/Middlewares.git +[submodule "Drivers"] + path = Drivers + url = zwsd@192.168.1.3:zsdk_stm32_v1/Drivers.git +[submodule "Core"] + path = Core + url = zwsd@192.168.1.3:zsdk_stm32_v1/Core.git diff --git a/Core b/Core new file mode 160000 index 0000000..e6b8750 --- /dev/null +++ b/Core @@ -0,0 +1 @@ +Subproject commit e6b8750f142771f180e87203e8a8ab65ef4138b3 diff --git a/Drivers b/Drivers new file mode 160000 index 0000000..e71ddbc --- /dev/null +++ b/Drivers @@ -0,0 +1 @@ +Subproject commit e71ddbca4e7fc61b82b6b1f03f66b7cfbffb0495 diff --git a/LWIP/App/lwip.c b/LWIP/App/lwip.c deleted file mode 100644 index f5aa6e5..0000000 --- a/LWIP/App/lwip.c +++ /dev/null @@ -1,214 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * File Name : LWIP.c - * Description : This file provides initialization code for LWIP - * middleWare. - ****************************************************************************** - * @attention - * - * Copyright (c) 2024 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "lwip.h" -#include "lwip/init.h" -#include "lwip/netif.h" -#if defined ( __CC_ARM ) /* MDK ARM Compiler */ -#include "lwip/sio.h" -#endif /* MDK ARM Compiler */ -#include "ethernetif.h" - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ -/* Private function prototypes -----------------------------------------------*/ -static void ethernet_link_status_updated(struct netif *netif); -/* ETH Variables initialization ----------------------------------------------*/ -void Error_Handler(void); - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -/* Variables Initialization */ -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 */ - -/* USER CODE END 2 */ - -/** - * LwIP initialization function - */ -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 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, ðernetif_init, &tcpip_input); - - /* Registers the default network interface */ - netif_set_default(&gnetif); - - if (netif_is_link_up(&gnetif)) - { - /* When the netif is fully configured this function must be called */ - netif_set_up(&gnetif); - } - else - { - /* When the netif link is down this function must be called */ - netif_set_down(&gnetif); - } - - /* Set the link callback function, this function is called on change of link status*/ - netif_set_link_callback(&gnetif, ethernet_link_status_updated); - - /* Create the Ethernet link handler thread */ -/* USER CODE BEGIN H7_OS_THREAD_DEF_CREATE_CMSIS_RTOS_V1 */ - osThreadDef(EthLink, ethernet_link_thread, osPriorityBelowNormal, 0, configMINIMAL_STACK_SIZE *2); - osThreadCreate (osThread(EthLink), &gnetif); -/* USER CODE END H7_OS_THREAD_DEF_CREATE_CMSIS_RTOS_V1 */ - -/* USER CODE BEGIN 3 */ - -/* USER CODE END 3 */ -} - -#ifdef USE_OBSOLETE_USER_CODE_SECTION_4 -/* Kept to help code migration. (See new 4_1, 4_2... sections) */ -/* Avoid to use this user section which will become obsolete. */ -/* USER CODE BEGIN 4 */ -/* USER CODE END 4 */ -#endif - -/** - * @brief Notify the User about the network interface config status - * @param netif: the network interface - * @retval None - */ -static void ethernet_link_status_updated(struct netif *netif) -{ - if (netif_is_up(netif)) - { -/* USER CODE BEGIN 5 */ -/* USER CODE END 5 */ - } - else /* netif is down */ - { -/* USER CODE BEGIN 6 */ -/* USER CODE END 6 */ - } -} - -#if defined ( __CC_ARM ) /* MDK ARM Compiler */ -/** - * Opens a serial device for communication. - * - * @param devnum device number - * @return handle to serial device if successful, NULL otherwise - */ -sio_fd_t sio_open(u8_t devnum) -{ - sio_fd_t sd; - -/* USER CODE BEGIN 7 */ - sd = 0; // dummy code -/* USER CODE END 7 */ - - return sd; -} - -/** - * Sends a single character to the serial device. - * - * @param c character to send - * @param fd serial device handle - * - * @note This function will block until the character can be sent. - */ -void sio_send(u8_t c, sio_fd_t fd) -{ -/* USER CODE BEGIN 8 */ -/* USER CODE END 8 */ -} - -/** - * Reads from the serial device. - * - * @param fd serial device handle - * @param data pointer to data buffer for receiving - * @param len maximum length (in bytes) of data to receive - * @return number of bytes actually received - may be 0 if aborted by sio_read_abort - * - * @note This function will block until data can be received. The blocking - * can be cancelled by calling sio_read_abort(). - */ -u32_t sio_read(sio_fd_t fd, u8_t *data, u32_t len) -{ - u32_t recved_bytes; - -/* USER CODE BEGIN 9 */ - recved_bytes = 0; // dummy code -/* USER CODE END 9 */ - return recved_bytes; -} - -/** - * Tries to read from the serial device. Same as sio_read but returns - * immediately if no data is available and never blocks. - * - * @param fd serial device handle - * @param data pointer to data buffer for receiving - * @param len maximum length (in bytes) of data to receive - * @return number of bytes actually received - */ -u32_t sio_tryread(sio_fd_t fd, u8_t *data, u32_t len) -{ - u32_t recved_bytes; - -/* USER CODE BEGIN 10 */ - recved_bytes = 0; // dummy code -/* USER CODE END 10 */ - return recved_bytes; -} -#endif /* MDK ARM Compiler */ - diff --git a/LWIP/App/lwip.h b/LWIP/App/lwip.h deleted file mode 100644 index b14adc0..0000000 --- a/LWIP/App/lwip.h +++ /dev/null @@ -1,76 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * File Name : LWIP.h - * Description : This file provides code for the configuration - * of the LWIP. - ****************************************************************************** - * @attention - * - * Copyright (c) 2024 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ************************************************************************* - - */ -/* USER CODE END Header */ -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __mx_lwip_H -#define __mx_lwip_H -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include "lwip/opt.h" -#include "lwip/mem.h" -#include "lwip/memp.h" -#include "netif/etharp.h" -#include "lwip/dhcp.h" -#include "lwip/netif.h" -#include "lwip/timeouts.h" -#include "ethernetif.h" - -/* Includes for RTOS ---------------------------------------------------------*/ -#if WITH_RTOS -#include "lwip/tcpip.h" -#endif /* WITH_RTOS */ - -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/* Global Variables ----------------------------------------------------------*/ -extern ETH_HandleTypeDef heth; - -/* LWIP init function */ -void MX_LWIP_Init(void); - -#if !WITH_RTOS -/* USER CODE BEGIN 1 */ -/* Function defined in lwip.c to: - * - Read a received packet from the Ethernet buffers - * - Send it to the lwIP stack for handling - * - Handle timeouts if NO_SYS_NO_TIMERS not set - */ -void MX_LWIP_Process(void); - -/* USER CODE END 1 */ -#endif /* WITH_RTOS */ - -#ifdef __cplusplus -} -#endif -#endif /*__ mx_lwip_H */ - -/** - * @} - */ - -/** - * @} - */ diff --git a/LWIP/Target/ethernetif.c b/LWIP/Target/ethernetif.c deleted file mode 100644 index f9a2c5f..0000000 --- a/LWIP/Target/ethernetif.c +++ /dev/null @@ -1,897 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * File Name : ethernetif.c - * Description : This file provides code for the configuration - * of the ethernetif.c MiddleWare. - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" -#include "lwip/opt.h" -#include "lwip/timeouts.h" -#include "netif/ethernet.h" -#include "netif/etharp.h" -#include "lwip/ethip6.h" -#include "ethernetif.h" -#include "lan8742.h" -#include -#include "cmsis_os.h" -#include "lwip/tcpip.h" - -/* Within 'USER CODE' section, code will be kept by default at each generation */ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/* Private define ------------------------------------------------------------*/ -/* The time to block waiting for input. */ -#define TIME_WAITING_FOR_INPUT ( portMAX_DELAY ) -/* USER CODE BEGIN OS_THREAD_STACK_SIZE_WITH_RTOS */ -/* Stack size of the interface thread */ -#define INTERFACE_THREAD_STACK_SIZE ( 350 ) -/* USER CODE END OS_THREAD_STACK_SIZE_WITH_RTOS */ -/* Network interface name */ -#define IFNAME0 's' -#define IFNAME1 't' - -/* ETH Setting */ -#define ETH_DMA_TRANSMIT_TIMEOUT ( 20U ) -#define ETH_TX_BUFFER_MAX ((ETH_TX_DESC_CNT) * 2U) - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -/* Private variables ---------------------------------------------------------*/ -/* -@Note: This interface is implemented to operate in zero-copy mode only: - - Rx buffers will be allocated from LwIP stack memory heap, - then passed to ETH HAL driver. - - Tx buffers will be allocated from LwIP stack memory heap, - then passed to ETH HAL driver. - -@Notes: - 1.a. ETH DMA Rx descriptors must be contiguous, the default count is 4, - to customize it please redefine ETH_RX_DESC_CNT in ETH GUI (Rx Descriptor Length) - so that updated value will be generated in stm32xxxx_hal_conf.h - 1.b. ETH DMA Tx descriptors must be contiguous, the default count is 4, - to customize it please redefine ETH_TX_DESC_CNT in ETH GUI (Tx Descriptor Length) - so that updated value will be generated in stm32xxxx_hal_conf.h - - 2.a. Rx Buffers number must be between ETH_RX_DESC_CNT and 2*ETH_RX_DESC_CNT - 2.b. Rx Buffers must have the same size: ETH_RX_BUF_SIZE, this value must - passed to ETH DMA in the init field (heth.Init.RxBuffLen) - 2.c The RX Ruffers addresses and sizes must be properly defined to be aligned - to L1-CACHE line size (32 bytes). -*/ - -/* Data Type Definitions */ -typedef enum -{ - RX_ALLOC_OK = 0x00, - RX_ALLOC_ERROR = 0x01 -} RxAllocStatusTypeDef; - -typedef struct -{ - struct pbuf_custom pbuf_custom; - uint8_t buff[(ETH_RX_BUF_SIZE + 31) & ~31] __ALIGNED(32); -} RxBuff_t; - -/* Memory Pool Declaration */ -#define ETH_RX_BUFFER_CNT 12U -LWIP_MEMPOOL_DECLARE(RX_POOL, ETH_RX_BUFFER_CNT, sizeof(RxBuff_t), "Zero-copy RX PBUF pool"); - -/* Variable Definitions */ -static uint8_t RxAllocStatus; - -ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT]; /* Ethernet Rx DMA Descriptors */ -ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT]; /* Ethernet Tx DMA Descriptors */ - -/* USER CODE BEGIN 2 */ - -/* USER CODE END 2 */ - -osSemaphoreId RxPktSemaphore = NULL; /* Semaphore to signal incoming packets */ -osSemaphoreId TxPktSemaphore = NULL; /* Semaphore to signal transmit packet complete */ - -/* Global Ethernet handle */ -ETH_HandleTypeDef heth; -ETH_TxPacketConfig TxConfig; - -/* Private function prototypes -----------------------------------------------*/ -static void ethernetif_input(void const * argument); -int32_t ETH_PHY_IO_Init(void); -int32_t ETH_PHY_IO_DeInit (void); -int32_t ETH_PHY_IO_ReadReg(uint32_t DevAddr, uint32_t RegAddr, uint32_t *pRegVal); -int32_t ETH_PHY_IO_WriteReg(uint32_t DevAddr, uint32_t RegAddr, uint32_t RegVal); -int32_t ETH_PHY_IO_GetTick(void); - -lan8742_Object_t LAN8742; -lan8742_IOCtx_t LAN8742_IOCtx = {ETH_PHY_IO_Init, - ETH_PHY_IO_DeInit, - ETH_PHY_IO_WriteReg, - ETH_PHY_IO_ReadReg, - ETH_PHY_IO_GetTick}; - -/* USER CODE BEGIN 3 */ - -/* USER CODE END 3 */ - -/* Private functions ---------------------------------------------------------*/ -void pbuf_free_custom(struct pbuf *p); - -/** - * @brief Ethernet Rx Transfer completed callback - * @param handlerEth: ETH handler - * @retval None - */ -void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *handlerEth) -{ - osSemaphoreRelease(RxPktSemaphore); -} -/** - * @brief Ethernet Tx Transfer completed callback - * @param handlerEth: ETH handler - * @retval None - */ -void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *handlerEth) -{ - osSemaphoreRelease(TxPktSemaphore); -} -/** - * @brief Ethernet DMA transfer error callback - * @param handlerEth: ETH handler - * @retval None - */ -void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *handlerEth) -{ - if((HAL_ETH_GetDMAError(handlerEth) & ETH_DMASR_RBUS) == ETH_DMASR_RBUS) - { - osSemaphoreRelease(RxPktSemaphore); - } -} - -/* USER CODE BEGIN 4 */ -// add by zhaohe -extern uint8_t g_mac[]; - -/* USER CODE END 4 */ - -/******************************************************************************* - LL Driver Interface ( LwIP stack --> ETH) -*******************************************************************************/ -/** - * @brief In this function, the hardware should be initialized. - * Called from ethernetif_init(). - * - * @param netif the already initialized lwip network interface structure - * for this ethernetif - */ -static void low_level_init(struct netif *netif) -{ - HAL_StatusTypeDef hal_eth_init_status = HAL_OK; - uint32_t duplex, speed = 0; - int32_t PHYLinkState = 0; - ETH_MACConfigTypeDef MACConf = {0}; - /* Start ETH HAL Init */ - - uint8_t MACAddr[6] ; - heth.Instance = ETH; - MACAddr[0] = 0x00; - MACAddr[1] = 0x80; - MACAddr[2] = 0xE1; - MACAddr[3] = 0x00; - MACAddr[4] = 0x00; - MACAddr[5] = 0x01; - heth.Init.MACAddr = &MACAddr[0]; - heth.Init.MediaInterface = HAL_ETH_RMII_MODE; - heth.Init.TxDesc = DMATxDscrTab; - heth.Init.RxDesc = DMARxDscrTab; - heth.Init.RxBuffLen = 1536; - - /* USER CODE BEGIN MACADDRESS */ - // add by zhaohe - MACAddr[0] = g_mac[0]; - MACAddr[1] = g_mac[1]; - MACAddr[2] = g_mac[2]; - MACAddr[3] = g_mac[3]; - MACAddr[4] = g_mac[4]; - MACAddr[5] = g_mac[5]; - /* USER CODE END MACADDRESS */ - - hal_eth_init_status = HAL_ETH_Init(&heth); - - memset(&TxConfig, 0 , sizeof(ETH_TxPacketConfig)); - TxConfig.Attributes = ETH_TX_PACKETS_FEATURES_CSUM | ETH_TX_PACKETS_FEATURES_CRCPAD; - TxConfig.ChecksumCtrl = ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC; - TxConfig.CRCPadCtrl = ETH_CRC_PAD_INSERT; - - /* End ETH HAL Init */ - - /* Initialize the RX POOL */ - LWIP_MEMPOOL_INIT(RX_POOL); - -#if LWIP_ARP || LWIP_ETHERNET - - /* set MAC hardware address length */ - netif->hwaddr_len = ETH_HWADDR_LEN; - - /* set MAC hardware address */ - netif->hwaddr[0] = heth.Init.MACAddr[0]; - netif->hwaddr[1] = heth.Init.MACAddr[1]; - netif->hwaddr[2] = heth.Init.MACAddr[2]; - netif->hwaddr[3] = heth.Init.MACAddr[3]; - netif->hwaddr[4] = heth.Init.MACAddr[4]; - netif->hwaddr[5] = heth.Init.MACAddr[5]; - - /* maximum transfer unit */ - netif->mtu = ETH_MAX_PAYLOAD; - - /* Accept broadcast address and ARP traffic */ - /* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */ - #if LWIP_ARP - netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP; - #else - netif->flags |= NETIF_FLAG_BROADCAST; - #endif /* LWIP_ARP */ - - /* create a binary semaphore used for informing ethernetif of frame reception */ - RxPktSemaphore = xSemaphoreCreateBinary(); - - /* create a binary semaphore used for informing ethernetif of frame transmission */ - TxPktSemaphore = xSemaphoreCreateBinary(); - - /* create the task that handles the ETH_MAC */ -/* USER CODE BEGIN OS_THREAD_DEF_CREATE_CMSIS_RTOS_V1 */ - osThreadDef(EthIf, ethernetif_input, osPriorityRealtime, 0, INTERFACE_THREAD_STACK_SIZE); - osThreadCreate (osThread(EthIf), 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); - - /* Initialize the LAN8742 ETH PHY */ - LAN8742_Init(&LAN8742); - - if (hal_eth_init_status == HAL_OK) - { - PHYLinkState = LAN8742_GetLinkState(&LAN8742); - - /* Get link state */ - if(PHYLinkState <= LAN8742_STATUS_LINK_DOWN) - { - netif_set_link_down(netif); - netif_set_down(netif); - } - else - { - switch (PHYLinkState) - { - case LAN8742_STATUS_100MBITS_FULLDUPLEX: - duplex = ETH_FULLDUPLEX_MODE; - speed = ETH_SPEED_100M; - break; - case LAN8742_STATUS_100MBITS_HALFDUPLEX: - duplex = ETH_HALFDUPLEX_MODE; - speed = ETH_SPEED_100M; - break; - case LAN8742_STATUS_10MBITS_FULLDUPLEX: - duplex = ETH_FULLDUPLEX_MODE; - speed = ETH_SPEED_10M; - break; - case LAN8742_STATUS_10MBITS_HALFDUPLEX: - duplex = ETH_HALFDUPLEX_MODE; - speed = ETH_SPEED_10M; - break; - default: - duplex = ETH_FULLDUPLEX_MODE; - speed = ETH_SPEED_100M; - break; - } - - /* Get MAC Config MAC */ - HAL_ETH_GetMACConfig(&heth, &MACConf); - MACConf.DuplexMode = duplex; - MACConf.Speed = speed; - HAL_ETH_SetMACConfig(&heth, &MACConf); - - HAL_ETH_Start_IT(&heth); - netif_set_up(netif); - netif_set_link_up(netif); - -/* USER CODE BEGIN PHY_POST_CONFIG */ - -/* USER CODE END PHY_POST_CONFIG */ - } - - } - else - { - Error_Handler(); - } -#endif /* LWIP_ARP || LWIP_ETHERNET */ - -/* USER CODE BEGIN LOW_LEVEL_INIT */ - -/* USER CODE END LOW_LEVEL_INIT */ -} - -/** - * @brief This function should do the actual transmission of the packet. The packet is - * contained in the pbuf that is passed to the function. This pbuf - * might be chained. - * - * @param netif the lwip network interface structure for this ethernetif - * @param p the MAC packet to send (e.g. IP packet including MAC addresses and type) - * @return ERR_OK if the packet could be sent - * an err_t value if the packet couldn't be sent - * - * @note Returning ERR_MEM here if a DMA queue of your MAC is full can lead to - * strange results. You might consider waiting for space in the DMA queue - * to become available since the stack doesn't retry to send a packet - * dropped because of memory failure (except for the TCP timers). - */ - -static err_t low_level_output(struct netif *netif, struct pbuf *p) -{ - uint32_t i = 0U; - struct pbuf *q = NULL; - err_t errval = ERR_OK; - ETH_BufferTypeDef Txbuffer[ETH_TX_DESC_CNT] = {0}; - - memset(Txbuffer, 0 , ETH_TX_DESC_CNT*sizeof(ETH_BufferTypeDef)); - - for(q = p; q != NULL; q = q->next) - { - if(i >= ETH_TX_DESC_CNT) - return ERR_IF; - - Txbuffer[i].buffer = q->payload; - Txbuffer[i].len = q->len; - - if(i>0) - { - Txbuffer[i-1].next = &Txbuffer[i]; - } - - if(q->next == NULL) - { - Txbuffer[i].next = NULL; - } - - i++; - } - - TxConfig.Length = p->tot_len; - TxConfig.TxBuffer = Txbuffer; - TxConfig.pData = p; - - pbuf_ref(p); - - HAL_ETH_Transmit_IT(&heth, &TxConfig); - while(osSemaphoreWait(TxPktSemaphore, TIME_WAITING_FOR_INPUT)!=osOK) - - { - } - - HAL_ETH_ReleaseTxPacket(&heth); - - return errval; -} - -/** - * @brief Should allocate a pbuf and transfer the bytes of the incoming - * packet from the interface into the pbuf. - * - * @param netif the lwip network interface structure for this ethernetif - * @return a pbuf filled with the received packet (including MAC header) - * NULL on memory error - */ -static struct pbuf * low_level_input(struct netif *netif) -{ - struct pbuf *p = NULL; - - if(RxAllocStatus == RX_ALLOC_OK) - { - HAL_ETH_ReadData(&heth, (void **)&p); - } - - return p; -} - -/** - * @brief This function should be called when a packet is ready to be read - * from the interface. It uses the function low_level_input() that - * should handle the actual reception of bytes from the network - * interface. Then the type of the received packet is determined and - * the appropriate input function is called. - * - * @param netif the lwip network interface structure for this ethernetif - */ -static void ethernetif_input(void const * argument) -{ - struct pbuf *p = NULL; - struct netif *netif = (struct netif *) argument; - - for( ;; ) - { - if (osSemaphoreWait(RxPktSemaphore, TIME_WAITING_FOR_INPUT) == osOK) - { - do - { - p = low_level_input( netif ); - if (p != NULL) - { - if (netif->input( p, netif) != ERR_OK ) - { - pbuf_free(p); - } - } - } while(p!=NULL); - } - } -} - -#if !LWIP_ARP -/** - * This function has to be completed by user in case of ARP OFF. - * - * @param netif the lwip network interface structure for this ethernetif - * @return ERR_OK if ... - */ -static err_t low_level_output_arp_off(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr) -{ - err_t errval; - errval = ERR_OK; - -/* USER CODE BEGIN 5 */ - -/* USER CODE END 5 */ - - return errval; - -} -#endif /* LWIP_ARP */ - -/** - * @brief Should be called at the beginning of the program to set up the - * network interface. It calls the function low_level_init() to do the - * actual setup of the hardware. - * - * This function should be passed as a parameter to netif_add(). - * - * @param netif the lwip network interface structure for this ethernetif - * @return ERR_OK if the loopif is initialized - * ERR_MEM if private data couldn't be allocated - * any other err_t on error - */ -err_t ethernetif_init(struct netif *netif) -{ - LWIP_ASSERT("netif != NULL", (netif != NULL)); - -#if LWIP_NETIF_HOSTNAME - /* Initialize interface hostname */ - netif->hostname = "lwip"; -#endif /* LWIP_NETIF_HOSTNAME */ - - /* - * Initialize the snmp variables and counters inside the struct netif. - * The last argument should be replaced with your link speed, in units - * of bits per second. - */ - // MIB2_INIT_NETIF(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS); - - netif->name[0] = IFNAME0; - netif->name[1] = IFNAME1; - /* We directly use etharp_output() here to save a function call. - * You can instead declare your own function an call etharp_output() - * from it if you have to do some checks before sending (e.g. if link - * is available...) */ - -#if LWIP_IPV4 -#if LWIP_ARP || LWIP_ETHERNET -#if LWIP_ARP - netif->output = etharp_output; -#else - /* The user should write its own code in low_level_output_arp_off function */ - netif->output = low_level_output_arp_off; -#endif /* LWIP_ARP */ -#endif /* LWIP_ARP || LWIP_ETHERNET */ -#endif /* LWIP_IPV4 */ - -#if LWIP_IPV6 - netif->output_ip6 = ethip6_output; -#endif /* LWIP_IPV6 */ - - netif->linkoutput = low_level_output; - - /* initialize the hardware */ - low_level_init(netif); - - return ERR_OK; -} - -/** - * @brief Custom Rx pbuf free callback - * @param pbuf: pbuf to be freed - * @retval None - */ -void pbuf_free_custom(struct pbuf *p) -{ - struct pbuf_custom* custom_pbuf = (struct pbuf_custom*)p; - LWIP_MEMPOOL_FREE(RX_POOL, custom_pbuf); - - /* If the Rx Buffer Pool was exhausted, signal the ethernetif_input task to - * call HAL_ETH_GetRxDataBuffer to rebuild the Rx descriptors. */ - - if (RxAllocStatus == RX_ALLOC_ERROR) - { - RxAllocStatus = RX_ALLOC_OK; - osSemaphoreRelease(RxPktSemaphore); - } -} - -/* USER CODE BEGIN 6 */ - -/** -* @brief Returns the current time in milliseconds -* when LWIP_TIMERS == 1 and NO_SYS == 1 -* @param None -* @retval Time -*/ -u32_t sys_now(void) -{ - return HAL_GetTick(); -} - -/* USER CODE END 6 */ - -/** - * @brief Initializes the ETH MSP. - * @param ethHandle: ETH handle - * @retval None - */ - -void HAL_ETH_MspInit(ETH_HandleTypeDef* ethHandle) -{ - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if(ethHandle->Instance==ETH) - { - /* USER CODE BEGIN ETH_MspInit 0 */ - - /* USER CODE END ETH_MspInit 0 */ - /* Enable Peripheral clock */ - __HAL_RCC_ETH_CLK_ENABLE(); - - __HAL_RCC_GPIOC_CLK_ENABLE(); - __HAL_RCC_GPIOA_CLK_ENABLE(); - __HAL_RCC_GPIOB_CLK_ENABLE(); - /**ETH GPIO Configuration - PC1 ------> ETH_MDC - PA1 ------> ETH_REF_CLK - PA2 ------> ETH_MDIO - PA7 ------> ETH_CRS_DV - PC4 ------> ETH_RXD0 - PC5 ------> ETH_RXD1 - PB11 ------> ETH_TX_EN - PB12 ------> ETH_TXD0 - PB13 ------> ETH_TXD1 - */ - GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF11_ETH; - HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF11_ETH; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF11_ETH; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - - /* Peripheral interrupt init */ - 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 */ - } -} - -void HAL_ETH_MspDeInit(ETH_HandleTypeDef* ethHandle) -{ - if(ethHandle->Instance==ETH) - { - /* USER CODE BEGIN ETH_MspDeInit 0 */ - - /* USER CODE END ETH_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_ETH_CLK_DISABLE(); - - /**ETH GPIO Configuration - PC1 ------> ETH_MDC - PA1 ------> ETH_REF_CLK - PA2 ------> ETH_MDIO - PA7 ------> ETH_CRS_DV - PC4 ------> ETH_RXD0 - PC5 ------> ETH_RXD1 - PB11 ------> ETH_TX_EN - PB12 ------> ETH_TXD0 - PB13 ------> ETH_TXD1 - */ - HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5); - - HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_7); - - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13); - - /* Peripheral interrupt Deinit*/ - HAL_NVIC_DisableIRQ(ETH_IRQn); - - /* USER CODE BEGIN ETH_MspDeInit 1 */ - - /* USER CODE END ETH_MspDeInit 1 */ - } -} - -/******************************************************************************* - PHI IO Functions -*******************************************************************************/ -/** - * @brief Initializes the MDIO interface GPIO and clocks. - * @param None - * @retval 0 if OK, -1 if ERROR - */ -int32_t ETH_PHY_IO_Init(void) -{ - /* We assume that MDIO GPIO configuration is already done - in the ETH_MspInit() else it should be done here - */ - - /* Configure the MDIO Clock */ - HAL_ETH_SetMDIOClockRange(&heth); - - return 0; -} - -/** - * @brief De-Initializes the MDIO interface . - * @param None - * @retval 0 if OK, -1 if ERROR - */ -int32_t ETH_PHY_IO_DeInit (void) -{ - return 0; -} - -/** - * @brief Read a PHY register through the MDIO interface. - * @param DevAddr: PHY port address - * @param RegAddr: PHY register address - * @param pRegVal: pointer to hold the register value - * @retval 0 if OK -1 if Error - */ -int32_t ETH_PHY_IO_ReadReg(uint32_t DevAddr, uint32_t RegAddr, uint32_t *pRegVal) -{ - if(HAL_ETH_ReadPHYRegister(&heth, DevAddr, RegAddr, pRegVal) != HAL_OK) - { - return -1; - } - - return 0; -} - -/** - * @brief Write a value to a PHY register through the MDIO interface. - * @param DevAddr: PHY port address - * @param RegAddr: PHY register address - * @param RegVal: Value to be written - * @retval 0 if OK -1 if Error - */ -int32_t ETH_PHY_IO_WriteReg(uint32_t DevAddr, uint32_t RegAddr, uint32_t RegVal) -{ - if(HAL_ETH_WritePHYRegister(&heth, DevAddr, RegAddr, RegVal) != HAL_OK) - { - return -1; - } - - return 0; -} - -/** - * @brief Get the time in millisecons used for internal PHY driver process. - * @retval Time value - */ -int32_t ETH_PHY_IO_GetTick(void) -{ - return HAL_GetTick(); -} - -/** - * @brief Check the ETH link state then update ETH driver and netif link accordingly. - * @retval None - */ - -void ethernet_link_thread(void const * argument) -{ - ETH_MACConfigTypeDef MACConf = {0}; - int32_t PHYLinkState = 0; - uint32_t linkchanged = 0U, speed = 0U, duplex = 0U; - - struct netif *netif = (struct netif *) argument; -/* USER CODE BEGIN ETH link init */ - netif->link_callback(netif); -/* USER CODE END ETH link init */ - - for(;;) - { - PHYLinkState = LAN8742_GetLinkState(&LAN8742); - - if(netif_is_link_up(netif) && (PHYLinkState <= LAN8742_STATUS_LINK_DOWN)) - { - HAL_ETH_Stop_IT(&heth); - netif_set_down(netif); - netif_set_link_down(netif); - } - else if(!netif_is_link_up(netif) && (PHYLinkState > LAN8742_STATUS_LINK_DOWN)) - { - switch (PHYLinkState) - { - case LAN8742_STATUS_100MBITS_FULLDUPLEX: - duplex = ETH_FULLDUPLEX_MODE; - speed = ETH_SPEED_100M; - linkchanged = 1; - break; - case LAN8742_STATUS_100MBITS_HALFDUPLEX: - duplex = ETH_HALFDUPLEX_MODE; - speed = ETH_SPEED_100M; - linkchanged = 1; - break; - case LAN8742_STATUS_10MBITS_FULLDUPLEX: - duplex = ETH_FULLDUPLEX_MODE; - speed = ETH_SPEED_10M; - linkchanged = 1; - break; - case LAN8742_STATUS_10MBITS_HALFDUPLEX: - duplex = ETH_HALFDUPLEX_MODE; - speed = ETH_SPEED_10M; - linkchanged = 1; - break; - default: - break; - } - - if(linkchanged) - { - /* Get MAC Config MAC */ - HAL_ETH_GetMACConfig(&heth, &MACConf); - MACConf.DuplexMode = duplex; - MACConf.Speed = speed; - HAL_ETH_SetMACConfig(&heth, &MACConf); - HAL_ETH_Start_IT(&heth); - netif_set_up(netif); - netif_set_link_up(netif); - } - } - -/* USER CODE BEGIN ETH link Thread core code for User BSP */ - -/* USER CODE END ETH link Thread core code for User BSP */ - - osDelay(100); - } -} - -void HAL_ETH_RxAllocateCallback(uint8_t **buff) -{ -/* USER CODE BEGIN HAL ETH RxAllocateCallback */ - struct pbuf_custom *p = LWIP_MEMPOOL_ALLOC(RX_POOL); - if (p) - { - /* Get the buff from the struct pbuf address. */ - *buff = (uint8_t *)p + offsetof(RxBuff_t, buff); - p->custom_free_function = pbuf_free_custom; - /* Initialize the struct pbuf. - * This must be performed whenever a buffer's allocated because it may be - * changed by lwIP or the app, e.g., pbuf_free decrements ref. */ - pbuf_alloced_custom(PBUF_RAW, 0, PBUF_REF, p, *buff, ETH_RX_BUF_SIZE); - } - else - { - RxAllocStatus = RX_ALLOC_ERROR; - *buff = NULL; - } -/* USER CODE END HAL ETH RxAllocateCallback */ -} - -void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length) -{ -/* USER CODE BEGIN HAL ETH RxLinkCallback */ - - struct pbuf **ppStart = (struct pbuf **)pStart; - struct pbuf **ppEnd = (struct pbuf **)pEnd; - struct pbuf *p = NULL; - - /* Get the struct pbuf from the buff address. */ - p = (struct pbuf *)(buff - offsetof(RxBuff_t, buff)); - p->next = NULL; - p->tot_len = 0; - p->len = Length; - - /* Chain the buffer. */ - if (!*ppStart) - { - /* The first buffer of the packet. */ - *ppStart = p; - } - else - { - /* Chain the buffer to the end of the packet. */ - (*ppEnd)->next = p; - } - *ppEnd = p; - - /* Update the total length of all the buffers of the chain. Each pbuf in the chain should have its tot_len - * set to its own length, plus the length of all the following pbufs in the chain. */ - for (p = *ppStart; p != NULL; p = p->next) - { - p->tot_len += Length; - } - -/* USER CODE END HAL ETH RxLinkCallback */ -} - -void HAL_ETH_TxFreeCallback(uint32_t * buff) -{ -/* USER CODE BEGIN HAL ETH TxFreeCallback */ - - pbuf_free((struct pbuf *)buff); - -/* USER CODE END HAL ETH TxFreeCallback */ -} - -/* 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 */ - diff --git a/LWIP/Target/ethernetif.h b/LWIP/Target/ethernetif.h deleted file mode 100644 index cc2aff0..0000000 --- a/LWIP/Target/ethernetif.h +++ /dev/null @@ -1,45 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * File Name : ethernetif.h - * Description : This file provides initialization code for LWIP - * middleWare. - ****************************************************************************** - * @attention - * - * Copyright (c) 2024 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -#ifndef __ETHERNETIF_H__ -#define __ETHERNETIF_H__ - -#include "lwip/err.h" -#include "lwip/netif.h" -#include "cmsis_os.h" - -/* Within 'USER CODE' section, code will be kept by default at each generation */ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/* Exported functions ------------------------------------------------------- */ -err_t ethernetif_init(struct netif *netif); - -void ethernet_link_thread(void const * argument); - -void Error_Handler(void); -u32_t sys_jiffies(void); -u32_t sys_now(void); - -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ -#endif diff --git a/LWIP/Target/lwipopts.h b/LWIP/Target/lwipopts.h deleted file mode 100644 index 6f49472..0000000 --- a/LWIP/Target/lwipopts.h +++ /dev/null @@ -1,128 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * File Name : lwipopts.h - * Description : This file overrides LwIP stack default configuration - * done in opt.h file. - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Define to prevent recursive inclusion --------------------------------------*/ -#ifndef __LWIPOPTS__H__ -#define __LWIPOPTS__H__ - -#include "main.h" - -/*-----------------------------------------------------------------------------*/ -/* Current version of LwIP supported by CubeMx: 2.1.2 -*/ -/*-----------------------------------------------------------------------------*/ - -/* Within 'USER CODE' section, code will be kept by default at each generation */ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -#ifdef __cplusplus - extern "C" { -#endif - -/* STM32CubeMX Specific Parameters (not defined in opt.h) ---------------------*/ -/* Parameters set in STM32CubeMX LwIP Configuration GUI -*/ -/*----- WITH_RTOS enabled (Since FREERTOS is set) -----*/ -#define WITH_RTOS 1 -/* Temporary workaround to avoid conflict on errno defined in STM32CubeIDE and lwip sys_arch.c errno */ -#undef LWIP_PROVIDE_ERRNO -/*----- CHECKSUM_BY_HARDWARE enabled -----*/ -#define CHECKSUM_BY_HARDWARE 1 -/*-----------------------------------------------------------------------------*/ - -/* LwIP Stack Parameters (modified compared to initialization value in opt.h) -*/ -/* Parameters set in STM32CubeMX LwIP Configuration GUI -*/ -/*----- Default Value for LWIP_DNS: 0 ---*/ -#define LWIP_DNS 1 -/*----- Value in opt.h for MEM_ALIGNMENT: 1 -----*/ -#define MEM_ALIGNMENT 4 -/*----- 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) -*/ -#define LWIP_DNS_SECURE 7 -/*----- Value in opt.h for TCP_SND_QUEUELEN: (4*TCP_SND_BUF + (TCP_MSS - 1))/TCP_MSS -----*/ -#define TCP_SND_QUEUELEN 9 -/*----- Value in opt.h for TCP_SNDLOWAT: LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1) -*/ -#define TCP_SNDLOWAT 1071 -/*----- Value in opt.h for TCP_SNDQUEUELOWAT: LWIP_MAX(TCP_SND_QUEUELEN)/2, 5) -*/ -#define TCP_SNDQUEUELOWAT 5 -/*----- Value in opt.h for TCP_WND_UPDATE_THRESHOLD: LWIP_MIN(TCP_WND/4, TCP_MSS*4) -----*/ -#define TCP_WND_UPDATE_THRESHOLD 536 -/*----- Default Value for LWIP_NETIF_HOSTNAME: 0 ---*/ -#define LWIP_NETIF_HOSTNAME 1 -/*----- Value in opt.h for LWIP_NETIF_LINK_CALLBACK: 0 -----*/ -#define LWIP_NETIF_LINK_CALLBACK 1 -/*----- Value in opt.h for TCPIP_THREAD_STACKSIZE: 0 -----*/ -#define TCPIP_THREAD_STACKSIZE 1024 -/*----- Value in opt.h for TCPIP_THREAD_PRIO: 1 -----*/ -#define TCPIP_THREAD_PRIO osPriorityNormal -/*----- Value in opt.h for TCPIP_MBOX_SIZE: 0 -----*/ -#define TCPIP_MBOX_SIZE 6 -/*----- Value in opt.h for SLIPIF_THREAD_STACKSIZE: 0 -----*/ -#define SLIPIF_THREAD_STACKSIZE 1024 -/*----- Value in opt.h for SLIPIF_THREAD_PRIO: 1 -----*/ -#define SLIPIF_THREAD_PRIO 3 -/*----- Value in opt.h for DEFAULT_THREAD_STACKSIZE: 0 -----*/ -#define DEFAULT_THREAD_STACKSIZE 1024 -/*----- Value in opt.h for DEFAULT_THREAD_PRIO: 1 -----*/ -#define DEFAULT_THREAD_PRIO 3 -/*----- Value in opt.h for DEFAULT_UDP_RECVMBOX_SIZE: 0 -----*/ -#define DEFAULT_UDP_RECVMBOX_SIZE 6 -/*----- Value in opt.h for DEFAULT_TCP_RECVMBOX_SIZE: 0 -----*/ -#define DEFAULT_TCP_RECVMBOX_SIZE 6 -/*----- Value in opt.h for DEFAULT_ACCEPTMBOX_SIZE: 0 -----*/ -#define DEFAULT_ACCEPTMBOX_SIZE 6 -/*----- Default Value for LWIP_SO_SNDTIMEO: 0 ---*/ -#define LWIP_SO_SNDTIMEO 1 -/*----- Default Value for LWIP_SO_RCVTIMEO: 0 ---*/ -#define LWIP_SO_RCVTIMEO 1 -/*----- Value in opt.h for RECV_BUFSIZE_DEFAULT: INT_MAX -----*/ -#define RECV_BUFSIZE_DEFAULT 2000000000 -/*----- Value in opt.h for LWIP_STATS: 1 -----*/ -#define LWIP_STATS 0 -/*----- Value in opt.h for CHECKSUM_GEN_IP: 1 -----*/ -#define CHECKSUM_GEN_IP 0 -/*----- Value in opt.h for CHECKSUM_GEN_UDP: 1 -----*/ -#define CHECKSUM_GEN_UDP 0 -/*----- Value in opt.h for CHECKSUM_GEN_TCP: 1 -----*/ -#define CHECKSUM_GEN_TCP 0 -/*----- Value in opt.h for CHECKSUM_GEN_ICMP: 1 -----*/ -#define CHECKSUM_GEN_ICMP 0 -/*----- Value in opt.h for CHECKSUM_GEN_ICMP6: 1 -----*/ -#define CHECKSUM_GEN_ICMP6 0 -/*----- Value in opt.h for CHECKSUM_CHECK_IP: 1 -----*/ -#define CHECKSUM_CHECK_IP 0 -/*----- Value in opt.h for CHECKSUM_CHECK_UDP: 1 -----*/ -#define CHECKSUM_CHECK_UDP 0 -/*----- Value in opt.h for CHECKSUM_CHECK_TCP: 1 -----*/ -#define CHECKSUM_CHECK_TCP 0 -/*----- Value in opt.h for CHECKSUM_CHECK_ICMP: 1 -----*/ -#define CHECKSUM_CHECK_ICMP 0 -/*----- Value in opt.h for CHECKSUM_CHECK_ICMP6: 1 -----*/ -#define CHECKSUM_CHECK_ICMP6 0 -/*-----------------------------------------------------------------------------*/ -/* USER CODE BEGIN 1 */ - -/* USER CODE END 1 */ - -#ifdef __cplusplus -} -#endif -#endif /*__LWIPOPTS__H__ */ diff --git a/Middlewares b/Middlewares new file mode 160000 index 0000000..5047b05 --- /dev/null +++ b/Middlewares @@ -0,0 +1 @@ +Subproject commit 5047b0506d61e226ae953e58e47293d466a509be diff --git a/stm32basic b/stm32basic new file mode 160000 index 0000000..049e643 --- /dev/null +++ b/stm32basic @@ -0,0 +1 @@ +Subproject commit 049e643b139652247636ddb1564345bb299b1aab diff --git a/stm32components b/stm32components new file mode 160000 index 0000000..bcca882 --- /dev/null +++ b/stm32components @@ -0,0 +1 @@ +Subproject commit bcca882e2f1f8688716246e4d376230dbc4de28f diff --git a/stm32halport b/stm32halport new file mode 160000 index 0000000..6c550d6 --- /dev/null +++ b/stm32halport @@ -0,0 +1 @@ +Subproject commit 6c550d69902d048e8fdd782d11e3feba7120b740 diff --git a/usrc/app_main.cpp b/usrc/app_main.cpp index 7add538..bd032f5 100644 --- a/usrc/app_main.cpp +++ b/usrc/app_main.cpp @@ -12,8 +12,8 @@ #include "base/protocol_processer_mgr.hpp" #include "protocol_processer_impl/public_cmd_processer.hpp" // -#include "zsdk/zcanreceiver/zcanreceiver.hpp" -#include "zsdk/zsdk.hpp" +#include "stm32basic/zcanreceiver/zcanreceiver.hpp" +#include "stm32basic/zsdk.hpp" // diff --git a/usrc/base/appdep.hpp b/usrc/base/appdep.hpp index c862a8a..b67a986 100644 --- a/usrc/base/appdep.hpp +++ b/usrc/base/appdep.hpp @@ -5,13 +5,13 @@ #include "project_configs.h" // -#include "zsdk/hmp110/hmp110.hpp" -#include "zsdk/hpp272/hpp272.hpp" -#include "zsdk/modbus/modbus_block_host.hpp" -#include "zsdk/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.hpp" -#include "zsdk/tmcdriver/tmc51x0/tmc51x0.hpp" -#include "zsdk/zadc.hpp" -#include "zsdk/zsdk.hpp" +#include "stm32basic/hmp110/hmp110.hpp" +#include "stm32basic/hpp272/hpp272.hpp" +#include "stm32basic/modbus/modbus_block_host.hpp" +#include "stm32basic/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.hpp" +#include "stm32basic/tmcdriver/tmc51x0/tmc51x0.hpp" +#include "stm32basic/zadc.hpp" +#include "stm32basic/zsdk.hpp" // #include "config_service.hpp" #include "device_info.hpp" diff --git a/usrc/base/appthread/app_period_task_mgr.hpp b/usrc/base/appthread/app_period_task_mgr.hpp index 42dc5fd..78cced0 100644 --- a/usrc/base/appthread/app_period_task_mgr.hpp +++ b/usrc/base/appthread/app_period_task_mgr.hpp @@ -5,8 +5,8 @@ #include -#include "zsdk/zsdk.hpp" -#include "zstm32/zstm32.hpp" +#include "stm32basic/zsdk.hpp" +#include "stm32halport/stm32halport.hpp" // namespace iflytop { diff --git a/usrc/base/appthread/work_queue.hpp b/usrc/base/appthread/work_queue.hpp index 5dd7c2e..0a8c728 100644 --- a/usrc/base/appthread/work_queue.hpp +++ b/usrc/base/appthread/work_queue.hpp @@ -6,8 +6,8 @@ #include #include "cmsis_os.h" -#include "zsdk/zsdk.hpp" -#include "zstm32/zstm32.hpp" +#include "stm32basic/zsdk.hpp" +#include "stm32halport/stm32halport.hpp" // namespace iflytop { using namespace std; diff --git a/usrc/base/config_service.cpp b/usrc/base/config_service.cpp index 239fa39..1fa6075 100644 --- a/usrc/base/config_service.cpp +++ b/usrc/base/config_service.cpp @@ -1,6 +1,6 @@ #include "config_service.hpp" -#include "zsdk/zsdk.hpp" +#include "stm32basic/zsdk.hpp" static config_t _config; static config_t _default_val_config; diff --git a/usrc/base/config_service.hpp b/usrc/base/config_service.hpp index 5473e71..c2c4bb2 100644 --- a/usrc/base/config_service.hpp +++ b/usrc/base/config_service.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include "zsdk/zsdk.hpp" +#include "stm32basic/zsdk.hpp" typedef struct { diff --git a/usrc/base/device_info.hpp b/usrc/base/device_info.hpp index 11f823d..47a3f13 100644 --- a/usrc/base/device_info.hpp +++ b/usrc/base/device_info.hpp @@ -3,7 +3,7 @@ #include "project_configs.h" #include "base/config_service.hpp" -#include "zsdk/zsdk.hpp" +#include "stm32basic/zsdk.hpp" // uint16_t boardType; // uint16_t projectId; diff --git a/usrc/base/idtable/IdMgr.cpp b/usrc/base/idtable/IdMgr.cpp index 7761060..8282ea2 100644 --- a/usrc/base/idtable/IdMgr.cpp +++ b/usrc/base/idtable/IdMgr.cpp @@ -1,6 +1,6 @@ #include "IdMgr.hpp" -#include "zsdk/zsdk.hpp" +#include "stm32basic/zsdk.hpp" using namespace iflytop; void IdMgr::addIdItem(IdIterm item) { diff --git a/usrc/base/protocol_processer_utils.hpp b/usrc/base/protocol_processer_utils.hpp index a1fefc3..758d300 100644 --- a/usrc/base/protocol_processer_utils.hpp +++ b/usrc/base/protocol_processer_utils.hpp @@ -2,13 +2,13 @@ #include #include // -#include "zsdk/zsdk.hpp" -#include "zstm32/zstm32.hpp" +#include "stm32basic/zsdk.hpp" +#include "stm32halport/stm32halport.hpp" // #include "base/device_info.hpp" #include "gflag/gflag.h" #include "transmit_disfection_protocol/transmit_disfection_protocol.hpp" -#include "zsdk/zcanreceiver/zcanreceiver.hpp" +#include "stm32basic/zcanreceiver/zcanreceiver.hpp" namespace iflytop { using namespace std; diff --git a/usrc/base/utils/halutils.hpp b/usrc/base/utils/halutils.hpp index 7ec1a86..91f7c0d 100644 --- a/usrc/base/utils/halutils.hpp +++ b/usrc/base/utils/halutils.hpp @@ -2,8 +2,8 @@ #include #include -#include "zsdk/zsdk.hpp" -#include "zstm32/zstm32.hpp" +#include "stm32basic/zsdk.hpp" +#include "stm32halport/stm32halport.hpp" namespace iflytop { diff --git a/usrc/module/h2o2_sensor.cpp b/usrc/module/h2o2_sensor.cpp index 81f0878..7fd51f3 100644 --- a/usrc/module/h2o2_sensor.cpp +++ b/usrc/module/h2o2_sensor.cpp @@ -1,6 +1,6 @@ #include "h2o2_sensor.hpp" -#include "zsdk/zcanreceiver/zcanreceiver.hpp" +#include "stm32basic/zcanreceiver/zcanreceiver.hpp" using namespace iflytop; #define TAG "LSDMPowerCtrlBoard" diff --git a/usrc/module/proportional_valve_ctrl.hpp b/usrc/module/proportional_valve_ctrl.hpp index dd12080..c44fc59 100644 --- a/usrc/module/proportional_valve_ctrl.hpp +++ b/usrc/module/proportional_valve_ctrl.hpp @@ -1,6 +1,6 @@ #pragma once #include "base/appdep.hpp" -#include "zsdk/preportional_valve/preportional_valve_ctrl.hpp" +#include "stm32basic/preportional_valve/preportional_valve_ctrl.hpp" namespace iflytop { using namespace transmit_disfection_protocol;