Problème critique
Le compilateur C2H traite les dérences de pointeurs à un composant volatile tapez comme s’ils crénelaient toutes les autres déférences du pointeur. Pointeurs qui sont soumis à des restrictions sont traitées de la même manière.
Les deux boucles d’accès ne peuvent pas
être programmé simultanément car la volatile
qualification
remplace __ restrict
__ pragma.
volatile int * __restrict__ fifo_rd = FIFO_RD_BASE;
volatile int * __restrict__ fifo_wr = FIFO_WR_BASE;
for ()
{
*fifo_wr = ....;
}
for ()
{
... = *fifo_rd;
} |
Divisez la fonction en plusieurs demandes d’interruption (IRQ) activées accélérateurs lancés simultanément depuis le processeur, et utilisez des tampons FIFO pour communiquer entre eux.