gojimmypi

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 78 total)
  • Author
    Posts
  • gojimmypi
    Participant

    I’ve updated the repo with two separate VisualGDB project files:

    • Pure Windows-only RISC-V build (using xpack install in scripts directory)
    • Mixed build using WSL RISC-V toolchain

    https://github.com/ulx3s/Hazard3-Doom/tree/main/VisualGDB

    There’s a complete getting started here:

    https://ulx3s.github.io/ulx-doom/

     

     

     

    gojimmypi
    Participant

    The gnu++2b was in my (~ 27th of) August commits  of the ESP-IDF, here in esp-idf/tools/cmake/build.cmake.

    The most recent version exhibits a similar syntax highlighting problem, with a different root cause: -std=gnu23 here.

    My fix above does still work, although clearly a bit of a hack, needing an additional replace:

    string(REPLACE "-std=gnu2b" "-std=gnu23" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")

    I’ll try to take the 6.1 for a test drive soon. Thanks for the heads up.

     

    in reply to: Espressif ESP-IDF 5.5 Requires Python 3.9 or newer #36917
    gojimmypi
    Participant

    Looking forward to v6.1!

    In the meantime, I have this in a batch file to launch VS2022 for unreleased ESP-IDF v6 (latest via GitHub)

    @echo off
    
    set IDF_COMPONENT_STORAGE_URL=file:///C:/SysGCC/esp32-master/registry;default
    set IDF_PYTHON_ENV_PATH=C:\SysGCC\esp32-master\python_env\
    set IDF_TOOLS_PATH=C:\SysGCC\esp32-master
    set CONFIG_WOLFSSL_USE_MY_PRIVATE_CONFIG=1
    set CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX=1
    
    rem Launch Visual Studio without making this console wait
    start "" "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe" %*
    exit /b
    
    

    see also related Intellisense for ESP-IDF v6: https://sysprogs.com/w/forums/topic/espressif-esp-idf-v6-0-intellisense-error-invalid-value-gnu2b-in-stdgnu2b/

    gojimmypi
    Participant

    Heads up the above solution only worked for my local project source code.

    For other source code in my component being developed, as well as the entire ESP-IDF source,  I added this to the main project cmake, just before the ending project(projectname):

    
    if(  "$ENV{CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX}" STREQUAL "1" )
        if(DEFINED IDF_VERSION_MAJOR AND IDF_VERSION_MAJOR GREATER_EQUAL 6)
            message(STATUS "-- Found CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX, replacing -std=gnu2b with -std=gnu2x")
            if(CMAKE_C_COMPILER_ID MATCHES "Clang")
              string(REPLACE "-std=gnu2b" "-std=gnu2x" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
            endif()
        else()
            message(STATUS "-- Visual Studio Intellisense Fix not needed for this ESP-IDF version=${IDF_VERSION_MAJOR}")
        endif()
    else()
        message(STATUS "-- Not replacing -std=gnu2b with -std=gnu2x for Viosual Studio Intellisense fix")
        message(STATUS "-- To enable, define environment variable: CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX=1")
    endif()
    
    # Once the project is loaded, next check for ESP-IDF version 6 or greater.
    # Numerous "dangerous relocation: call8: call target out of range: memcpy" errors encountered
    # So we'll allow long calls with the -mlongcalls compiler option for all components.
    if(IDF_VERSION_MAJOR GREATER_EQUAL 6)
        if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s2" OR IDF_TARGET STREQUAL "esp32s3")
            message(STATUS "mlongcalls for all components")
            idf_build_set_property(COMPILE_OPTIONS "-mlongcalls" APPEND)
        endif()
    endif()

    Also added this to the local component in the project directory cmake, just after the idf_component_register():

    
            if(  "$ENV{CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX}" STREQUAL "1" )
                if(DEFINED IDF_VERSION_MAJOR AND IDF_VERSION_MAJOR GREATER_EQUAL 6)
                    message(STATUS "-- Setting -std=gnu17 with target_compile_options $<$:-std=gnu17>")
                    target_compile_options(${COMPONENT_LIB} PRIVATE $<$:-std=gnu17>)
                else()
                    message(STATUS "-- Visual Studio Intellisense Fix not needed for this ESP-IDF version=${IDF_VERSION_MAJOR}")
                endif()
            else()
                message(STATUS "-- Not setting -std=gnu17 with target_compile_options for Visual Studio Intellisense Fix")
                message(STATUS "-- To enable, define environment variable: CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX=1")
            endif()
    
    

    Note that it is optional code, based on the environment variable: CONFIG_WOLFSSL_FORCE_V6_INTELLISENSE_FIX=1

     

    I’m note sure exactly which are needed, but in order for syntax highlighting to be reliably restored for me:

    • Exit Visual Studio
    • Delete ./build directory
    • Delete ./visualgdb directory
    • Delete ./vs directory
    • Restart Visual Studio
    in reply to: Arduino esp32 update fails #36903
    gojimmypi
    Participant

    fwiw, still occurring with the latest update today (ESP32  3.3.1) See attached

    VisualGDB 6.0R8 (build 5338)

    Looks like of the 170+ problems, included is at least the ESP Matter Connected Home stuff. Undesired to just ignore.

    Perhaps an alternative install location can be used?

    There’s a Windows fix that I personally choose not to use, as I also test my own distributions for other things:

    https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry

    Attachments:
    You must be logged in to view attached files.
    in reply to: Espressif ESP-IDF 5.5 Requires Python 3.9 or newer #36821
    gojimmypi
    Participant

    Heads up ESP-IDF v5.5 has been released.

    https://github.com/espressif/esp-idf/releases/tag/v5.5

    Beware:  “Release v5.5 is mostly compatible with apps written for ESP-IDF v5.4.”

    See the section: “breaking changes”

    • This reply was modified 1 year, 1 month ago by gojimmypi.
    in reply to: Espressif ESP-IDF 5.5 Requires Python 3.9 or newer #36749
    gojimmypi
    Participant

    Heads up the Espressif ESP-IDF v5.5 is now in beta:

    https://github.com/espressif/esp-idf/releases/tag/v5.5-beta1

    I was initially unable to get VisualGDB to use the new toolchain for the same cmake version issue described in my original message.

    However, I found this topic from last year: “Problem on new ESP32 toolchain”:

    https://sysprogs.com/w/forums/topic/problem-on-new-esp32-toolchain/

    Specifically the link to “Troubleshooting”:

    https://visualgdb.com/documentation/espidf/#troubleshooting

    To resolve, I set my Tools – Options – VisualGDB – General – Python Directory (ESP-IDF) to

    C:\Users\gojimmypi\AppData\Local\VisualGDB\Python-3.11.5

     

    Screen snip of python directory setting

     

     

    • This reply was modified 1 year, 2 months ago by gojimmypi.
    gojimmypi
    Participant

    That seemed like a reasonable approach, although I was left wondering why system-wide environment value would not be “seen” by cmake?

    In any case, it didn’t work.  (see attached). I still see the error:

    Requirement files:
    - C:\SysGCC\esp32\esp-idf\v5.2\tools\requirements\requirements.core.txt
    Python being checked: C:\SysGCC\esp32-master\python_env\\idf5.2_py3.8_env\Scripts\python.exe
    Manifest files have changed, solving dependencies.
    ..-- Configuring incomplete, errors occurred!
    CMake Error at C:/SysGCC/esp32/esp-idf/v5.2/tools/cmake/build.cmake:544 (message):
    WARNING: Component "gojimmypi/mywolfssl" not found

    ERROR: Because project depends on gojimmypi/mywolfssl (^5.7.1-preview2f1)
    which doesn't match any versions, version solving failed.

    Call Stack (most recent call first):

    Here it is in WSL using the same toolchain; first, the error is expected since there’s no release called mywolfssl

    $ idf.py add-dependency "gojimmypi/mywolfssl^5.7.1-preview2f1"
    Executing action: add-dependency
    ERROR: Component "gojimmypi/mywolfssl" not found

    Here it is setting the staging site environment variable:

    gojimmypi:/mnt/c/workspace/esp32-homekit-demo-gojimmypi-pr/examples/led
    $ export IDF_COMPONENT_REGISTRY_URL=https://components-staging.espressif.com
    gojimmypi:/mnt/c/workspace/esp32-homekit-demo-gojimmypi-pr/examples/led
    $ idf.py add-dependency "gojimmypi/mywolfssl^5.7.1-preview2f1"
    Executing action: add-dependency
    Successfully added dependency "gojimmypi/mywolfssl^5.7.1-preview2f1" to component "main"

    It then successfully builds using the staging instance of gojimmypi/mywolfssl.

    Also, after attempting to build and revisiting the IDF_COMPONENT_REGISTRY_URL=https://components-staging.espressif.com shown in the attached screen snip, when clicking on the newly created IDF_COMPONENT_REGISTRY_URL value, Visual Studio became unresponsive and restarted.

    Other than this anomaly, VisualGDB is working great.

    Attachments:
    You must be logged in to view attached files.
    in reply to: Updating existing projects to ESP-IDF 5.2 #35437
    gojimmypi
    Participant

    Aha! Great! Thanks for the update.

    I should add this is also quite helpful for installing multiple versions of the ESP-IDF toolchain:

    https://visualgdb.com/documentation/espidf/#toolchains

    gojimmypi
    Participant

    In my C:\SysGCC I have manually installed C:\SysGCC\esp32-11.2 and C:\SysGCC\esp32-8.4 for the older toolchains, in addition to the default install of C:\SysGCC\esp32 which has version 12.1 of the toolchain.

    Inside each of *those* directories, I have different versions of the ESP-IDF SDK, for instance:

    In my C:\SysGCC\esp32\esp-idf, I performed “git clone [repo] [sdk name]” for these:

    esp-idf-v5.2-beta1
    master
    v5.0
    v5.1

    That allows relatively each changing of SDK and toolchains. Be sure to delete the build directory and sdkconfig file when changing.

    I’ve found that simply keeping different versions of the project file much easier than manually changing them to different SDK & toolchain versions, for example:

    https://github.com/gojimmypi/wolfssl/tree/ED25519_SHA2_fix/IDE/Espressif/ESP-IDF/examples/template/VisualGDB

     

     

    • This reply was modified 2 years, 6 months ago by gojimmypi.
    in reply to: Espressif ESP32-H2 JTAG Debugging #35053
    gojimmypi
    Participant

    Hello,

    I recently installed the 20231123 ESP32 Debug Methods update to VisualGDB.

    The JTAG programming and debugging capabilities (ESP-IDF v5.1) seem to be working well for the ESP32-H2 now! Thank you.

    There is however an oddity when pressing the “Debug – Test” button, indicating that the test failed:

    Error: Error on socket 'GDB': WSAGetLastError==10054, message: An existing connection was forcibly closed by the remote host.

    I’ve attached the full log for reference. So far, it seems the error can be ignored.

    Also, note that unlike other devices when doing idf.py erase-flash , the ESP32-H2 is not in a happy state when freshly erased. Error “invalid header” scrolling endlessly. In this state I am unable to JTAG debug.

    Here’s an example of the console output after erase & JTAG will not work:

    invalid header: 0xffffffff
    invalid header: 0xfffff▒ESP-ROM:esp32h2-20221101
    Build:Nov 1 2022
    rst:0x7 (TG0_WDT_HPSYS),boot:0xc (SPI_FAST_FLASH_BOOT)
    Saved PC:0x40011bdc
    invalid header: 0xffffffff
    invalid header: 0xffffffff

    Upon flashing a clean, operational “hello world” (or any other app) – then the JTAG capabilities work fine.

    Thank you again for this fix.

    Cheers

    Attachments:
    You must be logged in to view attached files.
    in reply to: Getting Started with wolfSSL on the Espressif ESP32 #34624
    gojimmypi
    Participant

    There’s a recording of the “Getting Started with wolfSSL on the Espressif ESP32” here:

    https://www.youtube.com/watch?v=CzwA3ZBZBZ8

    in reply to: esp-idf master branch (5.1) with VisualGDB #34399
    gojimmypi
    Participant

    awesome, thank you 🙂

    in reply to: esp-idf master branch (5.1) with VisualGDB #34397
    gojimmypi
    Participant
    in reply to: IDF Component Manager #34339
    gojimmypi
    Participant

    I’ve setup wolfSSL as a managed component.

    I’m hoping to use other components such as the esp-cryptoauthlib.

    Components are added to a project like this:

    idf.py add-dependency "espressif/esp-cryptoauthlib^3.5.1~1"

    It appears the only thing that command does is to add/update the project idf_component.yml file.

    Subsequent calls with idf.py build appear to recognize that component file, download required files to the managed_components directory, and compile everything.

    However, from within the VisualGDB environment, nothing new seems to happen at compile time: The IDE does not seem to recognize the ESP Registry components in the managed_components directory.

    I wasn’t able to find any VisualGDB documentation on this. It this capability supported? I’m using EDP-IDF v5.

    Thank you

     

Viewing 15 posts - 1 through 15 (of 78 total)