реклама на сайте
подробности

 
 
> Nios Запись (Чтение) данных, непонятки с функцией IOWR(BASE, REGNUM, DATA)
Acvarif
сообщение Mar 27 2012, 13:08
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Пытаюсь на Nios настроить опенсоус корку Ethernet "eth_ocm"
В драйвере регистры MAC загружаются примерно так
Код
#define ETH_OCM_MODER       0x00
#define IOWR_ETH_OCM_MODER(base, dat)   IOWR(base, ETH_OCM_MODER, dat)

IOWR_ETH_OCM_MODER(ETH_OCM_0_BASE, 0);

Далее IOWR определяется в файле io.h как

#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \
  ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8))))

#define IOWR(BASE, REGNUM, DATA) \
  __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA))


Чтобы убедиться, что это все работает попытался перевести такую операцию записи на регистр PIO c базовым адресом 00001000

Надеялся, что если выполнить например это
Код
#define ETH_TEST_ADDR       0x00000100
#define TEST_MODER          0x00

#define IOWR_TEST_MODER(base, dat)  IOWR(base, TEST_MODER, dat)
// Test    
IOWR_TEST_MODER(ETH_TEST_ADDR, 0x55);

то на выходе PIO, к которому подключены светодиоды будет наблюдаться нужный код - 0x55.
Но похоже ничего не работает.

Подскажите пожалуйста в чем загвоздка?
(Функцией типа IOWR_ALTERA_AVALON_PIO_DATA(0x00001000, 0x55) светодиоды управляются)

Я понимаю, что функция IOWR предназначена для записи данных во внутренний регистр и с PIO может не прокатить.
Но как тогда убедиться что она работает?
Пока не вижу, что MAC хоть как-то задышал. Поэтому и начал с самого хвоста.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 18:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016