ethernet descriptors stm32h7

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
danone78
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

ethernet descriptors stm32h7

Сообщение danone78 »

Вопрос наверное риторический: для чего дескрипторам два буфера?
В мануале акцент сделан на то, что можно адресовать две несмежных области памяти, предположительно для того чтобы принимаемые пакеты сразу укладывались как в фильме Веном: "бошки в одну сторону, тела в другую". Сомнительный функционал. Жопой чую, этому должно быть какое-то особое применение. 8)
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: ethernet descriptors stm32h7

Сообщение COKPOWEHEU »

Не знаю есть ли специфика именно Эзернета, но обычно двойная буферизация используется чтобы пока железо складывало "бошки в одну сторону", софт мог спокойно ковырять "тела с другой стороны", не боясь, что пока он этим занимается, ему какое-нибудь "тело" "башкой" подменят.
И в обратную сторону: софт заполняет один буфер на передачу, говорит "буфер готов, передавай" и, пока железо передает, заполняет второй.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: ethernet descriptors stm32h7

Сообщение jcxz »

[uquote="danone78",url="/forum/viewtopic.php?p=4564654#p4564654"]Вопрос наверное риторический: для чего дескрипторам два буфера?
В мануале акцент сделан на то, что можно адресовать две несмежных области памяти, предположительно для того чтобы принимаемые пакеты сразу укладывались[/uquote]Так и есть. Очень удобная и нужная функция если нужно что-то передавать или принимать быстро и большим потоком через какой-то протокол типа TCP или UDP.
Если например устройство что-то измеряет в потоковом режиме, то в ОЗУ эти данные из АЦП пишутся в кольцевой буфер. И нужно этот поток из кольцевого буфера передавать наружу например через TCP или UDP. С опцией передачи из двух несмежных областей памяти, можно первым сегментом передавать заголовок (IP, TCP или UDP), а вторым - тело данных (очередной кусок из кольцевого буфера). Без всяких копирований. Без этого пришлось бы копировать, тратить на это такты CPU и тратить дополнительно ОЗУ.

Вроде как это само собой очевидное предназначение. Хорошо, что STM32 наконец-то додумалась до такого. В других МК эта опция имеется уже давным-давно. Но лучше поздно, чем никогда.
danone78
Встал на лапы
Сообщения: 82
Зарегистрирован: Вт фев 15, 2022 21:28:35

Re: ethernet descriptors stm32h7

Сообщение danone78 »

Еще это может быть удобно при отправке повторяющихся шаблонов.
Ответить

Вернуться в «ARM»