As I know sending data between core can be done using 2 method, DMA and direct write.
If we don't use DMA we should define a pointer and set its address like 0x6000 that is pointed to core local memory. Then we can use e_get_global_address to find others core address.
in this situation I have some questions that will be appreciated if answered!
How I can find code size that placed in local memory (using internal.hdf) in order to prevent conflict between code and data pointer?
Is writing to others core is blocking? For example when core1 write in core2, how core2 know that new data is presented in its memory?
Is using volatile for pointers be mandatory? What happen if we don't use it?
when we define an array in program, where this array is placed? How we can update its value from other cores?
Is using barrier can belp to synchronize cores, while(it seems) writing to other cores memory is non-blocking and based on fire and forget?