Тетирую свой модуль работы НИОСа с флэшкой аля ДМА. Погонял тесты данных 32, 16, 8-битных массивов - все ОК, НО здесь подвох - все массивы начинались с "ровного" адреса, т.е. с выровненного по 32 бита. Захотелось прогнать тесты работы с данными не выровненными по начальному адресу, т.е. со смешанной структурой. При попытке объявления типа структуры:
Код
...
typedef struct my_struct
{
alt_u32 s_32;
alt_u8 s_m_3[3];
alt_u16 s_16;
} my_struct;
int main()
{
my_stuct *ms;
ms = (my_stuct*)alt_remap_uncached((void*)(EPCS_CONTROLLER_0_BASE),sizeof(my_struct));
...
typedef struct my_struct
{
alt_u32 s_32;
alt_u8 s_m_3[3];
alt_u16 s_16;
} my_struct;
int main()
{
my_stuct *ms;
ms = (my_stuct*)alt_remap_uncached((void*)(EPCS_CONTROLLER_0_BASE),sizeof(my_struct));
...
выдает такой казус:
Нажмите для просмотра прикрепленного файла
Не подскажете в чем прикол?? Может компилятору чо-то нужно "посоветовать", я в настройках компилятора НИОС - не айс.