2023-02-15 10:04 PM
I have ported the example code over to STM32H743i-Eval and have it compiling OK. But testing is another issue as there is little information to go on for how to set-up a client PC and connect to the ethernet port on the eval board. I am assuming that the webserver gets html pages off of the sd card and makes them available to what ever is connected to the network port but there is no detail regarding settings on the PC or an IP to browse, etc.
Anyone have experience with this or know where some more detailed documentation might exist?
Solved! Go to Solution.
2023-04-10 05:56 PM
I got this to work, but only after fixing a bug in the BSP code for the h743i_eval board.
I am using the LCD as a tracking tool and when the LCD is initialized using the BSP_LCD_Init function, it tries to send a reset to the LCD which does not exist in the hardware. The routine tries to initialize PA2 for the purpose which is being used and already initialized to be used for the ethernet MDIO pin. Obviously, this breaks the ethernet operation.
the errant code is found in stm32h743i_eval_lcd.c in the BSP_LCD_InitEx function at around line 240.
The call for the reset:
//BSP_LCD_Reset(Instance);
needs to be commented out as shown.
2023-02-16 02:54 PM
BTW, I know there is a nx_duo wiki which addresses the nx_webserver briefly, but there is no information about how to set up a PC so you can see the web server with a browser which is what I expect to be able to do. So perhaps my expectations are out of line?
My host machine is linux.
2023-02-18 03:25 PM
I have used lwip from CubeMX in a stm32F design and there was an option from cubeMX to choose to not use DHCP an fix the IP Address. However, in netXduo I do not see that. I found in app_netxduo where the dhcp code is creating an IP instance using nx_ip_create(...). It would appear, referencing the NetX user guide in Chapter 4 it describes this as a method to create an IP instance with a use supplied address. This is being called at line 184 (ZRTOS H7 V2.10) in app_netxduo.c. The odd thing is that the netxduo.h file supplies the defines being used in the call as NULL_IP_ADDRESS and sets both the address and mask to 000.000.000.000. Is this because the DHCP thread expects this to be updated by an external device that hands out IP addresses? Also there is nothing in the documentation the indicates if this IP_ADDRESS and Mask are set to non NULL values that the DHCP process will be bypassed and use the fixed addressing. I am sure that netXduo would preclude the possibility of setting a fixed address but I can't find it.
Why does CubeMX not present a fixed addressing option?
2023-04-10 05:56 PM
I got this to work, but only after fixing a bug in the BSP code for the h743i_eval board.
I am using the LCD as a tracking tool and when the LCD is initialized using the BSP_LCD_Init function, it tries to send a reset to the LCD which does not exist in the hardware. The routine tries to initialize PA2 for the purpose which is being used and already initialized to be used for the ethernet MDIO pin. Obviously, this breaks the ethernet operation.
the errant code is found in stm32h743i_eval_lcd.c in the BSP_LCD_InitEx function at around line 240.
The call for the reset:
//BSP_LCD_Reset(Instance);
needs to be commented out as shown.