The example design cl_dram_dma tests interrupts by triggering each
interrupt number a single time. This works properly, as shown by
various messages similar to the following:
The follow change to test_dram_dma.c will cause each interrupt test
to be run twice.
diff --git a/hdk/cl/examples/cl_dram_dma/software/runtime/test_dram_dma.c b/hdk/cl/examples/cl_dram_dma/software/runtime/test_dram_dma.c
index 9aa8606..18cb896 100644
--- a/hdk/cl/examples/cl_dram_dma/software/runtime/test_dram_dma.c
+++ b/hdk/cl/examples/cl_dram_dma/software/runtime/test_dram_dma.c
@@ -63,6 +63,7 @@ int main(int argc, char **argv) {
fail_on(rc, out, "DMA example failed");
/* run interrupt examples */
+ for (int i = 0; i < 2; i++)
for (interrupt_n = 0; interrupt_n < USER_INTERRUPTS_MAX; interrupt_n++) {
rc = interrupt_example(slot_id, interrupt_n);
fail_on(rc, out, "Interrupt example failed");
Withe test_dram_dma modified as above, the first interrupt for each
interrupt number occurs properly. However, the second results in the
following messages:
I have also seen similar behavior (first interrupt is generated in
software as expected, subsequent interrupts are not) with a different
design (different CL, different software) that works properly on an
AWS F1 instance.
The example design cl_dram_dma tests interrupts by triggering each interrupt number a single time. This works properly, as shown by various messages similar to the following:
And so on for each of the 16 interrupt numbers.
The follow change to
test_dram_dma.c
will cause each interrupt test to be run twice.Withe
test_dram_dma
modified as above, the first interrupt for each interrupt number occurs properly. However, the second results in the following messages:I have also seen similar behavior (first interrupt is generated in software as expected, subsequent interrupts are not) with a different design (different CL, different software) that works properly on an AWS F1 instance.