The SYNC signal should be fired when the core is in IDLE state. When fired, the core jumps to the 1st entry in the IVT. Normally, that entry point to main(). Thus, it makes a little sense to go into a wait loop, then fire SYNC. It should actually be done using the SW_INT interrupt, but then, an ISR has to be implemented.
Alternatively, just as @timpart writes, you load, but don't start the second (slave) core. Then, the 1st core (master) can use e_irq_remote_raise() to fire the slave's SYNC signal.
Your code for core(32,36) is basically correct - as this is what should be done to fire that interrupt on (32,37) - but there's a discrepancy I just found in the e-lib. It happens that the interrupt routines where designed according to the POSIX standard for signalling, but the Epiphany signal names (numbers, actually) are different. So, in order to fire the SYNC signal, please use (E_SYNC + 3) instead of just E_SYNC.
I attach a sample project to demonstrate this technique.Statistics: Posted by ysapir — Mon Apr 15, 2013 8:13 pm
]]>