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

 
 
> Вопрос по программированию для Microblaze, Формат Big Endian и операции с битами
lim
сообщение Jul 28 2008, 09:07
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 27-05-05
Пользователь №: 5 486



Раньше, программируя на микроконтроллерах с форматом Little Endian,
для работы с битами я часто использовал конструкцию
( 1 << BitNumber )

Естественно, для выделения бита 2, подставляли BitNumber = 2.

Так как Microblaze работает в формате Big Endian, и соответственно нумерация бит

Most Significant Bit => 0
Least Significant Bit => 31

Я полагаю, для того, чтобы выделить скажем бит 30 в нотации Microblaze
требуется вставить BitNumber = 1 .
Здесь есть неудобство, т.к. все биты при описании Xilinx PCORE - приведены именно в нотации Big Endian. Если у кого стоит Microblaze Instruction Set Simulator - проверьте, пожалуйста.

С Уважением,
Игорь
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
AndrewN
сообщение Jul 28 2008, 12:36
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(lim @ Jul 28 2008, 12:07) *
все биты при описании Xilinx PCORE - приведены именно в нотации Big Endian


Это, скорее, нотация IBM:
Big/little имеет физический смысл только при мультибайтовых обращениях к памяти. Когда
данные находятся в регистре, можно, конечно, биты нумеровать от старшего к младшему,
но никакого смысла в этом нет, так как побитные операции в регистре не отличаются
для этих двух видов интерфейса памяти. IBM(bit_num) == Normal(31-bit_num) годится
для нумерации, но 1 << 10 => 1024 всегда!

--
AN
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 01:23
Рейтинг@Mail.ru


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