С Ниосом работали? Qsys автоматически сопрягает Avalon-MM и AXI4. Я делал в FPGA Avalon Slave и просто соединял эту шину с шиной ARMа.
Пример чтения:
Код
unsigned int readtest(){
volatile unsigned int *p_test = (unsigned int *) (0xC0000000 + TEST_OFFSET);
return *p_test;
}
Пример записи:
Код
void writetest(unsigned int data) {
volatile unsigned int *p_test = (unsigned int *) (0xC0000000 + TEST_OFFSET);
*p_test = data;
}
Как делать Avalon Slave и "шапку" для Qsys расписано в документации на Qsys, если не изменяет память.
PS. Дефолтная адресация по 4 байта, соотвественно смещение адреса у 32-битных регистров на 1: offset = 0x1, 0x2.. и т.д.