新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > TQ2440國嵌學院gboot-bss段初始化

TQ2440國嵌學院gboot-bss段初始化

作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏
BSS段主要用來存放未初始化的全局變量

首先先查看我們的鏈接器腳本文件,也就是gboot.lds

本文引用地址:http://m.butianyuan.cn/article/201611/321966.htm

OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS {
. = 0x30008000;

. = ALIGN(4);
.text :
{
start.o (.text)
*(.text)
}

. = ALIGN(4);
.data :
{
*(.data)
}

. = ALIGN(4);
bss_start = .;
.bss :
{
*(.bss)
}
bss_end = .;
}

可以看到上面bss段的開始地址bss_start和結束地址bss_end,

bss主要是存放未初始化的全局變量,因為是沒有初始化,因此值可能是隨機值,如果被應用程序調用,可能會有影響,因此初始化bss,也就是將bss段的內容全部賦值為0

代碼如下:

clean_bss:

ldrr0,=bss_start

ldrr1,=bss_end

mov r3,#0

cmp r0,r1

moveqpc,lr

clean_loop:

strr2,[r0],#4

cmp r0,r1

bne clean_loop

mov pc,lr



評論


技術專區(qū)

關閉