The STM32CubeMX Wizard not working for TouchGFX and AzureRTOS

Sysprogs forums Forums VisualGDB The STM32CubeMX Wizard not working for TouchGFX and AzureRTOS

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #33732
    Southbranch
    Participant

    I like the STM32CubeMX Project Wizard which works fine for adding configs for standard peripherals like USART, I2C and so on, simple and powerful -:)

    However, my project fails to compile when adding more complex software packages like TouchGFX and AzureRTOS (via STM32CubeMX). I am a newie to CMake but is seems references were added correctly in the CMakeLists.txt:

    cmake_minimum_required(VERSION 3.15)
    project(SP_STM32H725IGK6 LANGUAGES C CXX ASM)

    find_bsp(ID com.sysprogs.project_importers.stm32.cubemx SOURCE_PROJECT SP_STM32H725IGK6.ioc)
    bsp_include_directories(Middlewares/ST/threadx/common/inc Middlewares/ST/threadx/ports/cortex_m7/gnu/inc TouchGFX/App)

    add_bsp_based_executable(NAME SP_STM32H725IGK6
    GENERATE_BIN
    GENERATE_MAP)

    But there are compiler errrors with “undefined references” as below:

    FAILED: SP_STM32H725IGK6
    cmd.exe /C “cd . && C:\SysGCC\arm-eabi\bin\arm-none-eabi-gcc.exe -g3 -O0 CMakeFiles/BSP.dir/Core/Src/app_threadx.c.obj CMakeFiles/BSP.dir/Core/Src/main.c.obj CMakeFiles/BSP.dir/Core/Src/stm32h7xx_hal_msp.c.obj CMakeFiles/BSP.dir/Core/Src/stm32h7xx_hal_timebase_tim.c.obj CMakeFiles/BSP.dir/Core/Src/stm32h7xx_it.c.obj CMakeFiles/BSP.dir/Core/Src/sysmem.c.obj CMakeFiles/BSP.dir/Core/Src/system_stm32h7xx.c.obj CMakeFiles/BSP.dir/Core/Src/tx_initialize_low_level.S.obj CMakeFiles/BSP.dir/Core/Startup/startup_stm32h725igkx.s.obj CMakeFiles/BSP.dir/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c.obj
    c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: CMakeFiles/BSP.dir/Core/Src/tx_initialize_low_level.S.obj: in function `__tx_SysTickHandler’:
    C:\Users\larss\source\repos\SP_STM32H725IGK6\SP_STM32H725IGK6\build\VisualGDB\Debug/../../../Core/Src/tx_initialize_low_level.S:646: undefined reference to `_tx_timer_interrupt’
    c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: CMakeFiles/BSP.dir/Core/Src/tx_initialize_low_level.S.obj: in function `__tx_DBGHandler’:
    C:\Users\larss\source\repos\SP_STM32H725IGK6\SP_STM32H725IGK6\build\VisualGDB\Debug/../../../Core/Src/tx_initialize_low_level.S:551: undefined reference to `_tx_thread_system_stack_ptr’
    c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: CMakeFiles/BSP.dir/Core/Src/app_threadx.c.obj: in function `MX_ThreadX_Init’:
    C:\Users\larss\source\repos\SP_STM32H725IGK6\SP_STM32H725IGK6\build\VisualGDB\Debug/../../../Core/Src/app_threadx.c:84: undefined reference to `_tx_initialize_kernel_enter’
    c:/sysgcc/arm-eabi/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: CMakeFiles/BSP.dir/Core/Src/main.c.obj: in function `main’:
    C:\Users\larss\source\repos\SP_STM32H725IGK6\SP_STM32H725IGK6\build\VisualGDB\Debug/../../../Core/Src/main.c:104: undefined reference to `MX_TouchGFX_PreOSInit’

     

    So the question is, is there a way to modify the CMakeLists.txt and/or add any other references to get the compiler working ?

    Many thanks in advance.

    Thanks in advance

    • This topic was modified 1 year, 9 months ago by Southbranch.
    #33734
    support
    Keymaster

    Hi,

    It looks like your technical support period has expired. We would be happy to help you, however we would kindly ask you to renew your technical support on the following page first: https://sysprogs.com/splm/mykey

    #33735
    Southbranch
    Participant

    Hi!

    Are you saying my problem above can be fixed?
    In that case I would be more than happy to renew my license -:)
    By the way, are there any extra special features for STM32 included in “VisualGDB Ultimate”?

    Thanks

    #33736
    support
    Keymaster

    Please refer to this page for a detailed explanation of the technical support scope.

    Specifically in this case, we can fix it if you are able to:

    1. Build the same project using a different IDE (e.g. STM32CubeIDE).
    2. Compare the broken project against working project and point out a specific file, or a specific setting that did not get imported by VisualGDB.
    3. Confirm that the project file imported by VisualGDB clearly references the file or contains the setting isolated on the previous step (i.e. the issue is with the VisualGDB importer and not the project).

    If do not wish to do it and would like us to analyze a non-trivial broken project and find the root cause, we can gladly do it at our consulting rate.

    You can find a detailed comparison of different VisualGDB editions here.

     

    #33741
    Southbranch
    Participant

    Thanks,
    I have tried to renew my license but get message “Renewal not available, contact support”
    please help

    #33742
    support
    Keymaster

    Hi,

    We do not want to cause any misunderstanding with your renewal and would like to make sure the issue is actually caused by VisualGDB. Please follow the steps from our previous reply and make sure you can find a specific parameter that did not get imported by VisualGDB.

    If you cannot narrow this down to a specific parameter, it is likely caused by a bug in STM32CubeMX generator, or one of the libraries you are using, and we will not be able to fix it even if you renew your support.

    #33743
    Southbranch
    Participant

    Hi,

    Thanks for your concern.
    I believe the most straightforward way would be if you could reproduce the error in your end by following my steps:

    1. Within ViusalGDB and by using the STM32CubeMX Project Template, start a new blank project based on STM32H735IGKx.
    2. Add LTDC support via config in STM32CubeMX and and use all default settings. Add some display pixel resolution like 800 x 480px (or any other)
    3. Check if it compiles.
    4. Add TouchGFX package (via config in STM32CubeMX).
    5. Check if it compiles.
    6. If it does, then try to add AzureRTOS (also via config in STM32CubeMX).
    7. Check if it compiles.

    I only got to step 3)

    #33744
    support
    Keymaster

    Thanks for your update. We understand that you do not wish to follow our instructions for separating the STM32CubeMX-specific part of the issue from the VisualGDB-specific part. As we have explained before, will not be able to do it for you as a part of our technical support, even if you renew your license. Please consider finding someone else who would agree to help you on your terms.

    #33745
    Southbranch
    Participant

    I have limited expertise on compilers and I am afriad I do not really know what you mean with “find a specific parameter” that are not imported other than the compiler error messages from above. What else should I look for? Please forgive my lack of knowledge here, but the only reasonable explanation (so far) from my side is that AzureRTOS was not imported correctly and/or the CMake scipts are incomplete.

    The project compiles with STM32CubeIDE (using STM32CubeMX for config) but I would really like to move over to VisualGDB and VS Studio thanks to your great product.

    Just so I understand. Are you saying my steps 1-7) aboves actually should work? Or maybe you have not added CMake-support yet for adding the more complex packages? But if you say you have and it should work, then yes we have an interesting challenge.

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.