Forum Replies Created
-
AuthorPosts
-
October 17, 2019 at 17:23 in reply to: ESP-IDF, arduino as component : Where to place third party librairies ? #26204
support
KeymasterArduino libraries use a rather specific sematics (including one header file automatically pulls the entire library) and hence only work out-of-the-box with the Arduino project builder. This is fully supported and works out-of-the-box when using the Arduino Project Subsystem.
The ESP-IDF projects are based on a different framework that is not 100% compatible with the Arduino ecosystem. It is possible to add the Arduino core to ESP-IDF projects because Espressif has specifically designed their ESP32 core to be both a valid Arduino core and a valid ESP-IDF component that can be imported into ESP-IDF projects. This does not mean that any Arduino library can be automatically added to ESP-IDF projects without any adjustments, because the ESP-IDF build system is still different from the Arduino build system.
In order to import an Arduino library to an ESP-IDF project, it needs to be manually converted to an ESP-IDF component. Once you have performed the conversion, you can add the component to the project by selecting Add->Existing Item in Solution Explorer->Project->Components.
October 16, 2019 at 22:22 in reply to: ESP-IDF, arduino as component : Where to place third party librairies ? #26188support
KeymasterSorry, if you need help understanding the role of libraries and components in ESP-IDF projects, please contact Espressif for further support.
We can help you locate specific VisualGDB settings that correspond to specific properties of the components, however we are not able to offer help understanding the inner workings of ESP-IDF or other 3rd-party frameworks that are not directly maintained by us.
October 16, 2019 at 21:22 in reply to: CMSIS-DAP device showing up multiple times and debug fails #26185support
KeymasterHi,
The “debugging exited without any breakpoint hits” error was caused by incorrect propagation of CMAKE_C_FLAGS that might got cached on your side. Please try deleting the entire VisualGDB\Debug directory and rebuilding the project.
If the breakpoint still doesn’t work please try hardcoding asm(“int3”) in the main() function to trigger an unconditional breakpoint. If the breakpoint triggers, but the source code is not shown, please double-check that the build.ninja file contains the -g”, tine FLAGS statement for the main file, e.g.:
build src/CMakeFiles/openocd.dir/main.c.obj: C_COMPILER__openocd ../../src/main.c || cmake_object_order_depends_target_openocd FLAGS = -std=gnu99 -Werror=incompatible-pointer-types -g -DPKGBLDDATE=\"2019-10-08\" -DRELSTR=\"\" -DGITVERSION=\"\"
support
KeymasterHi,
Although we have not specifically checked the inner workings of Simplicity Studio, the AXF extension does typically correspond to the regular ELF files.
Indeed, you can override the file extension via VS Project Properties, although due to the internal VS limitations the default extension needs to be the same for all project types, hence we picked the Linux-style empty extension as the default.
The “-g” option should normally not affect the linking and is only used during compilation, hence VisualGDB does not pass it to the linker. You can override this behavior via VS Project Properties -> Linker -> Command Line.
That said, the VisualGDB-level command line you mentioned is missing a linker script (the .ld file) that should be normally picked automatically once you select a device in the VisualGDB wizard. If this is a manually created stand-alone project, please ensure you have a linker script specified on the first page of VisualGDB Project Properties (and also ensure you have the -mcpu, -mfpu and -mfloat-abi passed to the linker as well, as those options affect the type of the pre-built standard C library used to link the executable).
support
KeymasterHi,
Sorry, the fully automatic renaming of the ESP-IDF projects is not yet supported. Hence, you would need to edit the Makefile (or CMakeLists.txt file if your are using CMake) in your project directory manually in order to rename the project. Simply search for the project name in that file, replace it and save the file. VisualGDB should automatically reload the project structure and show the new name.
October 16, 2019 at 15:23 in reply to: Arduino as components : Where to define global variable ESP32 ? #26180support
KeymasterHi,
For Arduino projects please use the first page of VisualGDB Project Properties to manage preprocessor definitions and other global options.
For ESP-IDF projects please use the VS Project Properties of a specific ESP-IDF component to define exported preprocessor macros (those macros will apply to all components in a project, not just the selected component). You can access the properties of the main component via the Properties command for the project node itself.
October 16, 2019 at 15:22 in reply to: ESP-IDF, arduino as component : Where to place third party librairies ? #26179support
KeymasterHi,
ESP-IDF projects do not use automatic library discovery like Arduino ones and require the libraries to be wrapped as ESP-IDF components. You can read more about the components in the ESP-IDF documentation. Once you get an understanding of the component structure you need for your project, simply use VisualGDB’s Add New Item command in the component list to create the necessary components.
support
KeymasterHi,
It is still on the roadmap, however it is hard to give any estimates currently, we are prioritizing a few other features over it, sorry.
support
KeymasterThanks for the repro. We have added this to our investigation queue, however due to the current amount of investigated issues and their priorities, it may take 2-4 weeks to fully process this.
support
KeymasterHi,
The .axf extension is used by the Keil compiler for the ELF files. VisualGDB follows the Linux naming convention for the built files, hence the ELF files it produces have no extension. I.e. you can find an equivalent of the AXF file for your project under the following path:<Project Directory>\VisualGDB\Debug\EmBGM13P22F512GA_Test01.
The .rsp files are used to pass the command lines of the tools, avoiding the Windows command line length limitation of 8192 characters. They do not contain any code or symbols on their own.
October 15, 2019 at 00:29 in reply to: CMake project not recognizing header files in sysroot/usr/local/include #26158support
KeymasterSorry, it looks like you did not add “VERBOSE=1” to the GNU Make command-line arguments (see our previous reply), hence Make did not dump the gcc command lines.
Please try adding it as suggested and share the updated log that should include the exact gcc command lines used to build the code.
support
KeymasterHi,
Yes, simply use the Advanced Mbed Project Subsystem and you should be able to use the latest mbed version out-of-the-box.
support
KeymasterUnfortunately, it’s hard to suggest anything specific without knowing the exact steps to reproduce the problem.
Please describe the steps required to reproduce it, starting from creating a new project (see this page) and we should be able to suggest what is going on.
support
KeymasterHi,
The easiest way to achieve this would be to use the CMake-based projects and add the following constructs to the CMakeLists.txt files:
if (CMAKE_BUILD_TYPE EQUAL "DEBUG") set(CONFIG_SPECIFIC_MACROS CONTROL2) endif()
and then simply add ${CONFIG_SPECIFIC_MACROS} to the regular list of preprocessor macros via VS Project Properties. This will affect both build and IntelliSense.
If it doesn’t work, please let us know and we will help you configure everything.
October 12, 2019 at 04:17 in reply to: CMake project not recognizing header files in sysroot/usr/local/include #26146support
KeymasterStrange. Please try enabling verbose build (add “-v” to Ninja command-line arguments or “VERBOSE=1” to GNU Make command line arguments via VisualGDB Project Properties -> CMake Proejct Settings -> Ninja/Make command) and then build the project again.
It will show the exact command lines used by the build system for each file. Please locate the command line for any file from that library and check what is going on (e.g. ${CMAKE_SYSROOT} got expanded incorrectly, or the path is not present in the command line at all).
If you are not sure, please post the corresponding command line from the build log and your updated target_include_directories() statement and we will help you understand it.
P.S. You can also try using our CMake Debugger to quickly understand what is going on. It allows stepping through CMake statements and will evaluate variables like ${CMAKE_SYSROOT}.
-
AuthorPosts