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

 
 
> Выравнивание в NIOSII
juvf
сообщение Jan 6 2011, 04:19
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



вот код
Код
char bufRecive[100];
alt_u16 countRxTx = 0x0025;
*reinterpret_cast<alt_u16*>(&bufRecive[1]) = countRxTx;


после этого bufRecive[0] равно 0х25, а bufRecive[1] равно 0х00. Сталкивался с такой проблемой в msp430 в IAR-e. Там нужно адрес массива bufRecive при объявлении выравнивать дерективой, типа #pragma aligment = 2
В Nios-e похоже тоже из-за выравнивания. Как тут массив выравнять? Или если не выравнивание, то что? Как побороть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
juvf
сообщение Jan 6 2011, 06:38
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



странно, в другом месте обнаружил
Код
alt_u16 command = *reinterpret_cast<alt_u16*>(&bufRecive[4]);
такой код ни разу не сбоил.

Цитата
а насчет __attribute__ и т.п. - смотрите маны по gcc, все утилиты там GNUтые
ну в ниосе компилятор nios2-elf-gcc, линкер nios2-elf-g++. У алтеры про них скудно как-то написанно. Попробую покопаться в манах gnu gcc

Цитата
Можно попробовать Endian Converter Custom Instruction
а вот это интересней, щя буду пробовать...

Endian Converter Custom Instruction - не помогло ((
Go to the top of the page
 
+Quote Post



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

 


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


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