#define POKE(addr, val) (*(volatile unsigned int *)(addr) = (val))
#define POKE_AND(addr, val) (*(volatile unsigned int *)(addr) &= (val))
#define POKE_OR(addr, val) (*(volatile unsigned int *)(addr) |= (val))
No entiendo qué significa
POKE(addr, val) (*(volatile unsigned int *)(addr) = (val))
POKE_AND(addr, val) (*(volatile unsigned int *)(addr) &= (val))
POKE_OR(addr, val) (*(volatile unsigned int *)(addr) |= (val))
por ejemplo cuando llamo a la función
ulVal = PEEK(NETX_IO_CFG);
donde NETX_IO_CFG
#define NETX_IO_CFG 0x00100004U