天天看點

[ARM裸機程式][1]ARM裸機程式開發環境搭建[1]環境搭建交叉編譯基礎Makefile基礎知識連結器腳本eclipse內建開發環境

[1]環境搭建

安裝交叉編譯工具鍊(arm-linux-gcc4.4.3)

詳見Bolg。

交叉編譯基礎

arm-linux-gcc常用指令

1.檢視頭檔案和庫檔案的搜尋路徑:

2.arm-linux-gcc常用指令

arm-linux-gcc -g -c led.S
//-c為僅彙編操作 -g添加調試資訊
arm-linux-ld -Tled.lds -o led.elf led.o
//執行連結操作
arm-linux-readelf -a led.elf
//檢視elf檔案頭資訊
arm-linux-objdump -D -S led.elf
//執行反彙編操作
arm-linux-objcopy -O binary led.elf led.bin
//轉換為二進制檔案
           

Makefile基礎知識

基本結構

target(目标) : prerequisites(依賴)
    command(指令)
           

變量的使用

- 定義:obj=func1.o func2.o
- 使用:$(obj)
           

特殊變量

- $^ :代表所有依賴檔案
- [email protected] :代表目标
- $< :代表第一個依賴檔案
           

通用規則(執行個體)

%.o : %.c
    arm-linux-gcc -o %@ -g -c %^
           

連結器腳本

SECTIONS {
        . = ;
        . = ALGN();
        .text :
        {
            start.o(.text)
            *(.text)
        }
        . = ALGN();
        .data :
        {
            *(.data)
        }
        bss_start=.
        . = ALGN();
        .bss :
        {
            *(.bss)
        }

}
           

設定起始連結位址

設定4位元組對齊

變量的使用

代碼段首檔案

start.o(.text)
*(.text)
           

eclipse內建開發環境

- arm-linux-gcc
- arm-linux-gdb
- JLink_Linux
- eclipse
注意:環境變量配置在/etc/profile中。
           

繼續閱讀