最近调试I2C时,发现,测试函数中设置的一个临时缓冲区数组I2c_Buf[2047],与中断中的全局变量数组AD_BUF[6][32],地址重合,
全局变量 AD_BUF起始地址:0x20004028
临时变量 I2c_Buf起始地址:0x20003E18
看到网上很多资料说临时变量是入栈的,地址是从高地址向低地址方向生长的,如果是这样的话,这两个地址是不会覆盖的,可是实际调试发现是全局变量的 AD_BUF地址里的数据完全和 I2c_Buf里面的数据一样。。。。也就是说keil MDK里面的临时变量没有入栈。。。。。。我用的是keil MDK uvision4. |