国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM入門篇之(二)工具

ARM入門篇之(二)工具

作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
(1) 交叉工具鏈,可以理解為交叉工具集

?交叉,指在宿主機上編寫編譯好代碼,生成目標機能夠運行的格式文件,通過數(shù)據(jù)線連接宿主機與目標機,從宿主機上下載程序到目標機內(nèi)

本文引用地址:http://m.ptau.cn/article/201611/319418.htm

工具鏈,就是交叉?編譯器(arm-linux-gcc),交叉連接器(arm-linux-ld),交叉轉(zhuǎn)換器(arm-linux-objcopy),交叉ELF文件閱讀器(arm-linux-readelf),交叉反匯編器(arm-linux-objdump)等工具的集合

?

(2)Makefile管理

?makefile,描述了整個程序的編譯,鏈接等的規(guī)則

包括:什么樣的源文件需要編譯,鏈接;使用什么工具編譯,鏈接;編譯,鏈接時依賴哪些文件;?最后產(chǎn)生我們先要的最終執(zhí)行文件

而上面這一個過程只要你編寫好makefile這個文件,再用make命令就可一步生成最終想要的可執(zhí)行文件?

makefile由規(guī)則和變量構(gòu)成

規(guī)則:描述了如何通過依賴文件,使用什么工具命令,最終生成?目標文件

格式如下:

目標:依賴??

[Tab]命令

例如:

start.o:start.S

?[Tab]arm-linux-gcc -g -o start.o -c start.S

?變量:

系統(tǒng)定義的變量:($@)代表目標,($^)代表所有依賴,($<)代表第一個依賴,(%)通配符?

例如上面的例子用變量就是:

%.o:%.S

[Tab]arm-linux-gcc -g -o $@ -c $^??

默認情況下,make命令會自動找到文件名叫makefile的文件,當你把makefile改名后,可以用命令:

make -f 文件名?

(3)鏈接腳本(.lds)

段:一個可執(zhí)行程序通常由代碼段,數(shù)據(jù)段。bss段構(gòu)成,所以在腳本文件中也要體現(xiàn)出來

?鏈接腳本大概如下:

?OUTPUT_FORMAT("elf32littlearm",“elf32littlearm”,“elf32littlearm”)

指定輸出文件格式為elf,32位,小端,arm指令

OUTPUT_ARCH(arm)

?指定輸出平臺為ARM

ENTRY(_start)

指定入口_start

??SECTIONS{

. = 0x50000000 設置程序開始地址(OK6410首地址)

. = ALIGN(4) 代碼四字節(jié)?對齊

?.text: 指定代碼段

{

start.o(.text)? 第一個部分代碼為Start.o

*(.text)? 其他部分代碼放在start.o代碼后面

}?

.= ALIGN(4)?

? .data:{ *(.data) }? 數(shù)據(jù)段

. = ALIGN(4)

bss_start = . ? bss段的開始位置

.bss:{ *(.bss) } bss段

bss_end = .? bss段的結(jié)束位置

}?

?



關鍵詞: ARM入門工

評論


技術專區(qū)

關閉