编译器优化开启时出错

时间:2015-06-10 05:23:00

标签: c optimization xilinx

以下是我为调试arm裸机应用程序而编写的代码。

#define OCM2_START  (0xffff0000)
#define AAC_QUE_SIZ  50
#define UINT_OFFSET      (sizeof(unsigned int))
#define INT_OFFSET   (sizeof(int            ))

print("here...... 1\r\n");

volatile long long *pktpts =((volatile long long *)    (OCM2_START + UINT_OFFSET * (AAC_QUE_SIZ + 3) + INT_OFFSET * 4));
volatile unsigned int* t1 = ((volatile unsigned int *) (OCM2_START + UINT_OFFSET * (AAC_QUE_SIZ + 3) + INT_OFFSET * 4));

*t1 = 10;
print("here ----\r\n");
*pktpts = pts;
print("here 555\r\n");

当我编译优化的代码并运行时,分配给" pktpts"指针它抛出一个异常。但是当我在没有优化的情况下编译代码时就不会发生这种情况。

我所做的是在该内存位置存储一个长的长值,并使用另一个处理器内核读取它。

谁能告诉我为什么会发生这种情况?我正在使用Xilinx SDK 2014.2

谢谢。

0 个答案:

没有答案