Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
In order to use semihosting or serial output, it needs to be properly supported by the debugged program. I.e. the call to _write() should be routed to the code that outputs the data to either semihosting interface, or the serial port.
The semihosting-specific implementation of _write() is usually provided by the toolchain and can be used for regular embedded projects, however as Arduino uses its own build system, it won’t work there out-of-the-box. Our best advice would be to first get semihosting working on a regular embedded project for the same target, understand the involved compiler options (e.g. by comparing the .rsp files) and then try patching the Arduino build scripts to replicate them. That said, this will require non-trivial troubleshooting and may not work at all.
It could also be worthwhile to check whether the Arduino core for your device provides an existing setting that would enable this functionality.
support
KeymasterThanks, this makes sense. If the frequency is configured conditionally based on the DEBUG macro, it will indeed show different results in Debug and Release builds.
support
Keymaster@whinis, thanks for sharing this. The changes look good, however they would limit the scope of the importer to a handful of preselected devices, and may reduce compatibility with future updates on the Atmel START side, so we would currently keep the existing more generic implementation.
That said, please consider trying the new Embedded CMake Project Subsystem (available in VisualGDB 5.5 RC1). It supports converting individual frameworks into stand-alone frameworks (i.e. included with the project), and also provides convenient GUI for reassembling a stand-alone BSP and a number of stand-alone frameworks back into a shared BSP. This should simplify the handling of complex setups a shared core and a set of minor per-project customizations.
support
KeymasterThis is something to check with your build server documentation. From the VisualGDB side, as long as it’s launched with the correct environment, it will expand the variables as expected. You can try experimenting with .bat files, however as this is generally something outside VisualGDB’s control, the help we can provide with it is somewhat limited.
support
KeymasterHi,
Unfortunately, MSBuild doesn’t automatically pass custom properties to tasks (you can do it explicitly by patching the .targets files, but it’s generally not recommended). The easiest workaround would be to pass the setting via an environment variable. VisualGDB expands the environment variables together with the internal variables, such as $(ProjectDir).
support
KeymasterIn order to avoid additional clarification steps and get relevant help faster, please consider following our problem reporting guidelines. As your initial report compared debugging a debug configuration vs. running a release one, we assumed that the problem is caused by using a debugger. If running the debug build without debugging doesn’t work either (and release one works), most likely the lower optimization level of the debug build causes some kind of error (e.g. a stack overflow, memory corruption, or a timing bug). Please consider manually overriding the optimization level of the Debug configuration to match the Release configuration. If it helps, you can try changing optimization level for individual files, until you can find a specific file triggering the problem.
The Keil compiler is very different from GCC, so it is completely expected that switching a large project between the compilers would require some additional troubleshooting. If you prefer, you can configure VisualGDB to use the Keil compiler as well: https://visualgdb.com/tutorials/arm/keil/
support
KeymasterThanks for renewing your license. Regarding the frequency, most likely the program triggers several breakpoints before the USB requests get properly handled.
Please try removing all the breakpoints and make sure the device responds to the USB requests. If it still doesn’t work, please try programming the FLASH memory without debugging, restart the device, make sure it is recognized, and then try attaching to it as shown here: https://visualgdb.com/tutorials/arm/attach/
If attaching a debugger breaks further USB functionality, please try connecting to the device using the native debugger tool (e.g. ST-Link tool or J-Link Commander) instead. If this also breaks the USB functionality, most likely the board has insufficient power, or has some wiring issues.
support
KeymasterNo problem, we do not mind sharing the instructions. We simply prioritize requests for documentation based on the amount of affected users (we have recently published a lot of new documentation on common topics). As you have seconded the topic, we are happy to provide more details.
Once you import an Atmel START SDK into VisualGDB, it creates a BSP.XML file in the SDK directory that contains the information extracted from the SDK. Then, the BSP is registered with VisualGDB by creating a %LOCALAPPDATA%\VisualGDB\EmbeddedBSPs\arm-eabi\<id>.bsplink file pointing to the SDK directory.
The easiest way to support multiple imported SDKs would be to manually edit the BSP.XML file, changing the following elements:
- BoardSupportPackage/PackageID – change to unique names in order to avoid collision between multiple versions
- BoardSupportPackage/PackageDescription – set to any arbitrary string to help you distinguish the packages
- BoardSupportPackage/SupportedMCUs/MCU/UserFriendlyName – add an arbitrary suffix, such as ” (Basic)” or ” (Full)”. The suffix will be shown in VisualGDB GUI when selecting the device in the device list and won’t affect anything else.
Once you have changed the file, reopen the Tools->VisualGDB->Manage VisualGDB Packages window to trigger a reload of all packages. After that, you will be able to import another Atmel START SDK from another directory, and VisualGDB will keep both instances, since they will have different package IDs.
support
KeymasterIf the build always works, but the clean always fails, most likely some clean-specific setting (e.g. a custom post-clean step or a custom clean command) refers to an invalid hostname.
If you are not sure what causes it and cannot easily revert to a previous version of the project that worked successfully, please consider doing a side-by-side comparison of the broken project against a similar working project. I.e. compare the .vcxproj and .vgdbsettings files and try merging them until you can pinpoint a specific setting that triggers it.
support
KeymasterHi,
This looks like a network error:
The specified network name is no longer available.
Please double-check your DNS configuration or try using IP address instead of a host name for the target.
September 22, 2020 at 07:56 in reply to: Disable Unit Test Support for a single build configuration #29076support
KeymasterSorry, MSBuild projects share the same project structure (i.e. the set of source files) across all platforms and configurations, hence global settings like the test framework/BSP affect all configurations.
You can work around it by defining per-configuration preprocessor macros and #ifdef-ing out the code that calls test framework functionality, but the test sources will be still present in Solution Explorer.
support
KeymasterHi,
No problem, please see our answers below:
- There is no special GUI for custom mbed targets yet. As a workaround, please consider following the regular mbed instructions to create a custom target, and then patch the .vgdbproj file manually to specify the new target name. We are working on supporting custom targets properly and will release an update including this feature next week.
- Please make sure you use the Custom edition of VisualGDB and create a separate testing configuration per our tutorial. If it doesn’t work, please share the screenshots of the steps you perform and the output you observe, and we will help you troubleshoot this.
- VisualGDB manages the mbed profiles automatically. It will pick the debug/release profile based on the active configuration in Solution Explorer, and can additionally apply any changes made via the regular VS property pages of the project node (e.g. optimization level) by generating a temporary profile file.
support
KeymasterHi,
We usually remove the packages that have been superseded by bugfix updates. As long as the compiler and ESP-IDF version are the same, we remove the older versions to save space.
If you are looking for a specific older version of the ESP-IDF framework, please consider manually pulling it from git, replacing the version that is shipped with the toolchain.
support
KeymasterNo problem. We have added it to the backlog. As we are prioritizing several other issues over it, it may take a few weeks for us to fully investigate this and provide a workaround. We will post an update here once the issue is resolved.
support
KeymasterPlease see the following page for a detailed overview of various settings for MSBuild projects: https://visualgdb.com/documentation/projects/msbuild/
-
AuthorPosts