Thanks. Changing that line works. I had this code working in the function directly as I was passing immediates. When this is called through a function, it takes registers and I had to update it accordingly. On Mon, Jun 10, 2013 at 6:01 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: > On Mon, Jun 10, 2013 at 5:41 PM, Kalai Rajah N <kalairajah@xxxxxxxxx> wrote: > >> "ldr r1, =%0 /* load the nvic_iser* register */ \n\t" > > The references are coming from your lines like the above. I don't > know what this syntax means. You are asking GCC to put a register > name in there, so the result is something like > ldr r1, =r1 > This winds up referring to a symbol named r1, rather than the register r1. > > Ian