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

 
 
> Ускорение lwip (и не только) на microblaze, небольная находка
akorud
сообщение Jul 6 2013, 16:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Так как начиная с некоторого времени microblaze little-endian (в связи с AXI), то в сетевых приложениях много времени занимает преобразование 2- и 4-байтовых слов в заголовках пакетов (сеть big-endian) - функции htohl, htonl, ntohs, htons.
А вот начиная с версии 8.30а в microblaze добавили инструкции swapb & co (много их).
И теперь чтобы переставить местами все байты в слове можно написать (в С коде)
Код
uint32_t ts = 0x01020304;
asm("swapb %0,%1": "=r" (ts): "r" (ts));
xil_printf("%08x", ts); // 0x04030201

И вместо около 40 инструкций - одна.
Вот. Мне очень пригодилось, может кому-то еще будет полезно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:02
Рейтинг@Mail.ru


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