Hi,
in my current code, I use a (packed) structure beginning with some int32_t variables to communicate the current Epiphany core states to the host. The host is endlessly reading this part of the structure until it changes (and only then will read all of the shared memory). As soon as the Epiphany tries to set the value from e.g. zero to -1, the host reads 0x000000ff, 0x0000ffff, 0x00ffffff, 0xffffffff in that order, sometimes missing one or two. But it always reads intermediate values.
I though 32-bit accesses to the shared DRAM would be atomic, but this looks to me like Epiphany does 8-bit transfers. How is the correct way to communicate atomically between Epiphany and Host, or what am I missing here? (Preferably, I would like to be able to send an interrupt/signal to the host application, but I did not find any possibility to do so.)
Best Regards,
Sebastian