Failure to import standalone project into Freedom Studio

Hello,

I’m trying to build and debug a standalone project from within Freedom Studio (4.7.2.2020-06-3).

I’m not sure if the following should work, but here are the steps:

  1. create a standalone project from freedom-e-sdk:

$ make PROGRAM=example-freertos-minimal TARGET=qemu-sifive-e31 STANDALONE_DEST=~/tmp/test

  1. Try to import ~/tmp/test into Freedom Studio from the menu File -> Import… -> Other -> Freedom E SDK Software CLI Project
    Leave “Copy project files into the workspace” unchecked.

After clicking “Finish”, the dialog persists and won’t go away unless I click "cancel. The resulting project folder is empty.

Also, the “Scan for Build Targets” menu option doesn’t seem to work for a standalone project generated with freedom-e-sdk and imported using “File -> Import… -> Existing Projects into Workspace”.

Thanks for reporting this issue twpedersen and welcome to the SiFive forums.

We’ve reproduced the issue and have developed a fix. This issue should be fixed in the next release of Freedom Studio.

Until the next release of Freedom Studio, we recommend that you use the New Project Wizzard within Freedom Studio to create a project. This will setup all the soft links that Freedom Studio requires for a project.

Thanks a lot Jim for the fix! I did notice the New Project Wizard output looked similar with correct Build Targets and Debug Configurations.

Currently the freedom-e-sdk provides a nice abstraction for the hardware specific bits and lets you easily share project code across targets. Exporting as a standalone project breaks down this abstraction and means you have to maintain one project for each target. Instead, it would be nice if we could create a Freedom Studio project using a custom freedom-e-sdk, but leave the source files intact (don’t copy / export as standalone into workspace).

Maybe this doesn’t really make sense in the eclipse model (multiple projects with different (PROGRAM, TARGET) tuples sharing the same source tree), but it would be helpful for eg. easily switching to a qemu target for debug without having to resync the src/ directory.

Anyway just a thought. Thanks for being responsive :slight_smile:

You’re in luck. Freedom Studio supports this model. The User Guide has information on how to do this. The tl;dr is that there are two check boxes in the New Project Wizard that let you configure the new project to use the BSP and/or Metal Library from the IP package.

Snag_3666ac26

This feature works with all existing IP packages. There is one minor issue with newer IP packages that results in extra work being done when building the project for the first time, but that too is already fixed and will be in the next release.

It is also possible to update the properties of an existing project to configure it to use a BSP folder or metal library source folder located in an IP package project (or any other project, or filesystem location). You could create discrete projects for BSPs and metal libraries and reference them from multiple software projects.

All of this boils down to controlling a set of environment variables that get exported to the project builder process.

1 Like

Thanks @kevin, this is a step in the right direction, but I’m really looking to leave the ‘src/’ (PROGRAM) directory in the SDK. Ideally we’d have an option to leave everything in the freedom-e-sdk checkout with only the needed build/debug stuff going in the workspace.

I’ve been thinking about supporting that model as well. But at this point, all I can say is stay tuned.

Thanks for your feedback. I really appreciate getting constructive feedback and suggestions from real Freedom Studio users.

1 Like