2021-03-25 07:25 PM
CubeIDE makes a completely different file structure, some includes cannot be found "VOID" is written capital and causes an error, etc. I am completely new to RTOS, I did some bare metal HAL with CubeIDE and that worked quite well, but just started recently with STM32 (LabVIEW programmer...).
If there is a good tutorial that really starts from scratch with azure and CubeIDE and not just opens and example, that would be very helpful.
Any help is much appreciated! Nice greetings, Guenter.
2021-03-28 01:29 PM
Hi Guenter,
to better understand your usecase, did you use the STM32CubeMX to generate the project for the STM32CubeIDE?
regards
Haithem.
2021-03-28 02:40 PM
Hello Haithem, thanks for helping!
I used STM32CubdeIDE, startet a new project and selected my board (H723ZG Nucleo).
Then I selected my peripherals, timers, SPI, etc., in the .ioc, just as I did before on my F4 boards. However, this time I also selected software packs (Azure App, ThreadX, FileX, NeXtDuo, Network interface, BSP) similar to the STM32 video. So far so good, no problems, all green checks. When I then generate code it went a bit sideways. The file tree looks quite different form the examples, no \Application\User\ and also in the Middlewares, no \NX Core\, etc. and missing includes (nx_stm32_custom_driver.h).
I noticed a difference in capitalization, not sure where it matters and where it does not, "VOID" is certainly a mistake. I copied some of the errors below. When I open an example and clean and build it everything is fine, what do I have to do to make STM32CubeIDE do it in the same way?
Again thank you for your help and apologies for my lack of knowledge.
expected identifier or '(' before '[' token
fatal error: nx_stm32_custom_driver.h: No such file or directory
fatal error: stm32NNxx_hal.h: No such file or directory
make: ...
...
stray '#' in program
unknown type name 'NX_IP_DRIVER'; did you mean 'NX_ETH_DRIVER_H'?
unknown type name 'NX_IP_DRIVER'; did you mean 'NX_ETH_DRIVER_H'?
unknown type name 'VOID'
unknown type name 'VOID'
2021-03-29 01:19 AM
Hi,
I think you didn't enable the Azure RTOS components in the Mode UI did you?
regards
haithem.
2021-03-29 02:29 AM
Hello Haithem, no, I did enable all of them.
Greetings, Guenter
2021-03-29 04:11 AM
Hi,
this is a bit strange as you can see below, my project is correctly configured.
are you using the STM32CubeIDE 1.6.0?
regards
Haithem.
2021-03-30 03:01 AM
Hello Haithem,
yes, I do use the latest (1.6.0). I tried a bare HAL project and it worked. I will next successively add one component after the other and see where it will lead me. But even in your (working) screen shot, the file structure is different from the examples where they have /Application/User/AZURE_RTOS/.. and others as well. I understand that there a many ways leading to the same result, but it would be way easier for a beginner to be able to reproduce the same outcome with the same tools.
Nice greetings, Guenter
2021-04-03 03:09 PM
2021-04-12 11:11 AM
Hi Haithem,
I followed the video and got the same results as I went though as you show. But at the end, when I clicked the "compile" button, the code would not compile.It appears there are syntax errors and numerous missing files?
arm-none-eabi-gcc "../Middlewares/ST/netxduo/common/drivers/lan8742/nx_stm32_phy_driver.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32H723xx -DTX_INCLUDE_USER_DEFINE_FILE -DNX_INCLUDE_USER_DEFINE_FILE -c -I../Core/Inc -I../Drivers/STM32H7xx_HAL_Driver/Inc -I../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32H7xx/Include -I../Drivers/CMSIS/Include -I../AZURE_RTOS/App -I../NetXDuo/App -I../NetXDuo/Target -I../Drivers/BSP/Components/lan8742/ -I../Middlewares/ST/netxduo/common/drivers/ -I../Middlewares/ST/netxduo/addons/dhcp/ -I../Middlewares/ST/netxduo/common/inc/ -I../Middlewares/ST/netxduo/ports/cortex_m7/gnu/inc/ -I../Middlewares/ST/threadx/common/inc/ -I../Middlewares/ST/threadx/ports/cortex_m7/gnu/inc/ -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Middlewares/ST/netxduo/common/drivers/lan8742/nx_stm32_phy_driver.d" -MT"Middlewares/ST/netxduo/common/drivers/lan8742/nx_stm32_phy_driver.o" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "Middlewares/ST/netxduo/common/drivers/lan8742/nx_stm32_phy_driver.o"
../Middlewares/ST/netxduo/common/drivers/template/nx_custom_driver.c:1:1: error: expected identifier or '(' before '[' token
1 | [#ftl]
| ^
../Middlewares/ST/netxduo/common/drivers/template/nx_custom_driver.c:1:2: error: stray '#' in program
1 | [#ftl]
| ^
../Middlewares/ST/netxduo/common/drivers/template/nx_custom_driver.c:14:10: fatal error: nx_stm32_custom_driver.h: No such file or directory
14 | #include "nx_stm32_custom_driver.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from ../Middlewares/ST/netxduo/common/drivers/template/nx_eth_driver.c:14:
../Middlewares/ST/netxduo/common/drivers/template/nx_eth_driver.h:47:1: error: unknown type name 'VOID'
47 | VOID nx_eth_driver(NX_IP_DRIVER *driver_req_ptr);
| ^~~~
../Middlewares/ST/netxduo/common/drivers/template/nx_eth_driver.h:47:21: error: unknown type name 'NX_IP_DRIVER'; did you mean 'NX_ETH_DRIVER_H'?
47 | VOID nx_eth_driver(NX_IP_DRIVER *driver_req_ptr);
| ^~~~~~~~~~~~
| NX_ETH_DRIVER_H
../Middlewares/ST/netxduo/common/drivers/template/nx_eth_driver.c:28:1: error: unknown type name 'VOID'
28 | VOID nx_eth_driver(NX_IP_DRIVER *driver_req_ptr)
| ^~~~
../Middlewares/ST/netxduo/common/drivers/template/nx_eth_driver.c:28:21: error: unknown type name 'NX_IP_DRIVER'; did you mean 'NX_ETH_DRIVER_H'?
28 | VOID nx_eth_driver(NX_IP_DRIVER *driver_req_ptr)
| ^~~~~~~~~~~~
| NX_ETH_DRIVER_H
make: *** [Middlewares/ST/netxduo/common/drivers/template/subdir.mk:25: Middlewares/ST/netxduo/common/drivers/template/nx_custom_driver.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [Middlewares/ST/netxduo/common/drivers/template/subdir.mk:27: Middlewares/ST/netxduo/common/drivers/template/nx_eth_driver.o] Error 1
In file included from ../Middlewares/ST/netxduo/common/drivers/template/nx_eth_phy_driver.c:14:
../Middlewares/ST/netxduo/common/drivers/template/nx_stm32_eth_config.h:22:10: fatal error: stm32NNxx_hal.h: No such file or directory
22 | #include "stm32NNxx_hal.h"
| ^~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Middlewares/ST/netxduo/common/drivers/template/subdir.mk:29: Middlewares/ST/netxduo/common/drivers/template/nx_eth_phy_driver.o] Error 1
"make -j12 all" terminated with exit code 2. Build might be incomplete.
10:58:53 Build Failed. 12 errors, 0 warnings. (took 59s.354ms)
Any suggestions or things that might be worth trying?
2021-04-15 06:36 PM
Hello Haithem,
I followed your screen cast (thank you for posting it) and run into the same problems as ADyke.1. The set-up was never an issue, although I started from a Nucleo template rather than from the uC like you, the problem started with the compiling.
Thanks for your help and greetings, Guenter