Locale Icon
English
  • Forums

    Popular Forums

    • LTspice
    • RF and Microwave
    • Video
    • Power Management
    • Precision ADCs
    • FPGA Reference Designs
    • Linux Software Drivers

    Product Forums

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

    Application Forums

    • A2B
    • Audio
    • Automated Test Equipment (ATE)
    • Condition-Based Monitoring
    • Depth, Perception & Ranging Technologies
    • Embedded Vision Sensing Library
    • Motor Control Hardware Platforms
    • 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

    Simplifying Connectivity - Remote Controlled (RC) Nodes in a Software Defined Vehicle (SDV)

    This webinar will introduce remote-controlled edge nodes and how they promise to simplify the automotive network architecture and expedite the integration...

    Places

    • ADI Education Home
    • ADI Webinars
    • GMSL U
    • StudentZone (Analog Dialogue)
    • Video Annex
    • Virtual Classroom

    Libraries

    • 3D ToF Depth Sensing Library
    • Continuous-Wave CMOS Time of Flight (TOF) Library
    • Embedded Vision Sensing Library
    • Gigabit Multimedia Serial Link (GMSL) Library
    • Optical Sensing Library
    • Precision Technology Signal Chains Library
    • Software Modules and SDKs Library
    • Supervisory Circuits Library
    • Wireless Sensor Networks Library

    Latest Webinars

    • Design Smarter: Integrated Precision Signal Chains for Scientific Instrumentation
    • Simulation and Modeling: Tools for Reducing Risk and Getting to Market
    • Simplifying Connectivity - Remote Controlled (RC) Nodes in a Software Defined Vehicle (SDV)
    • Upcoming Webinar: Simplify High-Accuracy Instrumentation Design with Latest Precision Data Converters
    • Design High Performance Power Systems with Ultralow Noise Technology
    View All Webinars
  • Community Hub

    Challenge Yourself!

      KCC's Quizzes AQQ287 about throwing 3 dice

      1. Quote of the week: "The first five days after the wekend are always the hardest" - unknown Source: Happy Weekend - Frohes Wochenende - Notiz mit...

    View All

    What's Brewing

      GMSL Quiz! Read the blog, take the quiz, and enter to win a gift card!

      Quiz! Read the GMSL Link Lock Blog - Take the Quiz and You are Entered to Win! Important: Read the blog first . The quiz questions are all based on...

    View All

    Places

    • Community Help
    • Logic Lounge
    • Super User Program

    Resources

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

    Highlighted Blogs

    Are Some Diagnostics Self-checking?

    The new draft of IEC 61508 revision 3 contains requirements: For diagnostics on your diagnostics. That diagnostics have a systematic capability....

     

    Future-Proof Your Network: Benefits of Integrating Cellular DAS Remote Access Unit: Part 3 of 4

    Are you ready to future-proof your network? Let's explore the benefits of integrating cellular DAS with other wireless technologies. This integration can...

    Latest Blogs

    • Field Monitoring and the Continuous Pursuit of Functional Safety
    • RTL Design and Verification of AXI DMA for Streaming Data
    • Diving into Coil Events in DCM and CCM: Part 2 of 6
    • IO-Link: Power Dissipation in Practice
    • GMSL Debugging: Getting a Lock
    Read All Blogs

    ADI Blogs

    • EZ Spotlight
    • The Engineering Mind
  • ContentZone

    Visit ContentZone

    ContentZone

    Technical articles. Blogs. Videos. Your ADI content, all in one place.

    View ContentZone

    Featured Content

    Featured Content Title

    Blurb About Content

    View Content By Industry

    • Aerospace and Defense Systems
    • Automotive Solutions
    • Consumer Technology Solutions
    • Data Center Solutions
    • Energy Solutions
    • Healthcare Solutions
    • Industrial Automation Technology Solutions
    • Instrumentation and Measurement Solutions
    • Intelligent Building Solutions
    • Internet of Things (IoT)
    • Wireless Communication Solutions

    View Content By Technology

    • A2B Audio Bus
    • ADI OtoSense Predictive Maintenance Solutions
    • Dynamic Speaker Management
    • Gallium Nitride (GaN) Technology
    • Gigabit Multimedia Serial Link (GMSL)
    • Industrial Vision
    • Power Solutions
    • Precision Technology
    • RF
    • Security Solutions
    • Sensor Interfaces
    • SmartMesh
  • Partners

    Partner Forums

    • Boston Engineering
    • PalmSens
    • Richardson RFPD

    Partner Libraries

    • Calian, Advanced Technologies Library
    • Clockworks Signal Processing Library
    • Colorado Engineering Inc. (DBA CAES AT&E) Library
    • Epiq Solutions Library
    • Fidus Library
    • Tri-Star Design, Inc. Library
    • VadaTech Library
    • Vanteon Library
    • X-Microwave Library
EngineerZone
EngineerZone
Blackfin Processors
  • Log In
  • User
  • Site
  • Search
OR
Ask a Question
Blackfin Processors
  • Processors and DSP
Blackfin Processors
Documents Global variables for multi cores: FAQ
  • Forums
  • File Uploads
  • FAQs/Docs
  • Members
  • Tags
  • More
  • Cancel
  • +Documents
  • +.ldf file: FAQ
  • +ADI EZ-Kit: FAQ
  • +ADSP-BF50x: FAQ
  • +ADSP-BF527: FAQ
  • +ADSP-BF537: FAQ
  • +ADSP-BF548: FAQ
  • +ADSP-BF592: FAQ
  • ADSP-BF5xx SPI Full Duplex communication in DMA mode
  • +BF506F: FAQ
  • +BF50xF: FAQ
  • +BF51x: FAQ
  • +BF51xF: FAQ
  • +BF525C: FAQ
  • +BF527: FAQ
  • +BF537: FAQ
  • +BF54x/BF52x USB controller: FAQ
  • BF592: FAQ
  • +BF702: FAQ
  • +Blackfin: FAQ
  • CLI and "Target option Mask interrupts during step" FAQ
  • +External vs. Internal Voltage Regulator: FAQ
  • +EZ-KITs via USB: FAQ
  • Floating point to integer conversion error: FAQ
  • Frame sync operation for Primary and secondary data mode with TFSR: FAQ
  • Generate safe and strong keys: FAQ
  • Global variables for multi cores: FAQ
  • +I2S BUS: FAQ
  • +Lockbox: FAQ
  • +PPI port pins: FAQ
  • +SDP image: FAQ
  • +SDRAM: FAQ
  • SPI example for ADSP-BF592
  • TRU Assembly code for ADSP-BF609
  • +USB VBUS: FAQ
  • USB:: Disabling Double Buffering FAQ
  • +VisualDSP++: FAQ
  • ADSP-BF527 SPORT examples
  • ADSP-BF527 SSL booting using bfrom_spiboot
  • Migrating Legacy BLACKFIN to ADSP-BF60x/70x BLACKFIN+ Processors

Global variables for multi cores: FAQ

Question:

I'm using dual core processor(BF609),

->I need to access variable in L2 memory at the same time for both cores.

->If CoreA is writing and CoreB try to access that memory at same time what will happen, if it is a problem how to fix it.

===============

Answer:

It is possible for the linker to build the images for both cores as a single overall logical program. In this scenario, the shared memory spaces of the two cores are common, so the two private spaces (the L1 memories of each core) are making reference to a single instance of code or data in the shared space. This model has been supported previously in VisualDSP++, and is generally referred to as the Single Application/Dual Core model, or sometimes as the "five project model", since it was constructed from a project group of five projects.

This approach suffers from a number of complications, however. As a model, it can work quite well, but when problems arise, it can be very difficult to understand what causes them, or how to fix them. These problems include:
- Although, logically, you are building a single program, from the linker's point of view, you are actually building five programs, with some complex cross-linking.
- This means that you can have the same symbol defined in Core 0, Core 1 and in your shared L2 or external memory, and all those definitions are different, and valid. Indeed, main() has to be defined in both cores. This not only violates common understanding of C programs, but it also makes it difficult to identify whether your application is using the correct definition.
- It is possible for symbols in shared locations to make references to symbols in private core space. This leads to complications if the same symbol has a valid, private definition in each core, because the cores have different address spaces, and the shared symbol cannot be linked against both addresses.
- Because of the order in which the linker resolves library references and definitions in other cores/memory spaces, it is more likely that the linker will pull in additional definitions from the libraries, than it is to make use of your definition in shared memory.
- No RTOS will support this model.

For these reasons, among others, we no longer recommend this approach in CrossCore Embedded Studio, and instead recommend that a separate application is built for each core separately. A small amount of shared memory is set aside to support MCAPI, and you can, with care, share code and data by using MCAPI to pass the addresses of definitions from one core to another. This model is simpler, but that is a virtue in this case. Our experience shows that this approach is considerably more reliable, predictable and comprehendable, and is therefore more conducive to delivering reliable applications to market sooner.

Please note that, regardless of which model you adopt, you will need to ensure that any data accesses are properly protected by mutexes, and any cacheing of shared space will require appropriate cache flushing and invalidation, all of which is an application-level issue.

Please refer the below given CCES help path:
CrossCoreRegistered Embedded Studio 2.5.0 > BlackfinRegistered Development Tools Documentation > C/C++ Compiler and Library Manual for BlackfinRegistered Processors > Multicore Programming Application Model.

This document was generated from the following discussion: access of global variables for multi cores

  • Share
  • History
  • More
  • Cancel
analog-devices logo

About Analog Devices

  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue

Get the Latest News

Stay up to date with our latest news and articles about Analog Devices' products, design tools, trainings, and events.

Sign Up Now
  • Instagram page
  • Twitter page
  • Linkedin page
  • Youtube page
  • Facebook
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings
沪ICP备09046653号-1

©2025 Analog Devices, Inc. All Rights Reserved

analog-devices

About Analog Devices

Down Up
  • Who We Are
  • Careers
  • Newsroom
  • What We Do (Signals+)
  • Investor RelationsExternalLink
  • Quality & Reliability
  • Sales and Distribution
  • What's New on Analog.com
  • Contact Us

Find Help

Down Up
  • Support
  • Resources
  • WikiExternalLink
  • Analog Dialogue

Get the Latest News

Stay up to date with our latest news and articles about Analog Devices' products, design tools, trainings, and events.

Instagram page Facebook Twitter page Linkedin page Youtube page
  • Legal and Risk
  • Accessibility
  • Privacy Policy
  • Privacy Settings
  • Cookie Settings
沪ICP备09046653号-1

©2025 Analog Devices, Inc. All Rights Reserved