Question
I have a VisualDSP++ project that I'd like to rebuild with CrossCore Embedded Studio. Can I just rebuild it?
Answer
No. VisualDSP++ and CrossCore Embedded Studio have different project structures and formats, and VisualDSP++ projects are not acceptable to CrossCore Embedded Studio. Before rebuilding your application in CrossCore Embedded Studio, you must first create a new, CrossCore Embedded Studio-format project. CrossCore Embedded Studio can do this for you, using the Project Import Wizard.
======================================
Question
How do CrossCore Embedded Studio projects differ from VisualDSP++ projects?
Answer
There are many differences between projects in VisualDSP++ and CrossCore Embedded Studio, of which we will highlight just a few:
The biggest change is that, in CrossCore Embedded Studio, projects are based on the directory structure. In VisualDSP++, you could have a single project which referenced several files spread across several directories, or you could have several different projects in one directory, using different files. In contrast, in CrossCore Embedded Studio, a project corresponds to a directory, so you cannot have more than one project in a given directory, and the project's contents correspond to the directory's contents.
In VisualDSP++, you can have project foo.dpj and bar.dpj in the same directory. In CrossCore Embedded Studio, all project files are called ".project", and so you may only have one project per directory. In practice, this means that instead of having, say, work/foo.dpj and work/bar.dpj, you instead have work/foo/.project and work/bar/.project.
Additionally the file format for the project files is different. The contents of a VisualDSP++ .dpj file and a CrossCore Embedded Studio .project file differ significantly, although they express similar information.
Another feature of CrossCore Embedded Studio is the use of Workspaces to keep track of the current projects you are working with.
======================================
Question
Why have you changed the project format for CrossCore Embedded Studio?
Answer
The project format is different because it is the project structure used by Eclipse, the open-source IDE framework that forms the basis of CrossCore Embedded Studio. By using the standard Eclipse structure, CrossCore Embedded Studio can exploit the extensive ecosystem of third-party tools already available to Eclipse developers. For example, the mechanisms that provide the advanced source-code browsing facilities in the CrossCore Embedded Studio editor are based on systems that understand the standard Eclipse project format.
======================================
Question
How do I use the Project Import Wizard?
Answer
The Project Import Wizard is available from File > Import > General. Select VisualDSP++ Project, and click Next, then browse to your .dpj or .dpg file.
Check the box to "View the report upon completion" to instruct the Project Import Wizard to display a report featuring a complete breakdown of the actions performed during the import. This report details all files/directories created, files and resources linked into the project, and Project Options that have been duplicated from the VisualDSP++ project to the CrossCore Embedded project. The conversion report is generated as an HTML file in the VisualDSP++ Project file directory as "project_name.dpj.report.html".
Click Finish to start the Project Import Wizard, which will report on its progress then, if the option was selected, display the conversion report on completion.
======================================
Question
Can I open my project in VisualDSP++ after I've imported it into CrossCore Embedded Studio?
Answer
The Project Import Wizard does not make any changes to your existing VisualDSP++ project file (*.dpj/*.dpg). However, we would not recommend continuing to build the same application in both VisualDSP++ and CrossCore Embedded Studio.
======================================
Question
How about the File>Import… menu option? Can I use that?
Answer
CrossCore Embedded Studio supports the standard Eclipse framework, which provides a number of project-import facilities by default. In most cases, these are concerned with importing existing Eclipse-format projects into your Workspace; they are not able to read VisualDSP++-format projects.
======================================
Question
Will the Import Wizard import my VisualDSP++ project group?
Answer
Yes. If you browse to a .dpg file in the Project Import Wizard. When you browse to a .dpj file, it will import just that project, but if you browse to a .dpg file. the wizard will import all the projects in the project group. The Project Import Wizard creates a directory structure to support the project group. See FAQ: Importing and creating multi-core projects in CrossCore Embedded Studio for more information.
======================================
Question
Will the Import Wizard deal with my generated CRT/LDF?
Answer
Yes. If your existing VisualDSP++ project makes use of generated LDF and/or Start-up code, the Project Import Wizard will add the Startup Code/LDF Add-In to your new CrossCore Embedded Studio version of the project, and generate the LDF and Start-up code using the settings from your VisualDSP++ project. Modifications that you have made to you VisualDSP++ generated LDF and Startup Code will be taken forward to CrossCore Embedded Studio.
======================================
Question
Will the Import Wizard deal with my custom LDF?
Answer
The Project Import Wizard will add your custom LDF to the newly-created CrossCore Embedded Studio project, but it will not make any changes to the custom LDF itself. You will have to apply any changes yourself.
Porting a customized LDF from VisualDSP++ to CrossCore Embedded Studio is not a trivial task. We would recommend first determining whether you still need a customized LDF with CrossCore Embedded Studio. The default LDF may be sufficient for your needs, or you may find that you can obtain a suitable configuration using the Generated LDF. If you really do need to customize your LDF beyond that which can be supported by a Generated LDF, we would recommend that you first generate the closest LDF you can, using the Startup Code/LDF Add-In, then disable the Add-in and customize the LDF further from this point.
======================================
Question
I Imported my VisualDSP++ project with the Import Wizard. Why won't it build?
Answer
The Project Import Wizard does not make any changes to your source code, and there are a number of ways in which VisualDSP++ applications differ from CrossCore Embedded Studio applications, including: RTOS, interrupt handling, SSL/DD APIs, and so on. If your VisualDSP++ application makes use of such mechanisms, you will have to make corresponding changes to your application's source code before the application will build in CrossCore Embedded Studio. Similarly, if your application uses a customized LDF, the LDF may make references to libraries that are not used in CrossCore Embedded Studio, or omit ones that are.
Where the Project Import Wizard is of use is:
- Creating a suitable directory structure for your application.
- Creating a new project for you.
- Finding all the settings in the VisualDSP++ Project Options, and applying the equivalent settings in the CrossCore Embedded Studio Tools Settings page.
In short, the Project Import Wizard takes care of the differences between VisualDSP++ and CrossCore Embedded Studio projects, allowing you to direct your attention immediately to the differences between VisualDSP++ and CrossCore Embedded Studio applications. View the import report for details of the actions performed by the Project Import Wizard.
======================================
Question
Do I have to rebuild my application from sources? What if I don't have the sources?
Answer
VisualDSP++ and CrossCore Embedded Studio use different binary file formats for .doj and .dxe files - the CrossCore Embedded Studio file format is more compatible with the standard interpretation of the ELF file format. In general, we recommend rebuilding VisualDSP++ files from source in CrossCore Embedded Studio, so that code-generation differences can be reflected (for example, the C++ API is now compatible with IA64, so C++ name-mangling and exception-handling is different).
Where sources are not available, you can change the ELF file format directly, using the elf2elf utility. This will allow you to link against existing .doj or .dlb files that you cannot rebuild. Be aware that there are limitations to this approach, however: the elf2elf utility will not make any changes to the content of your binary files. Thus, a .doj that makes use of a VisualDSP++ library function will not not link in CrossCore Embedded Studio, even after elf2elf conversion, if that VisualDSP++ library function is not also supported in CrossCore Embedded Studio.