Running on other drives?

Discussions and support about ChibiStudio, the free development environment for ARM.
steved
Posts: 834
Joined: Fri Nov 09, 2012 2:22 pm
Has thanked: 12 times
Been thanked: 138 times

Running on other drives?

Post by steved »

Is the "C:\" drive effectively hard-coded into the ChibiStudio package, or is it reasonably easy to change?

(I've got a machine where the hard drive was delivered split into a small C: drive and a large D: drive, so Chibi would be better on D:)
User avatar
Giovanni
Site Admin
Posts: 14891
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Running on other drives?

Post by Giovanni »

Hi,

You can place it anywhere (without spaces in path) but you need to reimport projects in workspace and set the CHIBIOS workspace variable in preferences.

Giovanni
steved
Posts: 834
Joined: Fri Nov 09, 2012 2:22 pm
Has thanked: 12 times
Been thanked: 138 times

Re: Running on other drives?

Post by steved »

Mostly works fine, but a couple of points:
1. I needed to edit the paths in the startup batch files to point to drive D:
2. The 'linked resources' file list (os, board etc) disappears on reimporting the projects, presumably due to non-existent absolute file locations.
3. Most important (to me), I've cloned a new set of board files within the hal/boards directory, and edited the XML to suit my board. But the 'generate files from Configuration Data' option doesn't appear to do anything. Is this the correct method? Are there prerequisites I'm not satisfying?
User avatar
Giovanni
Site Admin
Posts: 14891
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Running on other drives?

Post by Giovanni »

Hi,

Linked resources use a workspace variable CHIBIOS, if you change the variable then all projects will work with the new path.

About point 3, it should work, I use it from a different path without problems. You need to click the .chcfg file and use the button that appears on the toolbar. The processor uses a relative path for generated files, it is .. by default. remove board.* and see if those are regenerated.

Giovanni
steved
Posts: 834
Joined: Fri Nov 09, 2012 2:22 pm
Has thanked: 12 times
Been thanked: 138 times

Re: Running on other drives?

Post by steved »

Giovanni wrote:Linked resources use a workspace variable CHIBIOS, if you change the variable then all projects will work with the new path.

Works fine, thankyou.

Giovanni wrote:About point 3, it should work, I use it from a different path without problems. You need to click the .chcfg file and use the button that appears on the toolbar. The processor uses a relative path for generated files, it is .. by default. remove board.* and see if those are regenerated.

Tried various combinations of file locations, including a different machine, without any success.
There's quite a log entry in Eclipse:
!ENTRY org.eclipse.ui 4 0 2016-07-25 14:37:41.087
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.ClassCastException: org.eclipse.wst.xml.core.internal.document.ProcessingInstructionImpl cannot be cast to org.eclipse.core.resources.IFile
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:62)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:825)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:701)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$6(HandledContributionItem.java:685)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:613)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Caused by: java.lang.ClassCastException: org.eclipse.wst.xml.core.internal.document.ProcessingInstructionImpl cannot be cast to org.eclipse.core.resources.IFile
at org.chibios.tools.eclipse.config.handlers.GenerateFiles.execute(GenerateFiles.java:79)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
... 37 more

Two things I've noticed in the XML file:
a)
xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd">

Does this mean that the machine needs Internet access to run the conversion utility? (The machine I've been using does have access, but that would not always be the case).
b)
<templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path>

I couldn't find this path anywhere - is it relevant?

This is ChibiStudio V17, BTW, updated today with the latest ChibiOs plugin.
User avatar
Giovanni
Site Admin
Posts: 14891
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Running on other drives?

Post by Giovanni »

The URLs of schemas are provided internally by the plugin, no need for internet access.

That stack trace makes me think that the plugin is not correctly installed or recognized for some reason. Does it work in its standard path? Does the new path contains spaces or other peculiarities?

Giovanni
steved
Posts: 834
Joined: Fri Nov 09, 2012 2:22 pm
Has thanked: 12 times
Been thanked: 138 times

Re: Running on other drives?

Post by steved »

Installation is in D:\ChibiStudio rather than C:\ChibiStudio - so as simple a change as possible! Its a fresh install done by unzipping from the root directory of D:, then changing the names in various places as noted.
Didn't appear to work on another machine where the software's installed in C:\ChibiStudio - looks like that's got ChibiStudio 12 installed, so could be other issues, plus that machine's had some problems recently.
I've got another machine with the installation in C:\ where I can try it in the next week or so.
User avatar
Giovanni
Site Admin
Posts: 14891
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Running on other drives?

Post by Giovanni »

Try installing the latest 32bits Java too.

Giovanni
steved
Posts: 834
Joined: Fri Nov 09, 2012 2:22 pm
Has thanked: 12 times
Been thanked: 138 times

Re: Running on other drives?

Post by steved »

Giovanni wrote:Try installing the latest 32bits Java too.

Giovanni

Its actually a 64-bit OS (W7 Pro).
Java version currently 1.8.0_45

Will try an update in a few days time.
User avatar
Giovanni
Site Admin
Posts: 14891
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: Running on other drives?

Post by Giovanni »

Eclipse requires the 32 bits JRE installed, 32 and 64 bits can coexist.

Giovanni
Post Reply