Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выровнять массив #pragma DATA_ALIGN
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Alexius007
Нужно выровнять статически заданный массив по 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));

Помогите, пожалуйста!
Alexius007
Цитата(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 элемента массив тоже выровнен.
Как тему закрыть?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.