The SiFive RISC-V port of FreeRTOS

Has anyone worked with this port? The code that is listed in the download for this port (presumably common demo code) is OK, but opening the demo project itself displays many unexplained directories that seem to be Microchip fpga, mpfs, or PolarFire code that isn’t documented at all and results in hundreds of build errors for the project (mostly multiple variable definitions, incorrect paths for headers, etc.). I thought these demo projects were supposed to build correctly out-of-the-box?

Are you building the PolarFire project, or one of the other SiFive projects?

Grateful if you can link to the documentation page on for the demo you are building so I can try building too.

It’s the ‘RISC-V_RV32_SiFive_HiFive1-RevB_FreedomStudio’ project, although I’m using the SoftConsole IDE (also Eclipse-based).

I suspect that is your problem then. It is a SiFive FreedomStudio project, that doesn’t know what a Microchip PolarFire is - you are using tools for the PolarFire which seem to expect other things to be installed to meet it’s dependencies.

Exactly. My question, though, is why is there PolarFire FPGA code in a port of FreeRTOS that targets the HiFive platform. Also, as far as I know, there aren’t any PolarFile tools that could manage this code.

There isn’t. The only dependency on polarfire is in the tools you are using.

The only tools I am using are the CDT builder in SoftConsole and the gnu risc-v toolchain. If they see multiply defined variables or incorrect include paths they are going to fault regardless of whether it’s PolarFire code or something else. Without any switches or #defines, they are going to try and build all the code directories in the project. I don’t see anything in the build to enable bypassing the PolarFire code so that it doesn’t conflict with the FreeRTOS source.

I just tried following the instructions to build the project in FreedomStudio
and didn’t encounter any problems. I’ve attached the compiler output in case that is useful. (5.7 KB)

That’s great. The remote computer I’ve been working on has been down for a couple of days, but when it comes back online, I’ll install FreedomStudio and see if it works for me too (and then try and figure out what it’s doing that SoftConsole isn’t). Thanks.

I’m not sure why you expect it to build in SoftConsole.

Primarily because I just did get it to build in SoftConsole