Analog.com Analog Dialogue Wiki 简体中文
EngineerZone
EngineerZone
  • Log In
  • Site
  • Search
  • User
  • Support

    Popular Forums

    • RF and Microwave
    • Power Management
    • Video
    • FPGA Reference Designs
    • Precision ADCs
    • Linux Software Drivers
    • SigmaDSP Processors & SigmaStudio Dev. Tool

    Product Forums

    • A2B
    • Amplifiers
    • Analog Microcontrollers
    • Clock and Timing
    • Data Converters
    • Direct Digital Synthesis (DDS)
    • Energy Monitoring and Metering
    • Interface and Isolation
    • MEMS Inertial Sensors
    • Processors and DSP
    • Switches/Multiplexers
    • Temperature Sensors
    • Voltage References
    View All

    Application Forums

    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • Optical Sensing
    • Precision Technology Signal Chains Library
    • Video
    • Wireless Sensor Networks Reference Library

    Design Center Forums

    • ACE Evaluation Software
    • ADEF System Platforms
    • Design Tools and Calculators
    • FPGA Reference Designs
    • Linux Software Drivers
    • Microcontroller no-OS Drivers
    • Reference Designs
    • Signal Chain Power (SCP)
    • Software Interface Tools
    • System Demonstration Platform (SDP) Support
  • Learn

    Highlighted Webinar

    Improve Smart Building Energy Efficiency with Industrial Ethernet Controlled Air Conditioning (HVAC) Systems

    Recent Discussions

    • Activity: Simple Op Amps, For ADALM1000 Fig. 1.3 Buffering example
    • ADALM-PLUTO [NETWORK] vs [USB_ETHERNET]
    • Using buffer size different from 2**n
    • ADALM1000 Pixelpulse feature Source Voltage / Measure Current explanation
    • function USB plug Pluto

    Places

    • ADI Education Home
    • ADI Education China
    • ADI Education India
    • ADI Education Philippines
    • StudentZone (Analog Dialogue)
    • Virtual Classroom

    Latest Webinars

    • Improve Smart Building Energy Efficiency with Industrial Ethernet Controlled Air Conditioning (HVAC) Systems
    • Sustainable Motion Control Solutions for High Performance Servo Drives
    • Audio Design Solutions for Augmented and Virtual Reality (AR/VR) Glasses
    • Robust Industrial Motor Encoder Signal Chain Solutions
    • Precision Low Power Measurement Solutions for Intelligent Edge
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's quizzes AQQ235 about a bipolar common emitter amplifier - a kind proposal from our colleague Martin Walker
    View All

    Places

    • Community Help
    • Logic Lounge

    Resources

    • EZ Code of Conduct
    • Getting Started Guide
    • ADI: Words Matter
    • Community Help Videos
    View All
  • Blogs

    Highlighted Blogs

    Empowering Surveillance Cameras To Capture A Scene Without Being Heard

     

    Mastering The Metrics Makes Specifying Encoders Simpler

    Latest Blogs

    • Understanding Secret Key Cryptography Without Formulas
    • 3 Reasons Why IO-Link is Changing Smart Factory Decision Making
    • EMC Mitigation: The Finer Points of Ferrite Beads
    • Introducing an X Band Phased Array Exploration Platform – the “Phaser”!
    • How to Start with a Solution – Interactive Signal Chains
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • Partners

    Electronic Design Services - PartnerZone

    • Boston Engineering
    • Calian, Advanced Technologies
    • Colorado Engineering Inc. (DBA CAES AT&E)
    • Clockworks Signal Processing
    • Epiq Solutions
    • Fidus
    • PalmSens
    • Richardson RFPD
    • Tri-Star Design, Inc.
    • VadaTech
    • Vanteon
    • X-Microwave
    View All
CrossCore Embedded Studio and Add-ins
  • Processors and DSP
  • Software and Development Tools
  • CrossCore Embedded Studio and Add-ins
  • Cancel
CrossCore Embedded Studio and Add-ins
Documents FAQ: Importing and creating multi-core projects in CrossCore Embedded Studio
  • Blogs
  • Q&A
  • Docs/FAQs
  • Members
  • Tags
  • More
  • Cancel
  • FAQ
  • +a.b silicon into a x.y silicon target: FAQ
  • +accel_xxxx: FAQ
  • +ADC & DAC in audio application: FAQ
  • +Add version of application in loader file: FAQ
  • +Add-in license: FAQ
  • +ADI_SPI_TRANSCEIVER: FAQ
  • +adi_spu_Init() API: FAQ
  • +ADSO-BF609 EZkit: FAQ
  • +ADSP-21364: FAQ
  • +ADSP-214xx: FAQ
  • +ADSP-21569 Ez-kit: FAQ
  • +ADSP-21569: FAQ
  • +ADSP-BF609 EZKIT: FAQ
  • +ADSP-BF609: FAQ
  • +ADSP-BF707: FAQ
  • +ADSP-BF70x: FAQ
  • +ADSP-SC589: FAQ
  • +ADSP-SC58x: FAQ
  • +ADSP-SC598: FAQ
  • +ADSP-SC5xx: FAQ
  • +ADSP21489: FAQ
  • +ADSP215xx: FAQ
  • +alignment pragma: FAQ
  • +ARM CORE: FAQ
  • +ARM to Sharc: FAQ
  • +avoid when a project is getting build: FAQ
  • +BF-609 Evaluation board: FAQ
  • +BF518 Processor: FAQ
  • +BF703: FAQ
  • +BF706 EZ-KIT: FAQ
  • +BF706: FAQ
  • +BF706mini BSP project: FAQ
  • +BF707 SPI: FAQ
  • +C source file: FAQ
  • +C++ code: FAQ
  • +C-code ISRs: FAQ
  • +Callback function: FAQ
  • +Calling Library Functions: FAQ
  • +cc1138: FAQ
  • +CCES: FAQ's
  • +cldp: FAQ
  • +CLKIN: FAQ
  • +Code folding in CCES: FAQ
  • +Configuring the Loader, Linker and Archiver: FAQ
  • +connect to the Blackfin: FAQ
  • -CrossCore Embedded Studio STDIO: FAQ
    • FAQ: CrossCore Embedded Studio STDIO is slow, and interrupts processing of real world data
    • FAQ: Does CrossCore Embedded Studio have a floating license option?
    • FAQ: Does CrossCore Embedded Studio Support C++ 11?
    • FAQ: Encountering the following error - ‘Invalid license file. The license file may be obsolete, corrupted, missing, or read-only’
    • FAQ: End of availability for Micrium Add-Ins for CrossCore Embedded Studio
    • FAQ: Error "Cannot Satisfy Dependency" when installing 3rd Party Plugin under CrossCore Embedded Studio
    • FAQ: How can I issue multiple Pre-Build or Post-Build Commands in CrossCore Embedded Studio
    • FAQ: How can I obtain the CrossCore Embedded Studio Software License Agreement?
    • FAQ: How do I update the Add-In version being used by my CrossCore Embedded Studio project?
    • FAQ: Importing and creating multi-core projects in CrossCore Embedded Studio
    • FAQ: Increasing the maximum number of sockets in the lwIP Add-In for CrossCore Embedded Studio
    • FAQ: Is it possible to install both a node-locked license and a corporate domain license on the same machine?
    • FAQ: Simulator Support for ADSP-BF70x in CrossCore Embedded Studio 1.1.0
    • FAQ: Support for Parallel Builds in CrossCore Embedded Studio
    • FAQ: Using Blackfin and SHARC from the command line in CrossCore Embedded Studio
    • FAQ: Using CMSIS packs from the command line in CrossCore Embedded Studio
    • FAQ: What are the different types of licenses for CrossCore Embedded Studio?
    • FAQ: What changes are needed to build a CrossCore Embedded Studio project after moving to another directory?
    • FAQ: What is the current working directory for the Elfloader in CrossCore Embedded Studio
    • FAQ: Where can I find details of CrossCore Software and Tools Anomaly Reports?
    • FAQ: Which versions of CrossCore Embedded Studio (CCES) do I need to install?
    • System Services and Device Drivers for CrossCore®︎ Embedded Studio Training Videos
    • [FAQ] : How to use custom platform with CCES_Runner.exe Utility
    • [FAQ] : Is there any restriction for defining normal-word variables in seg_dmda_nw section on SHARC+?
    • [FAQ]: How can I obtain university license for Crosscore embedded studio?
  • +CROSSCORE: FAQ
  • +Data Member Alignment: FAQ
  • +Device Driver programming: FAQ
  • +Difference between Emulator and Simulator: FAQ
  • +disable prelinker: FAQ
  • +Embedded applications: FAQ
  • +EV-21569-SOM: FAQ
  • +EXTCLK_MODE: FAQ
  • +How to access stereo channels individually in the Audio_Passthrough_I2S example present in GUL BSP?
  • +How to avoid CORE0 and DEBUG: FAQ
  • +How to build a specific code from single source file for a specific core?
  • +How to convert long double into string: FAQ
  • +how to deassert Slave: FAQ
  • +How to do profiling: FAQ
  • +How to protect shared code/ data: FAQ
  • +How to resolve audio distortion issue: FAQ
  • +HW Accelerator and SW libraries: FAQ
  • +Interrupt Vector Table: FAQ
  • +LDF from C code: FAQ
  • +linker map file: FAQ
  • +List of Processors: FAQ
  • +Loader File: FAQ
  • +MCAPI package: FAQ
  • +node-locked license: FAQ
  • +non-blocking peek functions: FAQ
  • Optimization in ARM
  • +Optimizer in C/C++ compiler: FAQ
  • +PART_SPECIFIC_HEADERS: FAQ
  • +path variables: FAQ
  • +peripheral Error: FAQ
  • +PINT modules: FAQ
  • +PM bus: FAQ
  • +Project Explorer tree: FAQ
  • +PWM mode: FAQ
  • +quad SPI mode: FAQ
  • +RTOS for older Blackfin or older SHARC: FAQ
  • +SC-573 EZkit: FAQ
  • +SDRAM: FAQ
  • +SHARC 21469: FAQ
  • +SHARC0: FAQ
  • +SHARC: FAQ
  • +sharing global data between cores: FAQ
  • +SigmaStudioForSHARC: FAQ
  • +SIMD code: FAQ
  • +SIMD: FAQ
  • +SPI core mode with callback: FAQ
  • +SPI flash: FAQ
  • +SPORT API: FAQ
  • +SPORT: FAQ
  • +SRCU bit: FAQ
  • +SSLDD 2.0 and SSLDD 3.0: FAQ
  • +SSLDD 3.0: FAQ
  • +SSLDD3.0: FAQ
  • +stack overflow: FAQ
  • +Static library & IP protection: FAQ
  • +suppress assembler preprocessor warning: FAQ
  • +system.svc: FAQ
  • +two PINT modules: FAQ
  • +TX and RX DMA Interrupts: FAQ
  • +U-Law and A-Law: FAQ
  • +UART Device Driver: FAQ
  • +UART ISR Callback: FAQ
  • +VisualDSP++: FAQ
  • +Wakeup processor from Hibernate: FAQ
  • +When callback occurs: FAQ
  • +word addressable program: FAQ
  • [FAQ] : Difference between ADZS-HPUSB and ADZS-USB ICE
  • [FAQ] : Does CCES have any API that can be used to build automation test platform with Python
  • [FAQ] : Does ICE-1000 supported ADSP-CM407F?
  • +[FAQ] : Driver example for Timer windowed watchdog period mode.
  • [FAQ] : Example code for SPORT slave trigger in ADSP-21569 Ezkit
  • [FAQ] : GUL-XP board with EZkit license
  • +[FAQ] : How to access darkmode appearance in CCES?
  • [FAQ] : How to obtain PCB library files for ADI processors
  • [FAQ] : How to pass arguments from command line in CCES runner
  • [FAQ] : How to use Device programmer in EVAL-ADICUP360 board
  • [FAQ] : Interrupt header files along with -char-size-32 switch in Sharc
  • [FAQ] : Is it possible to perform stepping into the code in CCES Runner.
  • [FAQ] : Is there a way to list symbols from library (*.dlb) file?
  • [FAQ] : Is there a way to mangle or remove internal symbols ?
  • [FAQ] : sizeof() built-in function in BF and Sharc processors
  • [FAQ] : Streaming Data input and output in CCES
  • [FAQ] : UART sample driver code for BF706mini
  • [FAQ]: Difference between Debug and Release configurations
  • [FAQ]: How to use "log10f_simd"
  • +µCOS-III Add-In: FAQ

FAQ: Importing and creating multi-core projects in CrossCore Embedded Studio

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.

  • Share
  • History
  • More
  • Cancel
Related
Recommended
Social
Quick Links
  • About ADI
  • ADI Signals+
  • Analog Dialogue
  • Careers
  • Contact us
  • Investor Relations
  • News Room
  • Quality & Reliability
  • Sales & Distribution
  • Incubators
Languages
  • English
  • 简体中文
  • 日本語
Newsletter

Interested in the latest news and articles about ADI products, design tools, training and events? Subscribe today!

Sign Up
Analog Logo
©1995 - 2023 Analog Devices, Inc. All Rights Reserved
沪ICP备09046653号-1
  • Sitemap
  • Legal
  • Privacy & Security
  • Privacy Settings
EngineerZone Uses cookies to ensure you get the best experience in our community. For more information on cookies, please read our Privacy & Security Statement.