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

 
 
> Приемные буферы в LwIP 1.3 для LPC2387
Hz!
сообщение Oct 2 2008, 09:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



Адаптирую сабжевый стек для работы под uCOS на LPC2387. Проблем с прикручиванием к оси не возникло т.к. примеров хватает. А вот с MAC уровнем сложнее. Нашел проект LwIPWeb, но там прием осуществляется простым копированием данных из Ethernet ram в обычную. В стеке есть возможность использовать POOLы, но нету возможности расположить PBUF_POOL в области Ethernet ram не помещая туда все остальные его части. Второй вариант – использовать при выделении памяти под pbuf опцию PBUF_REF, когда высвобождается память только под саму структуру, а буферы и указатели не них делать самому, но тут возникает куча вопросов по поводу того, как долго выделенные буферы будут использоваться стеком и не приведет ли такой подход к забиванию буфера.
Есть третий вариант, это использование пересылки по DMA из Ethernet ram в обычную, это лучше, чем простое копирование, но я склоняюсь к варианту №2, как к более «правильному».
Если кто-то делал по-другому, подскажите.

Сообщение отредактировал Hz! - Oct 2 2008, 09:23
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Oct 2 2008, 10:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Hz! @ Oct 2 2008, 11:22) *
А вот с MAC уровнем сложнее.

Все, что есть по MAC в интернете - полный мрак. Единственне исключение от чего можно отталкиваться это официальный лицензированнный NXP порт NicheLite.
Цитата
Нашел проект LwIPWeb, но там прием осуществляется простым копированием данных из Ethernet ram в обычную

MAC DMA доступна и "обычная" и "USB" RAM - если считаете нужным, то можете сразу куда угодно посылать.
Цитата
...использование пересылки по DMA из Ethernet ram в обычную, это лучше, чем простое копирование

А вот это не получится - GPDMA контроллер висит на другой шине и доступа к "Ethernet" просто не имеет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Hz!
сообщение Oct 2 2008, 10:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 5-05-06
Из: Минск
Пользователь №: 16 792



т.е. я могу в дескрипторах emac указывать адреса 0х40000000 .. 0x40010000 и он сразу туда будет складировать принимаемые данные, или я неправильно понял?

Нашел:
Цитата
The base address registers for the descriptor array, registers indicating the number of
descriptor array entries, and descriptor array input/output pointers are contained in the
Ethernet block. The descriptor entries and all transmit and receive packet data are stored
in memory which is not a part of the Ethernet block. The descriptor entries tell where
related frame data is stored in memory, certain aspects of how the data is handled, and
the result status of each Ethernet transaction.


Сообщение отредактировал Hz! - Oct 2 2008, 10:44
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 2 2008, 10:50
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Hz! @ Oct 2 2008, 12:41) *
он сразу туда будет....

Да. Он имеет доступ ко всем шинам/банкам.
Функциональная схемка есть в datashit. Там все понятно по шинам,банкам,master...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


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


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