亚洲国产欧美一区二区三区丁香婷,国产精品高潮呻吟久久av免费看 ,欧美无遮挡一区二区三区国产对白,日本一区二区免费不卡中文字幕

Keil和IAR編譯存儲(chǔ)的描述和擴(kuò)展

要知道代碼、常量、全局、局部變量存儲(chǔ)在哪兒,就需要了解FLASH和RAM的一些特性,在工程中要具體分析其大小及對(duì)應(yīng)存儲(chǔ)地址,可以從map文件中分析。提醒:RW-data已初始化的數(shù)據(jù)會(huì)存儲(chǔ)在Flash中,上電會(huì)從FLASH搬移至RAM中。編譯單個(gè)文件(點(diǎn)擊),會(huì)出現(xiàn)下面信息(若沒有DATA就沒有那一行):本節(jié)擴(kuò)展一下RAM的一些知識(shí),有助于大家對(duì)程序運(yùn)行時(shí)RAM的情況。...

寫在前面我

Keil、IAR構(gòu)建(Build)窗口中打印的信息:

尺寸:代碼=-data=268RW-data=44ZI-data=1028

72 765 字節(jié)

3 508 字節(jié)

20 202 字節(jié)

5 676 字節(jié)

926 字節(jié)

1 148 字節(jié)

相信大家都看過上面的資料,應(yīng)該知道它們的大概意思了,但是有多少朋友對(duì)存儲(chǔ)的詳細(xì)知識(shí)有深入的了解呢?

要知道代碼、常量、全局和局部變量存放在哪里,需要了解FLASH和RAM的一些特性。在項(xiàng)目中需要分析它們的大小和對(duì)應(yīng)的存儲(chǔ)地址緯衡出圖管理系統(tǒng),可以從map文件中分析。

簡(jiǎn)述其意義Ⅱ

為了大多數(shù)人的興趣,簡(jiǎn)要說(shuō)明上述印刷信息的含義。特此提醒大家,網(wǎng)上有很多相關(guān)資料Able Fax Tif ,但網(wǎng)上有些資料含糊不清,可能會(huì)誤導(dǎo)大家,如:RW-data 是一個(gè)已初始化的全局變量。修改后的變量稱為靜態(tài)變量,與全局變量仍有區(qū)別,但初始化后的靜態(tài)變量也歸類為RW-data。

1.Keil編譯窗口信息

尺寸:代碼=-data=268RW-data=44ZI-data=1028

代碼:指代碼的大小;

ro-data:指內(nèi)聯(lián)數(shù)據(jù)(data)以外的常量數(shù)據(jù);

RW-data:指可讀寫(RW),已初始化的變量數(shù)據(jù);

ZI-data:指未初始化(ZI)的變量數(shù)據(jù);

Code、Ro-data:位于FLASH中;

RW-data、ZI-data:位于RAM中;

提醒: RW-data 的初始化數(shù)據(jù)會(huì)存儲(chǔ)在 Flash 中,上電后會(huì)從 FLASH 移動(dòng)到 RAM 中。

關(guān)系如下:

RO 大小 = 代碼 + RO 數(shù)據(jù)

RW 大小= RW 數(shù)據(jù) + ZI 數(shù)據(jù)

ROM 大小 = 代碼 + RO 數(shù)據(jù) + RW 數(shù)據(jù)

2.IAR 編譯窗口信息

IAR有兩種情況注冊(cè)機(jī)怎么分配路徑,但意思差不多,但顯示不同:

編譯工程(點(diǎn)擊Make),會(huì)出現(xiàn)如下信息:

72 765 字節(jié)

3 508 字節(jié)

20 202 字節(jié)

編譯單個(gè)文件(點(diǎn)擊),會(huì)出現(xiàn)如下信息(如果沒有DATA,則沒有行):

5 676 字節(jié)

926 字節(jié)

1 148 字節(jié)

code:代碼大?。愃朴贑ODE);

data:常量數(shù)據(jù)(類似于 CONST);

data:讀寫可變數(shù)據(jù)(類似于DATA);

闡明:

IAR 中的數(shù)據(jù)等價(jià)于 Keil 中的 RW Data + ZI Data

內(nèi)存 (RAM) 分配 III

本節(jié)擴(kuò)展了RAM的一些知識(shí),有助于您了解程序運(yùn)行時(shí)RAM的情況。

內(nèi)存分為5類:

1、棧:由編譯器自動(dòng)分配和釋放,存放函數(shù)的參數(shù)值、局部變量的值等。

2、堆區(qū)(heap):一般由程序員分配和釋放(使用free)。如果程序員不釋放它,它就會(huì)一直被占用。一般來(lái)說(shuō),微控制器類的程序一般不使用堆。

3、全局區(qū)(靜態(tài)區(qū))():將全局變量和靜態(tài)變量的存儲(chǔ)放在一起,初始化的全局變量和靜態(tài)變量在同一個(gè)區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在同一個(gè)區(qū)域區(qū)域。另一個(gè)相鄰的區(qū)域。

4、字面常量區(qū)(const):常量字符串放在這里。

5、程序代碼區(qū)(code):存放函數(shù)體的二進(jìn)制代碼。

經(jīng)典例子:

整數(shù)a = 0;全局初始化區(qū)

字符 *p1; 全局未初始化區(qū)域

主要(無(wú)效)

{

詮釋 b; // 堆

字符 s[] = "abc"; //堆

字符 *p2; //堆

字符 *p3 = ""; \0";//在常量區(qū)CAD迷你編輯器,p3在棧上。

詮釋 c = 0; //全局(靜態(tài))初始化區(qū)

p1 = (char *)(10);

p2 = (char *)(20);

//分配的10和20字節(jié)的區(qū)域在堆區(qū)。

(p1, ""); //\0 放在常量區(qū)注冊(cè)機(jī)怎么分配路徑,編譯器可以優(yōu)化到一個(gè)位置,p3 所指向的""。

}

發(fā)表評(píng)論