(Cube)MX configurator compatible with Discovery SMT32H735G-DK? (Partly Disabled IO conflicts, Examples contain no .IOC, lwIP & RTOS creates code not compiling).
I am trying to do UDP on Discovery STM32H735G-DK.
1) MX Pinout configuration tool seems not compatible with the examples: if I open the example LwIP_UDP_Echo_Server in the configurator, LwIP remains disabled in the MX pin configurator.
Q1: Is there any way to create/update the .IOC from the example so it can be used as a base to start working from using the MX tool?
2) If I generate with MX a basic configuration, even disabling all hardware peripherals, the tool keeps nagging “partly disable conflict with�? even with peripheral ADC I disabled.
Q2: How should I understand conflicts between 2 hardware parts where 1 is disabled? For the moment it seems a contradiction to me.
3) If I try to correct beforementioned conflicts, I the tool is unwilling to let me change configuration: (Eth CHR, red, cannot be selected for PA0_C, so how to correct the alleged conflict? (right click on BGA pin PAO_C => ETH_CRS unselectable, remains red! even with other peripherials disabled.)
Q3: How can I change PA0_C so it is connected with ETH_CRS to solve (if needed) the before mentioned conflict.
If one enables lwIP and RTOS together, code generated does not compile:
multiple definition of `errno'
./Middlewares/Third_Party/LwIP/system/OS/sys_arch.o:
c:\st\stm32cubeide_1.8.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: c:/st/stm32cubeide_1.8.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+dp/hard\libc_nano.a(lib_a-reent.o):(.bss.errno+0x0): multiple definition of `errno'; ./Middlewares/Third_Party/LwIP/system/OS/sys_arch.o:C:/Users/Johi/STM32CubeIDE/workspace_H735-G-DK-2/test-naked/Debug/../Middlewares/Third_Party/LwIP/system/OS/sys_arch.c:45: first defined here
ð Solved this by commenting out #define LWIP_PROVIDE_ERRNO in cc.h (but I think if I regenerate with MX this will be overwritten), so is this the right way to go.
ð If I recompile, again a myriad of errors:
../Middlewares/Third_Party/LwIP/src/api/err.c:50:3: error: 'ENOMEM' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:51:3: error: 'ENOBUFS' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:52:3: error: 'EWOULDBLOCK' undeclared here (not in a function); did you mean 'ERR_WOULDBLOCK'?
../Middlewares/Third_Party/LwIP/src/api/err.c:53:3: error: 'EHOSTUNREACH' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:54:3: error: 'EINPROGRESS' undeclared here (not in a function); did you mean 'ERR_INPROGRESS'?
../Middlewares/Third_Party/LwIP/src/api/err.c:55:3: error: 'EINVAL' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:57:3: error: 'EADDRINUSE' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:58:3: error: 'EALREADY' undeclared here (not in a function); did you mean 'ERR_ALREADY'?
../Middlewares/Third_Party/LwIP/src/api/err.c:59:3: error: 'EISCONN' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:60:3: error: 'ENOTCONN' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:62:3: error: 'ECONNABORTED' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:63:3: error: 'ECONNRESET' undeclared here (not in a function)
../Middlewares/Third_Party/LwIP/src/api/err.c:65:3: error: 'EIO' undeclared here (not in a function)
make: *** [Middlewares/Third_Party/LwIP/src/api/subdir.mk:43: Middlewares/Third_Party/LwIP/src/api/err.o] Error 1
make: *** Waiting for unfinished jobs....
../Middlewares/Third_Party/LwIP/src/api/if_api.c:74:13: error: 'ENXIO' undeclared (first use in this function)
../Middlewares/Third_Party/LwIP/src/include/lwip/priv/sockets_priv.h:95:40: error: 'errno' undeclared (first use in this function)
Q3: Since LwIP (as per documentation) is compatible with RTOS, it should be possible to get rid of these errors. However if I do manually and reconfigure I am afraid my code will be overwritten.
Q4: I am quite positively impressed Using Cube-MX for my Nucleo boards, but experiences mentioned above give me the feeling that once things really get serous MX is maybe not the right approach? Is my feeling correct and if so are there other tools (possibly not free) that are more apropriate?
Or should I use the eclipse part and forget about MX with all its true advantages certainly for those that are not very experienced as I am? (Maybe generate the framework once and correct the bugs and take it manually from ther.)
