ARM裸機開發快速體驗

2021-07-08 19:36:34 字數 1967 閱讀 4323

一。linux平台:

自己寫makefile

自己寫lds指令碼

自己搭建除錯環境

二。裸機開發流程

(1).編寫裸機程式

(2).除錯裸機程式

(3).編譯 鏈結 格式轉換成二進位制映像

1.安裝交叉工具鏈:

把課程裡面的工具包拷貝到linux,解壓arm-linux-gcc到根目錄-c /

交叉工具在usr/local/arm/4.4.3/bin/

2.修改環境變數:

vim /root/.bashrc

新增:export path=$path:/usr/local/arm/4.4.3/bin

生效:source /root/.bashrc

3.編譯生成.o

arm-linux-gcc -g -c led.s

4.鏈結生成.elf

arm-linux-ld -tled.lds -o led.elf led.o

5.格式轉換生成.bin

arm-linux-objcopy -o binary led.elf led.bin

(4).燒寫到開發板

dnw三。makefile工程管理

(1)為什麼需要makefile(必備技能)

把很多任務作合併成乙個簡單的命令make

(2)makefile構成

1.規則:如何生成目標檔案(目標只能乙個)

1.1格式

目標: 依賴

命令 1.2偽目標

如果沒有依賴就是偽目標,比如clean

格式 .phony:目標

1.3最終目標

makefile第一條規則

2.變數:

2.1自定義變數

2.2系統定義的預設變數 代表

所有依賴

檔案@ 代表目標

《代表第乙個依

賴3.通用

規則ar

m−li

nux−

gcc−

g−o @ -c $^

(3)makefile使用技巧

1.去回顯

在命令前面加@符號

2.檔名

2.1預設情況下 名字叫makefile或者makefile

2.2如果改名 直接make找不到檔案 可以使用-f

格式:make -f filename

四。鏈結器指令碼

(1)指令碼神奇作用

(2)指令碼構成

1.基本構成:段

建立段資訊:vi led.lds

sections

.data :

.bss : }

sections

.data :

.bss : }

用反彙編工具來看:

arm-linux-objdump -d -s led.elf >dump

vi dump

看到起始位址是00000000

如果修改.=0x30008000;

通過反彙編檢視起始位址變為30008000

3.對齊設定

規則:4位元組對齊

sections

. = align(4);

.data :

. = align(4);

.bss : }

4.使用變數

sections

. = align(4);

.data :

. = align(4);

bss_start = . ;

.bss :

bss_end = . ;

}5.設定**段首檔案

sections

. = align(4);

.data :

. = align(4);

.bss : }

015裸機開發快速體驗

1 裸機開發流程 1 編寫裸機程式 2 除錯邏輯程式 3 生成二進位制映象 編譯,鏈結,格式轉換 4 燒寫 執行二進位制映象 2 安裝交叉編譯器 將arm tools壓縮包複製到linux系統,然後解壓 解壓之後可以看到該目錄下的檔案 然後安裝工具鏈,其實就是解壓 解壓 arm linux gcc ...

ARM 裸機 02 ARM裸機開發流程

執行在不同平台上的程式,開發過程不盡相同。為了更好地理解 arm 裸機的開發流程,我們先和比較熟悉的 windows linux 應用程式開發對比。不同平台程式開發流程對比示意 編譯嵌入式程式的平台稱為宿主機,譬如執行 ubuntu 系統的 pc。執行嵌入式程式的平台稱為目標機,譬如 arm 開發板...

學習日誌 2 2 1 裸機開發快速體驗

裸機開發流程 1.編寫裸機程式 2.除錯裸機程式 3.生成2進製映像 編譯 鏈結 格式轉換 4.燒寫 執行2進製映像 安裝交叉編譯器 1.複製arm tools到linux中 2.解壓工具鏈 tar zxvf arm tools.tar.gz 3.安裝arm linux gcc tar zxvf a...