Share a variable between Core0 and Core1 of ADSP BF609

Hi,

How can I share a variable(lets say uint8_t) between both cores(core0  and core1)?

Please provide me a suitable example for this.

Thanks.

  • +1
    •  Analog Employees 
    on Mar 11, 2019 2:13 PM

    Hello,

    The L2 SRAM memory can be shared between the cores of ADSP-BF60x. We would suggest you to refer the "FAQ: How to access global variables for multi cores" for sharing the array between two cores of BF60x and the link is below.
    ez.analog.com/.../faq-how-to-access-global-variables-for-multi-cores

    Please try the below scenario to share the variable/buffer/array in between two cores.

    There is the RESOLVE command, which allows a symbol to be resolved to the same address as in another DXE. The command can be placed into the PROCESSOR command of an LDF, for example:
    ...
    PROCESSOR p1 {
      ...
      RESOLVE(_foo, "core0.dxe")
      ...
    }

    So variable 'foo' could be defined in the program for core0, declared as extern in the program for core1, and resolved to the core0 definition in the LDF for core1. Keep in mind that there is no hardware cache coherency support.

    Please note that when you use the RESOLVE command in ldf, you should declare the path of the executable file(.dxe) as mentioned below.
    RESOLVE(_test, "[Project Directory]\shared_globalvariable_bf609\shared_globalvariable_bf609\BF609_sharedvar_cores_Core0\Debug\BF609_sharedvar_cores_Core0.dxe")

    Also, please find the attached project for your reference and it works as expected in ADSP-BF609 Ezkit.

    Hope this helps.

    Regards,
    Lalitha.S

    BF609_sharedvar_cores_Core0.zip