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

 
 
> Выровнять массив #pragma DATA_ALIGN, Минус первый элемент должен быть гарантировано равен нулю
Alexius007
сообщение Apr 5 2014, 10:24
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 29-01-14
Пользователь №: 80 236



Нужно выровнять статически заданный массив по 8 байтной границе (процессор TI C6713), причем минус первый элемент должен быть гарантировано равен нулю. Компилятор сильно оптимизирует, неиспользуемые переменные выкидывает. Т.е. огород городить не хочется. Так, ясное дело, работать не будет:
Код
#pragma DATA_ALIGN(&Xsp[1], 8)
float Xsp[SP_length+1];
float *pXsp = &Xsp[1];
...
memset((void *)Xsp, 0, 4 * (SP_length + 1));

Помогите, пожалуйста!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
Alexius007
сообщение Apr 7 2014, 11:55
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 29-01-14
Пользователь №: 80 236



Цитата(Alexius007 @ Apr 5 2014, 13:24) *
Нужно выровнять статически заданный массив по 8 байтной границе (процессор TI C6713), причем минус первый элемент должен быть гарантировано равен нулю. Компилятор сильно оптимизирует, неиспользуемые переменные выкидывает. Т.е. огород городить не хочется. Так, ясное дело, работать не будет:
Код
#pragma DATA_ALIGN(&Xsp[1], 8)
float Xsp[SP_length+1];
float *pXsp = &Xsp[1];
...
memset((void *)Xsp, 0, 4 * (SP_length + 1));

Помогите, пожалуйста!


Стормозил, надо было сделать так
Код
#pragma DATA_ALIGN(Xsp, 8)
float Xsp[SP_length+2];
float *pXsp = &Xsp[2];
...
memset((void *)Xsp, 0, 4 * (SP_length + 2));

Спереди 2 элемента по 4 байта, т.е. с 3 элемента массив тоже выровнен.
Как тему закрыть?
Go to the top of the page
 
+Quote Post

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

 


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


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