Фрагмент файла sys/io.h - он генерируется системой, при создании BSP.
CODE
/* Native bus access functions */
#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \
((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8))))
#define IORD(BASE, REGNUM) \
__builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)))
#define IOWR(BASE, REGNUM, DATA) \
__builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA))
1. Для "фирменных" компонентов SOPC билдера уже написаны драйвера, которые подключаются в момент генерации BSP
(Board Support Package). PIO - Альтеровский библиотечный компонент, для которого всё уже написано...
2. Можно начатать с :
-
http://www.altera.com/literature/lit-qts.jsp - SOPC user guide
-
http://www.altera.com/literature/lit-nio2.jsp - здесь взять руководство NIOSII нужной версии,
там в главе Software Developer's Handbook написано про структуру программы и драйвера.