一。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...