Problema crítico
O compilador C2H trata as desreferências de ponteiros para um volátil digite como se eles alias todas as outras dereferências de ponteiro. Ponteiros que são qualificados com restrição são tratados da mesma maneira.
Os dois loops não podem ser
ser agendado simultaneamente porque a qualificação volatile
substitui o pragma __restrict
__
volatile int * __restrict__ fifo_rd = FIFO_RD_BASE;
volatile int * __restrict__ fifo_wr = FIFO_WR_BASE;
for ()
{
*fifo_wr = ....;
}
for ()
{
... = *fifo_rd;
} |
Divida a função em solicitação de interrupção múltipla (IRQ) habilitada aceleradores que são lançados simultaneamente a partir do processador, e use buffers FIFO para se comunicar entre eles.