我在MPC8347 PowerPC上工作。在u-boot-v2014.01中,我在start.S
:
li r4, ((CONFIG_SYS_INIT_RAM_SIZE & ~31) + \
(CONFIG_SYS_INIT_RAM_ADDR & 31) + 31) / 32
& ~31
和& 31
的含义是什么? 32位是否有掩码?
我想验证R4中加载的值是否与我的旧u-boot-1.1.3相同。
答案 0 :(得分:3)
它不是32位,而是5位。
数字32是0x00000020。
31是0x0000001f。
~31是0xffffffe0。
所以& 31给出低5位。
&安培; ~31给出了所有位,除了低5位关闭。
代码似乎是将一个32字节块的块号大于RAM芯片的高位地址。 我从它添加31的部分得到它,然后除以32。