您的位置:首页 > 其它

清除BSS段的一般做法

2013-09-12 15:51 246 查看
link脚本一般包含类似语句:
_bss_start = .;
__bss_start__ = .;
.bss            :
{
*(.shbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
}
. = ALIGN (4);
_bss_end = . ;
__bss_end__ = . ;
启动过程的代码一般在汇编做:
@++++clear the BSS section++++
ldr     r2,=__bss_start__
ldr     r3,=__bss_end__
mov     r12,#0
bss_loop:
cmp     r2,r3
stmltia r2!,{r12}
blt     bss_loop
@----clear the BSS section----


所以不要在C代码中对未初始化的全局变量赋0,因为BSS段会被自动赋0.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BSS段 清0