在ARM上对齐内存

时间:2017-08-10 07:45:12

标签: memory arm alignment calloc

我正在使用内联汇编来在C代码中执行ARM操作。 在C代码中,我用calloc分配内存。该存储块被分成不同的缓冲区,例如:

int * SCRATCH = (int *)calloc(LEN, sizeof(int));
buffer1       = (int *)SCRATCH;
buffer2       = (short *)((int *) buffer1 + sizeof(* buffer1) * LEN_BUF_1);

长度都是已知的。现在我使用

访问这些缓冲区中的值
LDRD r4, r4, [r0], #8;

由于内存未正确对齐而导致错误。我如何设置对齐我使用的所有缓冲区以便能够使用双重加载和存储?

谢谢!

0 个答案:

没有答案