+ -
当前位置:首页 → 问答吧 → 小弟我看到一句代码,一直推敲不出其是什么目的,望指教

小弟我看到一句代码,一直推敲不出其是什么目的,望指教

时间:2011-12-03

来源:互联网

addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);  

这句代码有何目的呢

作者: hfchende   发布时间: 2011-12-03

楼主 能贴上来完整代码么?

作者: xiaoliang_1   发布时间: 2011-12-03

确保addr不小于_bss_end而且是PAGE_SIZE对齐的。

作者: tsdcsp2002   发布时间: 2011-12-03

引用 1 楼 xiaoliang_1 的回复:
楼主 能贴上来完整代码么?

#ifdef CONFIG_LCD
# ifndef PAGE_SIZE
# define PAGE_SIZE 4096
# endif
/*
* reserve memory for LCD display (always full pages)
*/
/* bss_end is defined in the board-specific linker script */
addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);
size = lcd_setmem (addr);
gd->fb_base = addr;
#endif /* CONFIG_LCD */

好像楼下的说得有点道理

作者: hfchende   发布时间: 2011-12-03

引用 2 楼 tsdcsp2002 的回复:
确保addr不小于_bss_end而且是PAGE_SIZE对齐的。


有道理

作者: hfchende   发布时间: 2011-12-03

这是什么啊?难道是头文件里面的?真么很少见啊?

作者: weiliangjiyi   发布时间: 2011-12-03

C/C++ code
按PAGE_SIZE 向上对齐, 属于程序优化, 效果很好.

作者: qq120848369   发布时间: 2011-12-03

我还有这么多代码看不懂

作者: solo7773   发布时间: 2011-12-03

对齐!

作者: AnYidan   发布时间: 2011-12-03