Importing an AVR32 Studio project doesn’t import files.

One of our customers reported that, when importing an AVR32 Studio project into AVR Studio 5, his files are not copied/added to the studio 5 project (Beta 2 build). When we debugged the problem, we found that we had missed a scenario (turns out to be a bug), that actually miscalculates the list of files to be excluded when importing the project. I will try to explain the bug and its workaround.

There are two file list to be considered for exclusion, when importing a AVR32 Studio project.

1. Project defined exclusion :

AVR32 Studio allows you to exclude a list of files or a folder hierarchy, while building the project for a specific configuration. This option is available when you right click on a file/folder node under a project in project explorer and choose “Exclude from project”. These options are saved in a file by name .cproject in the workspace folder, which actually says to exclude the folder foo from build, but it seems that the next statement is a continuation that adds more details on what to do with foo, which is the part missed to interpret while importing. Sad smile.

<SourceEntries>

<entry excluding="foo" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="foo"/>

</SourceEntries>

Workaround :

  1. From the .cproject files delete these entries, or simply all the text within <SourceEnties> and </SourceEntries>.
  2. Then try importing the project into AVR Studio 5.0 and you should be able to see all the files by now.
  3. Now revert back the entries in .cproject to make it work properly with AVR32 Studio.

2. Predefined black list :

By default we exclude some files and folders with special names. They are as follows.

  • “Debug”, “Release” – The default folder in AVR32 Studio for Debug and release configuration, that has all the output data that we won’t import.
  • “UC3 Software Framework” – This folder is created by default when a new project is created by AVR32 Studio which is has a native purpose within AVR32 Studio, but does not contribute to the project, AFAIK. So we exclude this.
  • We exclude all the files with extension .elf, .avrgccproj, .o, .project, .avrsln, .avrsuo, .svn, .cproject, .settings, .framework, .project, .metadata, which are files that are
    • generated as part of build activity
    • There to facilitate workspace management within AVR32 Studio.
    • Files that are meant to be excluded purposefully. (.avrgccproj for instance)

Hope this helps you understand the reason for why a file is not imported into AVR Studio 5.

General Advise : Always import an imported project

It is always a good idea to convert your AVR32 Studio project to the latest version of AVR32 Studio and then import that project into Studio 5. Though we developers tried our best to address all possibilities of failure during import (atleast with the latest Studio32 version) , we are still seeing new type of AVR32 projects with different facts and information everyday. How is that possible ? There are more than 1 flavor of AVR32 Studio (linux, windows etc), and a number of versions of each flavor, and each of them possibly uses a different version of the eclipse core and each eclipse core are extended possibly with a different version of CDT over them, and there are people out there who might have extended the CDT to fulfill a specific purpose of theirs and so on………, Though reality is actually a bit simpler that what I mentioned above, but still the problem of anticipating issues remains unsolved. May be with more experience we might be better than what we are today.

Have a good time with AVR Studio 5.0 Smile.

Advertisements