在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            ARM入門篇之(二)工具

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

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

            本文引用地址:http://www.biyoush.com/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 設(shè)置程序開始地址(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é)束位置

            }?

            ?



            關(guān)鍵詞: ARM入門工

            評論


            技術(shù)專區(qū)

            關(guān)閉