2009年9月29日 星期二

防止資料被初始化 in ARM environment

有的時候,資料並不想被初始化,這時候我們需要特別的指定section。在code裡面我們可以用
#pragma arm section zidata = "non_init"
int i, j;    //uninit (in non_init section)
#pragma arm section zidata   //back to default (.bss section)
int k=0, l=0;  //zero-init (in .bss section)
這樣我們就會有一個自己的section名子叫做non_init。之後在execution region中我們可以把它指定成UNINIT,好比說

LOAD_1 0x0{

EXEC_1 +0


{



* (+RO)


* (+RW)


* (+ZI) ;ZI data will be initialized to zero



}



EXEC_2 +0 UNINIT


{



* (non_init) ;ZI data will not be initialized to zero



}



}

這樣我們的i和j就不會就算不給值也不會被初始成0了。

沒有留言: