Forum Replies Created
-
AuthorPosts
-
thomas.kunze@gmx.comParticipant
Thanks. This worked fine.
thomas.kunze@gmx.comParticipantI guess this happened because I cleared “Binary directory” in cmake project settings. My cmake-file doen’t support out-of-source builds. So need to clear this to make builds work.
thomas.kunze@gmx.comParticipantHere is the file. I will try to reproduce this.
Attachments:
You must be logged in to view attached files.thomas.kunze@gmx.comParticipantAn other problem your arduino builder needs to merge upstream. It doesn’t support {compiler.libraries.ldflags} .
See https://github.com/BoschSensortec/BSEC-Arduino-library/blob/6b8e676f781499c217bed056981f00888e9221d8/README.md
{compiler.c.elf.extra_flags} still works. But now I have to decide if I want to be able to build with arduino-ide but not with visualGDB or vice versa.
If you want to reproduce the build problem above yourself: here is the project file: https://github.com/thelsing/knx/blob/cc2704b264acb145b243744ad855f609b0f2b54b/visualstudio/knx-bme680.vgdbproj
thomas.kunze@gmx.comParticipantThe problem was the -fqbn parameter. I upgraded the esp8266-arduino package. It seems that the board name changed, but visualGdb still used the old name:
visualgdb: -fqbn=esp8266:esp8266:nodemcuv2:CpuFrequency=80,VTable=flash,FlashSize=4M1M,LwIPVariant=v2mss536,Debug=Serial,DebugLevel=None____,FlashErase=none,UploadSpeed=115200 arduino: -fqbn=esp8266:esp8266:nodemcuv2:xtal=80,vt=flash,exception=disabled,eesz=4M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200
I removed my board (with Add->Manage Arduino Boards). And readded it. Now the it works again. The properities in BuildSettingsExtensions section in the vgdbproject file were wrong. It would be nice if VisualGDB could check if the configured properties match the board.
Regards,
Thomas
- This reply was modified 5 years, 8 months ago by thomas.kunze@gmx.com.
- This reply was modified 5 years, 8 months ago by thomas.kunze@gmx.com.
thomas.kunze@gmx.comParticipantI deinstalled Arduino 1.8.5 (1.8.8 from Windows store was still there). The build fails because of missing ctags.exe (prototype generation) The windows store versions binaries are under C:\Program Files\WindowsApps
So I deinstalled the windows store version too and installed the “normal” arduino 1.8.8. Suprise! It installs its packages under AppData as usal. The Documents/ArduinoData stuff seems to be specific to the windows store version of arduino.
It seems to be a PITA to support both versions. 😉
The project still doen’t build. The problem is that in the compiler command line there is -DF_CPU={build.f_cpu} instead of -DF_CPU=80000000L
I will compare the commands in more detail later.
thomas.kunze@gmx.comParticipantThe installed Arduino version seems to be independent of the visualgdb one right?
I just reinstalled the esp8266 platform in the visualGdb package manager and can build a hello world again.
The package manager seems to thing that esp8266 core 2.5-beta3 is newer than 2.5, but I can still install the correct one manually.
But something still seems to be broken. I get
<command-line>(0,7): error : token “{” is not valid in preprocessor expressions
C:\Users\tkunze\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266\core_esp8266_si2c.c:115:5: note: in expansion of macro ‘F_CPU’
#if F_CPU == FCPU80The same project compiles fine with arduino ide (tested 1.8.5 and 1.8.8)
Regards,
Thomas
thomas.kunze@gmx.comParticipantMore suggested features:
- vertical scrollbar in arduino console
- global color settings for arduino console
thomas.kunze@gmx.comParticipant“Build and Flash” builds the whole solution. My project wasn’t configured for build in the configuration manager. So it wasn’t build. I think “Build and Flash” should only build the active project and flash it an ignore the configuration manager as the build command from context menu does.
-Projects have no arduino icon in the solution-explorer in the current build. (only a red dot with an x). Building is broken, too:
—— Build started: Project: BcuTest, Configuration: Debug Arduino Genuino Zero (Native USB Port) ——
VisualGDB: Run “C:\Program Files (x86)\Sysprogs\VisualGDB\Arduino\arduino-builder.exe -compile -logger=machine -fqbn=arduino:samd:arduino_zero_native -build-path C:\Users\tkunze\Source\knx-stack\BcuTest\Output\Arduino_Genuino_Zero__Native_USB_Port_\Debug -unoptimize=sketch -verbose -hardware “C:/Program Files (x86)/Arduino/hardware” -hardware C:\Users\tkunze\AppData\Local/Arduino15/packages -tools “C:/Program Files (x86)/Arduino/tools-builder” -tools C:\Users\tkunze\AppData\Local/Arduino15/packages -built-in-libraries “C:/Program Files (x86)/Arduino/libraries” -libraries C:\Users\tkunze\Documents/Arduino/Libraries -prefs=runtime.tools.avrdude.path=C:\Users\tkunze\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -prefs=runtime.tools.arduinoOTA.path=C:\Users\tkunze\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.2.0 sketches/BcuTest.ino” in directory “C:\Users\tkunze\Source\knx-stack\BcuTest” on local computer
————————————————————-
Command exited with code -1
Executable: C:\Program Files (x86)\Sysprogs\VisualGDB\Arduino\arduino-builder.exe
Arguments: -compile -logger=machine -fqbn=arduino:samd:arduino_zero_native -build-path C:\Users\tkunze\Source\knx-stack\BcuTest\Output\Arduino_Genuino_Zero__Native_USB_Port_\Debug -unoptimize=sketch -verbose -hardware “C:/Program Files (x86)/Arduino/hardware” -hardware C:\Users\tkunze\AppData\Local/Arduino15/packages -tools “C:/Program Files (x86)/Arduino/tools-builder” -tools C:\Users\tkunze\AppData\Local/Arduino15/packages -built-in-libraries “C:/Program Files (x86)/Arduino/libraries” -libraries C:\Users\tkunze\Documents/Arduino/Libraries -prefs=runtime.tools.avrdude.path=C:\Users\tkunze\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9 -prefs=runtime.tools.arduinoOTA.path=C:\Users\tkunze\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.2.0 sketches/BcuTest.ino
Directory: C:\Users\tkunze\Source\knx-stack\BcuTest
Environment: EFP_BASE=C:/Users/tkunze/AppData/Local/VisualGDB/EmbeddedEFPs|TESTFW_BASE=C:/Users/tkunze/AppData/Local/VisualGDB/TestFrameworks
VisualGDB: Error: Command-line action failed
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========– For flashing failures: I will post the command output the time it fails.
Unfortunately the Zero doesn’t seem to have a reset sequence. Only a soft erase sequence.
A bit offtopic: is the olimex arm-usb-ocd-h with the swd adapter supposed to work with arduino zero?
- This reply was modified 6 years, 2 months ago by thomas.kunze@gmx.com.
thomas.kunze@gmx.comParticipantHi,
I tried this build today it works really great. Some minor things I noticed:
- the “Build and Flash” command does not work. I have to build first, and flash later. Otherwise Flashing fails and the device can’t be flashed with VisualGDB any more (flash was already erased, so it only starts in bootloader mode and can’t be reset any more. Flashing with arduino ide works as it waits a while until a new com port becomes available. I can simulate the device reset by pressing the reset button (or unplug an replug the usb cable)
- When creating a new project I can only choose the samples from my chosen platform. I would like to also choose the general arduino samples and the samples of my installed arduino libs.
- It would be nice to be able to change the colors of the serial console (background, old content, new content). The serial console is really awesome now btw.
- The “flashing successful” messagebox comes even if flashing fails.
- I don’t get why it is possible to add multiple sketches to a project. I get compile errors (multiple definitions of setup() and loop()) when I do so.
- I understood where I should place the TerminalResetSequence. But I don’t know what I should put there to reset the arduino zero.
thomas.kunze@gmx.comParticipantHere are some more entries of the acitivity log:
<entry>
<record>889</record>
<time>2018/08/23 20:32:56.048</time>
<type>Information</type>
<source>MruList</source>
<description>Entering OnAddVerbInvoked</description>
</entry>
<entry>
<record>890</record>
<time>2018/08/23 20:32:56.048</time>
<type>Information</type>
<source>MruList</source>
<description>Entering AddItem. Persistence data for item: C:\Users\tkunze\Source\knx-samd\examples\knx-samd-demo\knx-samd-demo.ino</description>
</entry>
<entry>
<record>891</record>
<time>2018/08/23 20:32:56.048</time>
<type>Information</type>
<source>MruList</source>
<description>Entering TryPromoteItem</description>
</entry>
<entry>
<record>892</record>
<time>2018/08/23 20:32:56.048</time>
<type>Information</type>
<source>MruList</source>
<description>Entering PromoteItemAt and found the index of the item to be 0</description>
</entry>
<entry>
<record>893</record>
<time>2018/08/23 20:33:02.513</time>
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Microsoft.VisualStudio.VC.Editor.TemplateBarAdornmentManager.AddTextView(IWpfTextView textView) at Microsoft.VisualStudio.VC.Editor.TemplateBarAdornmentFactory.TextViewCreated(IWpfTextView textView) at Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.<>c__DisplayClass251_0.<BindContentTypeSpecificAssets>b__1() at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.CallExtensionPoint(Object errorSource, Action call) — End of stack trace from previous location where exception was thrown — at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)</description>
</entry>thomas.kunze@gmx.comParticipantThe workaroud for resetting the device sounds like a good idea to me.
I did some tests with my arduino zero clone. First VisualGDB could not flash the device. It would stay in “bootloader mode” and in the flash popup was some exception. Flash was already deleted, because after hardware reset the device was still in bootloader mode. I flashed the device with arduino ide. I had to press the reset button on the device during the flashing process because arduino ide could not reset the device as it was already in bootloader mode. (After restart of VS flashing worked again after I reflashed the device with arduino ide. I could no reproduce this error any more.)
Because the flashing magic in visual gdb happends behind the “Uploading sketch” popup. I like the arduino flashing was with console output better. So please integrate flashing in the build output again or add an option for that? I also don’t like the “Flashing successful” messagebox. In the code->flash->debug workflow you always have to close this anoying box.
The build in serial console is great. The startup is a bit slow even if the window is already open (2s to first println in setup()). Maybe this is because the console is only connected after I close the messagebox?
When I want’t to flash the device when console is still connected I get an “Access to Com7″ denied” error. After I disconnect the console it work. Maybe this can be automated?
After closing the console window the connection stays open. I think it should ask if the connection should be close. So the user knows that it stays open otherwise.
Reseting the device closes the connection of the serial console. Maybe it could reconnect automatically after the COM port becomes available again?
Some options if the console should be cleared on disconnect/reconnect would be nice. This way I could produce some output on serial console, change some code, flash device, produce output, compare to last output by scrolling up.
Sometimes I get a visual studio exception. Not sure if it’s related to visualgdb. It says that I should inspect the ActivityLog.xml. Here is the entry from there:
<entry>
<record>893</record>
<time>2018/08/23 20:33:02.513</time>
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Microsoft.VisualStudio.VC.Editor.TemplateBarAdornmentManager.AddTextView(IWpfTextView textView) at Microsoft.VisualStudio.VC.Editor.TemplateBarAdornmentFactory.TextViewCreated(IWpfTextView textView) at Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView.<>c__DisplayClass251_0.<BindContentTypeSpecificAssets>b__1() at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.CallExtensionPoint(Object errorSource, Action call) — End of stack trace from previous location where exception was thrown — at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)</description>
</entry>- This reply was modified 6 years, 3 months ago by thomas.kunze@gmx.com.
thomas.kunze@gmx.comParticipantSome more issues:
- It’s not possible to add .vgdbproj files to an existing solution with VisualStudio. You have to edit the .sln-file manually.
- I can’t choose OpenOCD as a debug method for esp8266 NodeMCU Board.
BTW: Is it ok to report additional issues here or should I create a new thread?
thomas.kunze@gmx.comParticipantHi,
Flashing works fine now. I put the Visual Studio files in their own folder. Now there are now more “Spurios .vs folder” warnings. But I noticed some other things:
- Special chars in build output are broken for info lines:
info: Using board ‘arduino_zero_native’ from platform in folder: C%3A%5CUsers%5Ctkunze%5CAppData%5CLocal%5CArduino15%5Cpackages%5Carduino%5Chardware%5Csamd%5C1.6.19
===info ||| Using library {0} at version {1} in folder: {2} {3} ||| [FlashStorage 0.7.1 C%3A%5CUsers%5Ctkunze%5CDocuments%5CArduino%5CLibraries%5CFlashStorage ]- “Program Flash Memory” should build the project if necessary, or better ask if it should.
- I like SmarTTY. But there are some small issues with it:
- I have to disconnect SmartTTY to flash the device and reconnect after.
- It disconnects when device is reset with button. I have to reconnect manually.
- Does this work with the buildin TTY of Custom Edition?
- I think a serial console should be included in a “Arduino Edition” of VisualGDB because most sketches use serial console for debugging printouts. Or are they redirected to “Program output” during debugging? (I don’t have a JTAG-SWD adapter yet, so I can’t test debugging.)
- It would be nice to be able to reset the connected device from context menu.
- It would be nice to have “Build”, “Flash”, “Build & Flash”, “Reset”, “Serial Console” Buttons in the VisualGdb Toolbar.
thomas.kunze@gmx.comParticipantDoes VisualGdb provide something like the Serial Monitor of arduino IDE? If yes, where is it hidden?
-
AuthorPosts