|
Не получается оживить Ethernet :(, Плата SK-MLPC2478 |
|
|
|
Jan 23 2009, 10:03
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Добрый день. Имеется 2 борды SK-MLPC2478 с запаянным LPC2468 rev"В". Работаю в IAR, с драйвером от Keil версии 3.22. Изернет подымаю впервые, так что сори возможно за глупые вопросы. На плате есть баг с неправильным подключением ENET_CRS_DV, так что на одной из плат переподключил этот сигнал на RXDV. в чем состоит проблема: 1. Не работает память Ethernet (16кб). При попытке проинициализировать структуры дескрипторов, расположенной в этой области, происходит полная чушь - поля не изменяются или изменяются произвольным образом. В ерраде написано что этот баг исправлен в первой ревизии камня. В общем перенес буфера и структуры в основную память. Трансивер с пом. auto-negotiation определил скорость, дальше проинициализировал дескрипторы и остальные регистры Но после этого у меня срабатывают прерывания INT_RX_ERR. А через несколько секунд каким то образом изменяются указатели на буферы в дескрипторах  Как такое может быть? Мучаюсь вторую неделю и никаких сдвигов. Обе платы ведут себя одинаково. Подскажите плиз в какую сторону копать, может быть кто нить сталкивался с такими же проблемами. Спасибо
|
|
|
|
|
 |
Ответов
(1 - 14)
|
Jan 26 2009, 22:08
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Цитата Имеете в виду список View->Symbol Window->Peripheral SFR? Не совсем. После запуска дебагера в меню Peripheral можно выбрать окно с периферийными модулями(UART,CAN,I2C...). Так вот мне нужен Ethernet, которого там нет. View->Symbol Window->Peripheral SFR - я так понял просто список всех регистров специального назначения проца, а этом окне не выводятся текущие значения регистров.
|
|
|
|
|
Jan 29 2009, 07:41
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(JeDay @ Jan 27 2009, 01:08)  Не совсем. После запуска дебагера в меню Peripheral можно выбрать окно с периферийными модулями(UART,CAN,I2C...). Так вот мне нужен Ethernet, которого там нет. View->Symbol Window->Peripheral SFR - я так понял просто список всех регистров специального назначения проца, а этом окне не выводятся текущие значения регистров. если речь про IAR, то вся информация о регистрах для отладчика лежит в файле *.ddf. Убедитесь, что Вы выбрали в настройках отладчика правильный файл, если же сам файл с ошибками и не содержит нужной информации, его можно поправить руками (или найти в сети исправленный)
|
|
|
|
|
Feb 7 2009, 01:23
|

Местный
  
Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021

|
Цитата По ходу дела возник следующий вопрос: В структуре статуса принятых фреймов( RxStatus[RXCONSUMEINDEX].StatusInfo ) есть поле длины. Реальная длина пакета равна (Size-1), но во всех драйверах ЕМАС длина считается как (Size-3). Почему так? Цитата Что, никто над этим вопросом не заморачивался? В StatusInfo хранится (длина полученного пакета) - 1, то есть ethernet заголовок + верхние протоколы + FCS (4 байта), вот, минусуя 3, FCS и откидывают....
|
|
|
|
|
Feb 11 2009, 21:44
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Может я что-то не доганяю, но size-3 это пакет без FCS, а size+1 это полный пакет(согласно вашим словам). Напрашивается вопрос: почему же NXP говорит что длина пакета равна size-1?  Глубо зацикливаться, но все же интерестно..
|
|
|
|
|
Feb 16 2009, 18:46
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(JeDay @ Feb 11 2009, 23:44)  Может я что-то не доганяю, но size-3 это пакет без FCS, а size+1 это полный пакет(согласно вашим словам). Напрашивается вопрос: почему же NXP говорит что длина пакета равна size-1?  Почему NXP считает его как size-1 - скорее всего это поле-индекс указывающий на последний принятый байт. Ну а если вызывают сомнения длИны указанные Quasar, тогда: Пусть N - полный размер пакета. FCS занимает 4 байта, следовательно размер пакета без FSC (N - 4). EMAC сообщает полный размер пакета на единицу меньше, тобиш (N-1). Теперь задачка для первого класса - сколько надо прибавить к тому, что сообщает EMAC (N-1), чтобы получить полный размер пакета - N, и размер пакета без FCS - (N - 4)? 1. Полная длина N = (N - 1) + X X = -(N - 1) + N (ответ X = +1) 2. Длина без FCS (N - 4) = (N - 1) + X X = -(N - 1) + (N - 4)? (ответ X = -3)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|