Bug#448480: I've just realised that ...
... the assignment of the address of a local variable to a global
variable looks a bit odd, but in the original code that exhibited the
failure this assignment was to a constant address thus
*(volatile unsigned *) DMA_ADDR_REG = (unsigned) a;
which is valid.
Reply to: