-
Notifications
You must be signed in to change notification settings - Fork 0
nickle-fang/Transmitter_H7_Version
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
/** @page LwIP_HTTP_Server_Netconn_RTOS LwIP HTTP Server Netconn Application @verbatim ******************** (C) COPYRIGHT 2017 STMicroelectronics ******************* * @file LwIP/LwIP_HTTP_Server_Netconn_RTOS/readme.txt * @author MCD Application Team * @brief Description of the LwIP http server Netconn API Application. ****************************************************************************** * @attention * * <h2><center>© Copyright (c) 2017 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** @endverbatim @par Application Description This application guides STM32Cube HAL API users to run a http server application based on Netconn API of LwIP TCP/IP stack The communication is done with a web browser application in a remote PC. this HTTP server contains two html pages: + the first page (home page) is static, it gives information about STM32H7 and LwIP stack. + the second page is dynamically refreshed (every 1 s), it shows the RTOS statistics in runtime LEDs will inform user about ethernet cable status: + LED2: ethernet cable is connected. + LED3: ethernet cable is not connected. If a DHCP server is available, a dynamic IP address can be allocated by enabling the DHCP process (#define LWIP_DHCP to 1 in lwipopts.h), in this case the allocated address could be read from "gnetif.ip_addr" field: For example if gnetif.ip_addr.addr = 0x0200A8C0, so the the IPv4 address is "192.168.0.2" At the beginning of the main program the HAL_Init() function is called to reset all the peripherals and initialize the Flash interface. The HAL initializes the TIM6 to generate an interrupt each 1ms, it will be used as time base for the HAL drivers. This application uses FreeRTOS, the RTOS initializes the systick to generate an interrupt each 1ms. The systick is then used for FreeRTOS time base. The SystemClock_Config() function is used to configure the system clock for STM32H743xx Devices : The CPU at 400MHz The HCLK for D1 Domain AXI and AHB3 peripherals , D2 Domain AHB1/AHB2 peripherals and D3 Domain AHB4 peripherals at 200MHz. The APB clock dividers for D1 Domain APB3 peripherals, D2 Domain APB1 and APB2 peripherals and D3 Domain APB4 peripherals to run at 100MHz. @note Care must be taken when using HAL_Delay(), this function provides accurate delay (in milliseconds) based on variable incremented in HAL time base ISR. This implies that if HAL_Delay() is called from a peripheral ISR process, then the HAL time base interrupt must have higher priority (numerically lower) than the peripheral interrupt. Otherwise the caller ISR process will be blocked. To change the HAL time base interrupt priority you have to use HAL_NVIC_SetPriority() function. @note The application needs to ensure that the HAL time base is always set to 1 millisecond to have correct HAL operation. For details about this application, refer to UM1713 "STM32Cube interfacing with LwIP and applications" @par Keywords Connectivity, LwIP, Ethernet, HTTP Server, Netconn, TCP/IP, FreeRTOS, DHCP @Note The internal DMA of the Ethernet peripheral can't access the DTCM memory (@0x20000000) of the STM32H7, All data accessible by the Ethernet DMA must be located in the D1 or D2 SRAM. For more details please refer to "ethernetif.c" file. @Note In this application the D1 SRAM (@ 0x24000000) is used as system RAM, so the Ethernet DMA will be able to access buffers created dynamically by the LwIP stack. @Note If the application is using the DTCM/ITCM memories (@0x20000000/ 0x0000000: not cacheable and only accessible by the Cortex M7 and the MDMA), no need for cache maintenance when the Cortex M7 and the MDMA access these RAMs. If the application needs to use DMA(or other masters) based access or requires more RAM, then the user has to: - Use a non TCM SRAM. (example : D1 AXI-SRAM @ 0x24000000) - Add a cache maintenance mechanism to ensure the cache coherence between CPU and other masters(DMAs,DMA2D,LTDC,MDMA). - The addresses and the size of cacheable buffers (shared between CPU and other masters) must be properly defined to be aligned to L1-CACHE line size (32 bytes). @Note It is recommended to enable the cache and maintain its coherence. Depending on the use case it is also possible to configure the cache attributes using the MPU. Please refer to the AN4838 "Managing memory protection unit (MPU) in STM32 MCUs" Please refer to the AN4839 "Level 1 cache on STM32F7 Series" @par Directory contents - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/app_ethernet.h header of app_ethernet.c file - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/ethernetif.h header for ethernetif.c file - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/stm32h7xx_hal_conf.h HAL configuration file - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/stm32h7xx_it.h STM32 interrupt handlers header file - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/main.h Main program header file - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/lwipopts.h LwIP stack configuration options - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/FreeRTOSConfig.h FreeRTOS configuration options - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Inc/httpserver_netconn.h header for httpserver-netconn.c - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/app_ethernet.c Ethernet specific module - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/stm32h7xx_it.c STM32 interrupt handlers - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/main.c Main program - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/system_stm32h7xx.c STM32H7xx system clock configuration file - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/ethernetif.c Interfacing LwIP to ETH driver - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/httpserver_netconn.c httpserver netconn main thread - LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/fsdata_custom.c ROM filesystem data (html pages) @par Hardware and Software environment - This application runs on STM32H743xx devices. - This application has been tested with the following environments: - NUCLEO-H743ZI board - Http client: Google Chrome (v55) - DHCP server: PC utility TFTPD32 (http://tftpd32.jounin.net/) is used as a DHCP server - NUCLEO-H743ZI Set-up - Connect the nucleo board to remote PC (through a crossover ethernet cable) or to your local network (through a straight ethernet cable) - Remote PC Set-up - PC must share the same LAN network configuration with the nucleo board @par How to use it ? In order to make the program work, you must do the following : - Open your preferred toolchain - Rebuild all files and load your image into target memory - Run the application * <h3><center>© COPYRIGHT STMicroelectronics</center></h3> */
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published