发现S5pv210 uboot 一个 Inp32(_addr) 和readl(_addr)奇葩问题
在S5pv210 的uboot里面,有
#define Inp32(_addr) readl(_addr)
但是
if(!(Inp32(0xE0200C04)&0x02))和if(!(readl(0xE0200C04)&0x02))
使用效果完全不一样,让人大跌眼镜,
搞的我整了一天,发现以前我用的是f(!(Inp32(0xE0200C04)&0x02))OK ,
但是一看定义,一个样子的,真是奇葩啊。居然会这样,搞不懂,请整过的人来说说。
if(!(readl(0xE0200C04)&0x02)) 完全不按照正常程序章法运行。
#define Inp32(_addr) readl(_addr)
但是
if(!(Inp32(0xE0200C04)&0x02))和if(!(readl(0xE0200C04)&0x02))
使用效果完全不一样,让人大跌眼镜,
搞的我整了一天,发现以前我用的是f(!(Inp32(0xE0200C04)&0x02))OK ,
但是一看定义,一个样子的,真是奇葩啊。居然会这样,搞不懂,请整过的人来说说。
if(!(readl(0xE0200C04)&0x02)) 完全不按照正常程序章法运行。