JeDay 0 23 января, 2009 Опубликовано 23 января, 2009 · Жалоба Добрый день. Имеется 2 борды SK-MLPC2478 с запаянным LPC2468 rev"В". Работаю в IAR, с драйвером от Keil версии 3.22. Изернет подымаю впервые, так что сори возможно за глупые вопросы. На плате есть баг с неправильным подключением ENET_CRS_DV, так что на одной из плат переподключил этот сигнал на RXDV. в чем состоит проблема: 1. Не работает память Ethernet (16кб). При попытке проинициализировать структуры дескрипторов, расположенной в этой области, происходит полная чушь - поля не изменяются или изменяются произвольным образом. В ерраде написано что этот баг исправлен в первой ревизии камня. В общем перенес буфера и структуры в основную память. Трансивер с пом. auto-negotiation определил скорость, дальше проинициализировал дескрипторы и остальные регистры Но после этого у меня срабатывают прерывания INT_RX_ERR. А через несколько секунд каким то образом изменяются указатели на буферы в дескрипторах :( Как такое может быть? Мучаюсь вторую неделю и никаких сдвигов. Обе платы ведут себя одинаково. Подскажите плиз в какую сторону копать, может быть кто нить сталкивался с такими же проблемами. Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diz 0 24 января, 2009 Опубликовано 24 января, 2009 · Жалоба В комплекте должен быть собранный в hex и заточенный под плату пример web-сервера. Он работает ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 26 января, 2009 Опубликовано 26 января, 2009 · Жалоба web-сервер тоже подвисал и глючил, пока винду не переустановил. После чего проблемы с Ethernet памятью исчезли и укзатели на буферы в структурах дескрипторов тоже не перетираются. Осталась проблема с прерываниями INT_RX_ERR которые сыпят постоянно вместе с прерыванием INT_RX_DONE. Сейчас опять пытаюсь запустить тестовый пример web-сервера. Кто нить знает как в Кейловском дебагере значения регистров периферии смотреть, которой нет в списке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 26 января, 2009 Опубликовано 26 января, 2009 · Жалоба Кто нить знает как в Кейловском дебагере значения регистров периферии смотреть, которой нет в списке? Имеете в виду список View->Symbol Window->Peripheral SFR? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 26 января, 2009 Опубликовано 26 января, 2009 · Жалоба Имеете в виду список View->Symbol Window->Peripheral SFR? Не совсем. После запуска дебагера в меню Peripheral можно выбрать окно с периферийными модулями(UART,CAN,I2C...). Так вот мне нужен Ethernet, которого там нет. View->Symbol Window->Peripheral SFR - я так понял просто список всех регистров специального назначения проца, а этом окне не выводятся текущие значения регистров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergik_vrn 0 29 января, 2009 Опубликовано 29 января, 2009 · Жалоба Не совсем. После запуска дебагера в меню Peripheral можно выбрать окно с периферийными модулями(UART,CAN,I2C...). Так вот мне нужен Ethernet, которого там нет. View->Symbol Window->Peripheral SFR - я так понял просто список всех регистров специального назначения проца, а этом окне не выводятся текущие значения регистров. если речь про IAR, то вся информация о регистрах для отладчика лежит в файле *.ddf. Убедитесь, что Вы выбрали в настройках отладчика правильный файл, если же сам файл с ошибками и не содержит нужной информации, его можно поправить руками (или найти в сети исправленный) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 2 февраля, 2009 Опубликовано 2 февраля, 2009 · Жалоба Речь идет про Keil. Есть ли в нем аналог файла *.ddf как в IAR? Как в нем создать окно с регистрами модуля которого нет в Peripheral меню отладчика? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Всем спасибо, оживил драйвер. По ходу дела возник следующий вопрос: В структуре статуса принятых фреймов( RxStatus[RXCONSUMEINDEX].StatusInfo ) есть поле длины. Реальная длина пакета равна (Size-1), но во всех драйверах ЕМАС длина считается как (Size-3). Почему так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 5 февраля, 2009 Опубликовано 5 февраля, 2009 · Жалоба Что, никто над этим вопросом не заморачивался? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quasar 20 7 февраля, 2009 Опубликовано 7 февраля, 2009 · Жалоба По ходу дела возник следующий вопрос: В структуре статуса принятых фреймов( RxStatus[RXCONSUMEINDEX].StatusInfo ) есть поле длины. Реальная длина пакета равна (Size-1), но во всех драйверах ЕМАС длина считается как (Size-3). Почему так? Что, никто над этим вопросом не заморачивался? В StatusInfo хранится (длина полученного пакета) - 1, то есть ethernet заголовок + верхние протоколы + FCS (4 байта), вот, минусуя 3, FCS и откидывают.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 10 февраля, 2009 Опубликовано 10 февраля, 2009 · Жалоба Все равно не сходится длина. преамбула ethernet и SFD откидывается и в буфере данных их нет. В StatusInfo хранится длина фрейма Size, хотя реальное значение равно (Size-3) а согласно даташиту (Size-1). Получается несоответствие в 2 байта и 4-х байтный FCS имхо здесь нипричем Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quasar 20 10 февраля, 2009 Опубликовано 10 февраля, 2009 · Жалоба Всё сходится, если не откидывать FCS, то длину пакета ищут как size + 1 (так как в StatusInfo длина хранится как -1), а что бы откинуть FCS надо три вычесть из того что в StatusInfo хранится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 11 февраля, 2009 Опубликовано 11 февраля, 2009 · Жалоба Может я что-то не доганяю, но size-3 это пакет без FCS, а size+1 это полный пакет(согласно вашим словам). Напрашивается вопрос: почему же NXP говорит что длина пакета равна size-1? :) Глубо зацикливаться, но все же интерестно.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 16 февраля, 2009 Опубликовано 16 февраля, 2009 · Жалоба Может я что-то не доганяю, но 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) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JeDay 0 17 февраля, 2009 Опубликовано 17 февраля, 2009 · Жалоба Спасибо всем, теперь понялно Стормозил млин, все элементарно просто.. незнаю почему я зациклился на этом. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться