Closed sigmaaa closed 1 month ago
This update introduces configuration files for Java SE 17 in the Eclipse-based Java project, optimizing classpath settings and enhancing dynamic variable management for JTAG and GDB operations. Additionally, new user interface components and utility classes improve the Espressif IDF environment, streamlining the development process and expanding functionality for users.
File(s) | Summary |
---|---|
bundles/.classpath , bundles/.settings/org.eclipse.jdt.core.prefs , bundles/.settings/org.eclipse.pde.core.prefs |
Created new configuration files for classpath setup and Eclipse IDE preferences for Java SE 17. |
bundles/com.espressif.idf.core/OSGI-INF/l10n/bundle.properties , bundles/com.espressif.idf.core/plugin.xml |
Enhanced documentation and updated variable definitions for improved clarity in plugin configuration. |
bundles/com.espressif.idf.core/src/com/espressif/idf/core/DefaultBoardProvider.java , bundles/com.espressif.idf.core/src/com/espressif/idf/core/LaunchBarTargetConstants.java |
Introduced new classes and methods for managing board configurations and dynamic variables. |
bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java , bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFLaunchConstants.java |
Refactored code to utilize updated constant references for launch configurations. |
bundles/com.espressif.idf.core/src/com/espressif/idf/core/variable/*.java |
Added new enums and resolvers for managing dynamic variables related to JTAG and GDB. |
bundles/com.espressif.idf.swt.custom/build.properties |
Introduced a new build properties file for managing source and output directories. |
bundles/com.espressif.idf.debug.gdbjtag.openocd/* |
Enhanced GDB JTAG integration through UI changes and new message properties. |
bundles/com.espressif.idf.launch.serial.core/src/com/espressif/idf/launch/serial/util/ESPFlashUtil.java |
Updated constant DEFAULT_ARGUMENT_PREFIX for improved clarity regarding OpenOCD executable naming. |
bundles/com.espressif.idf.launch.serial.core/* |
Updated serial launch configurations by removing deprecated constants. |
tests/com.espressif.idf.core.test/* |
Modified test classes to reflect changes in constants and method updates. |
bundles/pom.xml , features/com.espressif.idf.feature/feature.xml |
Added module and plugin declarations to support the new SWT custom widgets. |
bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/NewSerialFlashTargetWizardPage.java |
Enhanced functionality for serial port management and configuration settings for ESP32. |
sequenceDiagram
participant User
participant IDE
participant CorePlugin
participant SWTPackage
User->>IDE: Configure Project
IDE->>CorePlugin: Update Board Configurations
CorePlugin->>SWTPackage: Initialize Custom Widgets
SWTPackage-->>IDE: Load UI Components
IDE-->>User: Display Enhanced Configuration UI
π° In a world of code, I hop and play,
With new tools and features brightening my day.
JTAG and GDB dance in the light,
Espressif's magic makes coding feel right!
So letβs celebrate with carrots and fun,
Hopping through changes, oh what a run! π₯β¨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Hi @sigmaaa I am getting this error when trying to flash with JTAG
Just on a side note I was able to flash and debug with all the default options fine. This occurred when I made a very minor change in the main file and compiled and tried changing the option from UART to JTAG in the launch configuration.
Hi @sigmaaa I am getting this error when trying to flash with JTAG
Just on a side note I was able to flash and debug with all the default options fine. This occurred when I made a very minor change in the main file and compiled and tried changing the option from UART to JTAG in the launch configuration.
Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit
Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit
Hi @sigmaaa tested it with basic build flash and debug seems to be working fine Please see if you can verify DFU I currently dont have the board with me to verify that.
Also when switching from to this branch from an other branch's workspace the launch configs seems to be working fine.
All tests done on windows
tested dfu, seems to be working fine
@sigmaaa hi !
Tested under: OS - Windows 11 ESP-IDF: v5.3
create project -> build ESP32 target -> edit target -> change target to any -> click "Finish" -> no pop-up to delete "build" folder
but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears
@sigmaaa hi !
Tested under: OS - Windows 11 ESP-IDF: v5.3
create project -> build ESP32 target -> edit target -> change target to any -> click "Finish" -> no pop-up to delete "build" folder
but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears
Hi @AndriiFilippov, fixed in the latest commit
I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.
STACK 0
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
at org.eclipse.jface.window.Window.open(Window.java:788)
at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Caused by: java.io.IOException
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)
serial_port variable value has not shown
@sigmaaa hi !
Tested under: OS - Windows 11
small UI fix: when window is minimized - no port info visible.
@sigmaaa hi !
shouldn't it be "read only" ?
@sigmaaa hi !
shouldn't it be "read only" ?
This was added to support creating a new target that is not yet available in the IDE. For example, the esp32p4 target is still not available in the IDE, but users can manually add it and build projects.
@sigmaaa hi !
Tested under: OS - Windows 11
small UI fix: when window is minimized - no port info visible. ![image](https://private-user-i
I wish we could provide a fix, but thatβs the case with every window, itβs not specific to Eclipse.
I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.
STACK 0 com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101 at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744) at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092) at org.eclipse.jface.window.Window.open(Window.java:788) at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133) at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154) at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605) at org.eclipse.equinox.launcher.Main.run(Main.java:1481) at org.eclipse.equinox.launcher.Main.main(Main.java:1454) Caused by: java.io.IOException at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)
Hi @kolipakakondal, I'm not able to reproduce this one. Probably it's not related to the PR since the serial port part hasn't been touched
serial_port variable value has not shown
we're having this because the ${serial_port} is not a real dynamic variable and we are manually replacing it with a port during the flash. I'll introduce it now. Thanks for noticing it
serial_port variable value has not shown
we're having this because the ${serial_port} is not a real dynamic variable and we are manually replacing it with a port during the flash. I'll introduce it now. Thanks for noticing it
fixed in the last commit
@AndriiFilippov FYI
I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.
STACK 0 com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101 at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744) at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092) at org.eclipse.jface.window.Window.open(Window.java:788) at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133) at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154) at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605) at org.eclipse.equinox.launcher.Main.run(Main.java:1481) at org.eclipse.equinox.launcher.Main.main(Main.java:1454) Caused by: java.io.IOException at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)
@sigmaaa hi ! able to reproduce it. MacOS
create project - connect board - go to Edit Launch Target - select port - click "Finish" - disconnect board - click Edit Launch Target -> it stuck. Error logs same as @kolipakakondal :
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbserial-120
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
at org.eclipse.jface.window.Window.open(Window.java:788)
at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
Hi @AndriiFilippov,
thanks for finding a way to reproduce it. Fixed in the latest commit. Also added new icons for dynamic variables to hide and show
@sigmaaa hi !
Tested under: OS - Windows 11 / MacOS / Linux Ubuntu
able to create new target β able to delete target β able to flash / monitor β able to debug β able to erase flash β switch from old workspace without problems β
LGTM π
Description
Updated the target editing page with the flash option and the board selection. Updated launch configuration and debug configuration
Fixes # (IEP-1297)
Type of change
Please delete options that are not relevant.
How has this been tested?
Test Configuration:
Dependent components impacted by this PR:
Checklist
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Chores