国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網(wǎng)

標(biāo)題: 嵌入式各種文件掃盲BIN,hex..... [打印本頁]

作者: 技術(shù)小白    時(shí)間: 2018-5-15 15:05
標(biāo)題: 嵌入式各種文件掃盲BIN,hex.....
文件格式
(1)BIN文件:binary文件,即二進(jìn)制文件。

(2)HEX文件:hex的全稱是Intel HEX,此類文件通常用于傳輸將被存于ROM或者EPROM中的程序和數(shù)據(jù)。是由一行行符合Intel HEX文件格式的文本所構(gòu)成的ASCII文本文件。大多數(shù)EPROM編程器或模擬器使用Intel HEX文件。 HEX文件記錄由對應(yīng)機(jī)器語言碼和/或常量數(shù)據(jù)的十六進(jìn)制編碼數(shù)字組成。

(3)ELF文件: 是Linux的主要可執(zhí)行文件格式。 ELF文件除了機(jī)器碼外,還包含其它額外的信息,如段的加載地址,運(yùn)行地址,重定位表,符號表等。

(4)bin文件和elf文件重點(diǎn)摘要:
執(zhí)行raw binary很簡單,只需要將程序加載到其起始地址,就可以執(zhí)行; 執(zhí)行ELF程序則需要一個(gè)ELF Loader。 現(xiàn)在知道了吧,uboot和Linux kernel啟動(dòng)的時(shí)候是沒有ELF Loader的,所以燒在flash上的文件只能是raw binary格式的,即鏡像文件image。

a)通過gcc編譯出來的是elf文件
b)通過objcpy可以把elf文件轉(zhuǎn)換為bin文件

(5)LDS文件:它定義了整個(gè)程序編譯之后的連接過程,決定了一個(gè)可執(zhí)行程序的各個(gè)段的存儲位置。指定連接文件的存儲地址、運(yùn)行地址,存儲地址和運(yùn)行地址可以相同也可以不同。轉(zhuǎn)自:https://wenku.baidu.com/view/9a8beb125f0e7cd18425369a.html

(6)map文件:map文件是程序的全局符號、源文件和代碼行號信息的唯一的文本表示方法,是整個(gè)程序工程信息的靜態(tài)文本,通常由linker生成。 map文件保存整個(gè)工程的靜態(tài)文本信息,里面有所有函數(shù)的入口地址。
通過查看map文件,我們可以找到代碼段(.text),全局未初始化區(qū)(.bss),數(shù)據(jù)段(.data)。

map文件的作用是,我們可以根據(jù)程序產(chǎn)生錯(cuò)誤地址在map文件中找到相應(yīng)的函數(shù)、變量地址。

(7)symbol文件:目標(biāo)文件的值、類型、名字,例如: 00000024 T cleanup_before_linux

00000024是以16進(jìn)制顯示的其值,T為類型表示此函數(shù)位于代碼區(qū),而cleanup_before_linux是其名字。可以看出,上面顯示的cleanup_before_linux這個(gè)symbol的值實(shí)際上是該函數(shù)在text section中的偏移。但是,每個(gè)符號的值的具體含義依其類型而異(類型見原文)。當(dāng)然,對于每個(gè)符號的值,其類型、其值以及它們所屬的section是密切相關(guān)的。

(8)Code:代表執(zhí)行的代碼,程序中所有的函數(shù)都位于此處。

RO-data: 代表只讀數(shù)據(jù),程序中所定義的全局常量數(shù)據(jù)和字符串都位于此處。

RW-data:代表已初始化的讀寫數(shù)據(jù),程序中定義并且初始化的全局變量和靜態(tài)變量位于此處。

ZI-data:代表未初始化的讀寫數(shù)據(jù),程序中定義了但沒有初始化的全局變量和靜態(tài)變量位于此處。

一、下載到FLASH中的數(shù)據(jù)大小是:(Code + RO Data + RW Data)這個(gè)數(shù)據(jù)關(guān)系到占用了多少單片機(jī)的FLASH,關(guān)系到是否可以再添加程序。比如你的單片機(jī)FLASH是8K,編譯程序后,發(fā)現(xiàn)程序已經(jīng)7K了,但是工程還需要寫很多程序,那就可以考慮換個(gè)FLASH大點(diǎn)的單片機(jī)了。

二、程序運(yùn)行是要在RAM中運(yùn)行的大小是:(RW Data + ZI Data) 單片機(jī)的兩個(gè)重要參數(shù),一個(gè)是上面的FLASH大小,一個(gè)是RAM大小。看了第一條,就知道這條的重要性。

剛?cè)腴T的,看程序的大小,會看HEX文件在WINDOWS中的占用大小來確定占用FLASH的大小,是不對的。

這個(gè)HEX文件在電腦上的大小是4.46KB,但是它只會占用單片機(jī)FLSAH的1.57KB,如下圖所示:

(提示:在你生成的工程中的Listings文件夾里面,有一個(gè).map后綴的文件,拉到最后面,就有算好的大小)

以下課程可免費(fèi)試聽C語言、電子、PCB、STM32、Linux、FPGA、Python、安卓等。
想學(xué)習(xí)的你和我聯(lián)系預(yù)約就可以免費(fèi)聽課了。宋工Q35--24-65--90-88   Tel/WX:173--17--95--19--08







歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 天天干天天上| 中文字幕视频在线观看| 国产午夜高潮熟女精品AV| 老熟女重囗味HDXX| 亚洲AV综合色一区二区三区| 欧美第一页在线| 一本道高清不卡v免费费| 新国产视频| 青草视频青年娱乐| 午夜骚片| 我和岳的性事小说| 18禁止观看免费私人影院| 黑人巨大交牲老太| 视频三区 国产盗摄| 一级毛片免费高清视频| 日本欧美中文字幕| 亚洲系列中文字幕一区二区| 亚洲国产天堂久久综合226| 中文字幕在线天堂| 含羞草传媒在线观看| 亚洲 欧美 国产 伦 综合 | 亚洲成色爱我久久| 天天天操天天天干| 午夜激情视频专区在线观看网站大全| 天堂va| 在线国产一区| 京香在线观看| 亚洲激情网站| 亚洲国产一区二区三区| 日操夜操天天操| 伊人成年综合网| 伊人影院在线播放| 国产偷窥盗摄一区二区| 在线超碰免费视频观看| 欧美成人性色xxxxx视频大| 婷婷免费在线| 香蕉狠狠干| xnxnxn69日本| 欧美精品AV无码一区二区| 亚洲线精品一区二区三区| 欧美精品日韩|