清除BSS段的一般做法
生活随笔
收集整理的這篇文章主要介紹了
清除BSS段的一般做法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
link腳本一般包含類似語句:
| 1 2 3 4 5 6 7 8 9 10 11 | _bss_start = .; __bss_start__ = .; .bss??????????? :? { ??*(.shbss) ??*(.bss .bss.* .gnu.linkonce.b.*) ??*(COMMON) } . = ALIGN (4); _bss_end = . ; __bss_end__ = . ; |
啟動過程的代碼一般在匯編做:
| 1 2 3 4 5 6 7 8 9 | ????@++++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.
?本文轉自 21cnbao 51CTO博客,原文鏈接:http://blog.51cto.com/21cnbao/1295126,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的清除BSS段的一般做法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VB 调用 QuickTestpro 脚
- 下一篇: 【python】 读取Excel文件并绘