Question
I have a five-project multi-core VisualDSP++ application for ADSP-BF561. How do I use this in CrossCore Embedded Studio?
Answer
You can use the Project Import Wizard to import your project into CrossCore Embedded Studio, and rebuild it there. During the Project Import Wizard, browse to the application's .dpg file. See FAQ: Importing VisualDSP++ project files to CrossCore Embedded Studio for details.
======================================
Question
I want to move my five-project application from ADSP-BF561 to ADSP-BF609. How do I do that?
Answer
The five-project model is not a recommended approach for building multi-core applications for ADSP-BF609, and is not directly supported by CrossCore Embedded Studio. Instead, the recommended approach for ADSP-BF609 applications is to create two separate projects, one per core, which communicate via MCAPI.
======================================
Question
Where is libmc for ADSP-BF609?
Answer
Libmc is not supported for ADSP-BF609. Instead, the recommended approach for inter-core communication in CrossCore Embedded Studio is MCAPI, an industry-standard approach defined by the Multicore Association.
The MCAPI documentation can be found in the CrossCore Embedded Studio Help via 'Help > Contents > CrossCore Embedded Studio 1.0.1 > System Run-Time Documentation > Multicore Communications API (MCAPI) Specification'.
======================================
Question
I want to create a new five-project application for ADSP-BF609. Where is that option in the New Project Wizard?
Answer
The New Project Wizard does not support creating new five-project applications. Instead, it creates a two-project application, where each project is a standalone application for its respective core, and MCAPI is used as the communication framework.
======================================
Question
I liked the five-project model. Can I still create it myself?
Answer
Yes, although we do not recommend this approach. You can create your own hierarchy of projects (in fact, Eclipse's directory-based project structure encourages this), and this can be a valuable approach for structuring your source code. The linker still supports the COMMON_MEMORY and SHARED_MEMORY constructs that were the basis of the five-project linking approach. However, you will have to manually create the LDFs to use such constructs. Be aware that this is not a trivial task.
======================================
Question
How do I go about creating multi-core projects for ADSP-BF561 and ADSP-BF609 in CrossCore Embedded Studio?
Answer
The New Project Wizard creates two projects by default when the processor is BF561 or BF60x. The first project is for core 0/A and the second project is for core 1/B. There is no option in the wizard for “Single Core: Single Application”, “Dual Core: Single Application”, “Dual Core: Single Application using both cores” that were offered in VisualDSP++.
======================================
Question
Why have you changed the approach to multicore projects?
Answer
We no longer recommend using the five-project model for starting new projects. The reason for this is that the model was based on using the linker's SHARED_MEMORY and COMMON_MEMORY constructs to create a single application that covered the entire set of memory spaces of both cores. The reason for doing this is so that the linker could arrange for both cores to share code and data, as all symbols were visible across both cores. However, this came with two significant disadvantages. The first is that this approach was incompatible with software not designed for such an architecture - this includes RTOSes and all third-party software. The second is that the memory hierarchy is complex, and it can be difficult to ensure code or data placement to achieve the application's needs - whether they be high-performance, shared, or widely-available. Small changes in application sources could lead to perturbations that were time-consuming to identify, track down and address.
In contrast to this, the recommended CrossCore Embedded Studio approach is the two-project approach, also supported in VisualDSP++, although CrossCore Embedded Studio adds the industry-standard MCAPI model for inter-core communication. Because this model keeps each core's applications separate for both code and data, it is much easier to reason about code and data placement, leading to a faster identification of bugs, and a shorter development period.