Смотри (это пример из живого проекта)
Код
#include <sys/neutrino.h> // for ThreadCtl()
#include <stdint.h> // for uintptr_t
#include <hw/inout.h> // for in_() and out_() commands
void wr_reg(uintptr_t iop, uint8_t reg, uint8_t val)
{
out8(iop,reg);
out8(iop,val);
}
uint8_t rd_reg(uintptr_t iop, uint8_t reg)
{
out8(iop,reg);
return in8(iop);
}
int main()
{
uintptr_t port;
uint8_t val;
uint8_t reg;
ThreadCtl_r(_NTO_TCTL_IO, 0);
for(;;)
{
scanf("%hhd",®);
printf("%X %X \n",reg,rd_reg(0x12B,reg));
};
}