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

 
 
> Выравнивание в 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
Ответов
shenick
сообщение Jan 9 2011, 15:44
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 31-07-08
Пользователь №: 39 350



Цитата(juvf @ Jan 6 2011, 09:19) *
вот код
Код
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 похоже тоже из-за выравнивания. Как тут массив выравнять? Или если не выравнивание, то что? Как побороть?


мммм.......
а не проще ли так(?):
Код
bufRecive[1] = ((char*)&countRxTx)[0];

а если таки охота ворочать little/big-endian то енто надо искать в доках на ниос и гцц.
да... и это не выравнивание. это нормальное положение байтов в памяти отведенной под переменную. biggrin.gif
как вариант - написать макросы для переворачивания байтовых последовательностей при присваивании.

Сообщение отредактировал shenick - Jan 9 2011, 15:48
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 9 2011, 20:55
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(shenick @ Jan 10 2011, 00:44) *
как вариант - написать макросы для переворачивания байтовых последовательностей при присваивании.

а еще лучше - вообще не нагружать CPU такой работой, есть ведь DMA
Go to the top of the page
 
+Quote Post



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

 


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


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