Am 06.09.2002 23:35:14, schrieb "Garst R. Reese" <[email protected]>:

>Can someone enlighten me on the meaning of sfrb in the following ?
>#define ME1_                0x0004  /* Module Enable 1 */
>sfrb(ME1,ME1_);

noooo dont ask ;-)

the macro is defined in <iomacros.h> it's a rather tricky macro to convince GCC 
that it can access that address as variable and that it's 
volatile (must not be cached in a register). (just defining a volatile variable 
at address x does generate less efficient code, e.g. "bic" 
and "bis" asm insn are not used directly, rather a its a read, modify, store 
sequence)

i don't know the real the reason that it's split in two parts, a define and ans 
sfrb(), our files are just based on the TI ones, and those had 
this like that. maybe they thought that you could use the underline verison if 
you use the address for calculations or so.

chris



Reply via email to