У меня есть массив uint8, и мне нужно передать указатель этого массива в DMA, который передает 16 байтов одновременно. Итак, требование состоит в том, чтобы адрес массива был выровнен на 16 байтов, как 32'hxxxxxx00 - последние два числа адреса равны 0. Я объявляю глобальный массив следующим образом:
u8 R00_PRO_ADDR[0x64000] __attribute__ ((aligned(16)));// 16 bytes address aligned
однако во время выполнения Я вижу, что адрес массива - 32'hxxxxxxx0. Я также пытался сделать (выровненный (128)), но получить тот же результат.
Это конкретно c для Vivado SDK Cortex A53