Windows support issues

I’m a professional embedded system engineer.
I use tools hosted on Windows because Windows is more backwards-compatible than any Linux variant, and more stable than any Unix variant except BSD. I achieved this viewpoint when I realized that in order to work on Linux code, I would have to install Vmware, and the environment files for several Linux systems… under Windows. Alternatively, I could just use Windows-hosted tools.

The exact issue is that I bought a Hifive (Thanks!) And then I installed the Arduino system.
The screen shot is attached, but the message is “Tool openocd is not available for your operating system.”

Strange. OpenOCD clearly is available for Windows:

http://openocd.org/getting-openocd/

You don’t mention what version of Windows you use.

Unfortunately I don’t have anything running Windows to test on. All the HiFive1 stuff worked right away on my linux and OSX boxen.

Ray,

We’d be happy to support Windows with the package, but the problem is that all our flows so far depend on compiling from the sources: riscv-gnu-toolchain and openocd in http://github.com/freedom-e-sdk. The Arduino package basically is just a distribution of those sources compiled on the target host OS.

We’ve heard reports of people getting riscv-gnu-toolchain to compile under Cygwin environments on Windows, but not in a way that we’ve found foolproof for Windows. We’ve also heard of a few other techniques which we are experimenting with, but so far haven’t found a really robust way to do the compilation under Windows.

If you have ideas, we’d be happy to hear them.

Thanks,
Megan

[quote=“rgvandewalker, post:1, topic:358”] “Tool openocd is not available for your operating system.”
[/quote]

This is true as SiFive don’t currently supply a Windows binary of OpenOCD as they do for MacOSX and linux. From the JSON Arduino manifest SiFive provide:

{ "version": "b474c22b33be7fa4969c0dfa9ccf172ce1bab5d0", "name": "openocd", "systems": [ { [...] "host": "x86_64-pc-linux-gnu", [...] }, { [...] "host": "i686-pc-linux-gnu", [...] }, { [...] "host": "x86_64-apple-darwin", [...] } ] }

There’s a fair bit of detail about compiling and running OpenOCD under Cygwin in this thread which may be helpful though.

I’m using windows 10; I already have cygwin installed. (Alas.)

This is true as SiFive don’t currently supply a Windows binary of OpenOCD as they do for MacOSX and linux.

I think this has changed in the last few months. I was able to download Windows builds of OpenOCD and GCC from SiFive at the bottom of this page: https://www.sifive.com/products/tools/

But, those builds are not listed in the JSON Arduino manifest that you mention.

Would someone at SiFive updating the JSON file be enough to make the Arduino IDE work on Windows? Or are there other hurdles?

As Megan said back in February they’re not happy with how it worked on Windows. I believe the currently recommended way to develop on Windows is to use Linux in a VM, which works well.

Hi Brandon,

We are in the process of adding Windows support for Freedom Studio now which should, by extension, enable Arduino support on Windows too.

In that process we have noticed some issues with the Windows version of the OpenOCD build currently on the website and the FTDI interface on the HiFive1 board.

Adding support for Windows is very important to us and we hope to enable everyone soon. For the moment, @brucehoult has the right suggestion, please use a Linux VM for now if you can.

Excellent, thanks for the reply.

I just built the tools successfully on a Linux laptop. I ran into a problem with some of the demo code, but I’ll explain that in a separate post.

Nine months later and still no Windows support.
Arduino 1.8.5 still gives the same error: ‘Tool openocd is not available for your operating system’.
A new human can be built in nine months, but not a Windows toolchain it seems.

A new human can be built in nine months, but not a Windows toolchain it seems.

Yes, but the universe has already been working on that project for 13.8 billion years, and it still has plenty of bugs to iron out! :face_with_raised_eyebrow:

1 Like

Please take a look at the https://github.com/westerndigitalcorporation/CincoWinPkg repo.

In our cinco fork, we enabled HiFive1 Arduino support on Windows, switched from 32-bit to 64-bit toolchain, made several Arduino core code improvements and optimizations (tuning clocks and delays accuracy, stack and code size, interrupts, OpenOCD) and enabled HiFive1 interoperability with LCD, touch screen, RF, SW UART, SW I2C, tone, servo and smart LED (see the “Examples for HiFive1” after installing the package).

The source code is currently hosted here https://github.com/westerndigitalcorporation/cinco/tree/SeptemberUpdate with an intention to upstream it back into SiFive’s cinco repo after our next major release.

1 Like

Hi Michael,

I tried your fork on Windows 7 and Arduino 1.8.4 and get the “openOCD not available on your OS” error. I installed fresh Arduino 1.8.7 and still get that error. I though your fork had solved that. Did I get you wrong?

Hi @dagema,

We tested everything with Arduino IDEs 1.6.12 - 1.8.6 on Windows 10 as I stated in the README.

Today morning I tested the installation with the latest Arduino 1.8.7 on Windows 7 and openOCD is working as expected. See the attached screenshot.

The “openOCD not available on your OS” error usually happens if one tries to install the HiFive1 board package with JSON file from an original cinco repo that does not support Windows yet. Please follow the installation steps in this README.

Also, please make sure that you have correctly installed SiFive and FTDI USB drivers:

  1. Connect your HiFive1 board to the USB port.
  2. Install HiFive1_Driver.exe as specified in the README.
  3. If the FTDI driver is not installed on your computer download and install it from here.

Hi Michael,

I actually did suspect that, which is why I did a fresh install of Arduino. But no matter what I do, I cannot get the SiFive entry in the Board Manager cleaned out. I uninstalled Arduino, deleted all known connected directories, rebooted before again installing Arduino, repeated the process using a commercial uninstaller (IObit), and scanned the registry for any SiFive entries. Nothing has helped. I suspect I will have to completely uninstall Cygwin to solve the problem, assuming that it has not been burned into the silicon somewhere.

Anyway, I tried your fork on another machine which has never before heard of SiFive, and it works just fine there.

Thanks!

I am glad it worked for you!

@dagema
I will have to completely uninstall Cygwin…

You may want first to try the Arduino 1.8.6 + Cinco on Windows deployment package we prepared for schools. Just unzip it into the desired location on your hard drive and you are done. Assuming you have the HiFive1 USB driver already installed, just launch the IDE by running the Arduino.exe from within the unzipped directory.

1 Like

That works on my “problem machine” , so I can keep Cygwin. Thanks again!

1 Like

Hi Micahel,

Using your fork, I also find the Arty available in the SiFive boards selection. But when I try “Blinky” with the Arty, it compiles well mannered, but the upload fails:

Is the fork unintended for use with the Arty/Olimenx OpenOCD JTAG ARM-USB-TINY-H setup?

Hi Michael,

Very nice work! Please consider the following as an observation rather than issue report.

I like to hang usb devices onto a router device (FritzBox) so that I can work them at various remote computers. When I try to use the HiFive1 remote with your fork, the router correctly enumerates the device with description “FTDI Dual RS232-HS” , but the installed Windows driver renames the device to “HiFive1 FTDI Driver”, which prevents the device from being found during the upload after compile:


grafik

This release is tailored to HiFive1 board. The Arty code is kept in place “as is” and generally should work when used with Olimex_Driver.exe which comes with SiFive’s Freedom Studio.