When working in Assembly in in the AVRGCC realms, I know that to load a port I can simply run:
sts PORTA_OUT, R21
In C, if I load a port value it is disassembled into:
ldi R24, 0x50 sts 0x0604, R24
If I try to run an inline asm command in c:
asm("sts PORTA_OUT, R21");
I get an error "undefined reference to". I see that the disassembled code places the actual address for the port in place as I would expect. Is there a way to have the asm instruction understand the "PORTA_OUT" definition, or will I also have to place the address definition?