[讨论] 发现S5pv210 uboot 一个 Inp32(_addr) 和readl(_addr)奇葩问题

Wince.Android   2013-12-4 14:28 楼主
在S5pv210 的uboot里面,有
#define Inp32(_addr)                readl(_addr)
但是
if(!(Inp32(0xE0200C04)&0x02))和if(!(readl(0xE0200C04)&0x02))
使用效果完全不一样,让人大跌眼镜,
搞的我整了一天,发现以前我用的是f(!(Inp32(0xE0200C04)&0x02))OK ,
但是一看定义,一个样子的,真是奇葩啊。居然会这样,搞不懂,请整过的人来说说。
if(!(readl(0xE0200C04)&0x02)) 完全不按照正常程序章法运行。
如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460

回复评论 (2)

看预编译文件,看看编译器自己的输出~
点赞  2013-12-4 14:49
引用: 原帖由 error_dan 于 2013-12-4 14:49 发表
看预编译文件,看看编译器自己的输出~
这个怎么看的?我是linux 菜鸟,以前做wince 不需要考虑这些的。
如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
点赞  2013-12-5 09:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复