為裸機開發做鋪墊
我們需
安裝交叉編譯工具鏈 (就是在linux下安裝軟體)並且進行相關配置方便裸機開發時使用
熟悉makefile流程 方便裸機開發工程管理
知道各個檔案字尾的作用以及來歷
mkv210_imge.c程式的作用以及內部**
區分ubs串列埠燒寫和sd卡燒寫的區別
1;我們使用安裝包的形式進行安裝工具鏈
交叉編譯工具鏈的安裝
步驟1:開啟虛擬機器,在/usr/local/下建立/usr/local/arm資料夾
步驟2:先將安裝包從windows中弄到linux中去。可以用共享資料夾,也可以用samba,也可以cuteftp。
步驟3:解壓。tar -jxvf arm-2009q3.tar.bz2
到此相當於程式已經安裝完畢,真正的應用程式安裝在/usr/local/arm/arm-2009q3/bin目錄下
安裝後的測試
到真正的應用程式的安裝目錄下(也就是/usr/local/arm/arm-2009q3/bin),去執行arm-linux-gcc -v
執行方法是:./arm-none-linux-gnueabi-gcc -v
執行後可以得到一長串輸出,其中有「gcc version 4.4.1 」字樣,即表示安裝成功。
2;環境配置
將工具鏈匯出到環境變數
export path=/usr/local/arm/arm-2009q3/bin:pa
th在一
個終端中
執行以上
命令後,
該終端中
就可以直
接使用a
rm−l
inux
−gcc
了,但是
只要關掉
這個終端
再另外打
開乙個立
馬就不行
了。原因
是我們本
次終端中
執行時的
操作只是
針對本終
端,以後
再開啟的
終端並未
被執行過
這個命令
所以沒導
出。解決
方案是在
/.ba
shrc
中,新增
expo
rtpa
th=/
usr/
loca
l/ar
m/ar
m−2009q3
/bin
: pat
h在乙個
終端中執
行以上命
令後,該
終端中就
可以直接
使用ar
m−li
nux−
gcc了
,但是只
要關掉這
個終端再
另外開啟
乙個立馬
就不行了
。原因是
我們本次
終端中執
行時的操
作只是針
對本終端
,以後再
開啟的終
端並未被
執行過這
個命令所
以沒匯出
。解決方
案是在/
.bas
hrc中
,新增e
xpor
tpat
h=/u
sr/l
ocal
/arm
/arm
−2009q3
/bin
:path 即可。
注意:我們匯出這個環境變數是在當前使用者,如果你登入時在其他使用者下是沒用的。
3,為工具鏈建立arm-linux-***符號鏈結
ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line
可以製作指令碼 就是將這些命令放到乙個檔案中做成.sh檔案,然後放到bin目錄下進行source執行即可
(注意在window下的文字中換行是\n而linux中換行是-r,因此有時會指令碼製作出錯 就是這個原因 解決辦法是在linux裡面建指令碼檔案然後進行貼上,而不是在window下貼上)
4;makefile;
為什麼需要makefile
makefile是用來管理工程的。
在乙個正式的軟體專案中,由很多個.c和.h檔案構成,此時如果直接在命令列編譯,就會像這樣:gcc a.c b.c c.c d.c e.c f.c g.c -o exe 這時候每次編譯的時候都要打很多a.c等等 很不方便 那麼就引出了makefile 建乙個檔案裡面寫好這些** 那麼每次編譯除錯的時候只需要打make編譯就可以了 主要是乙個整合的作用
makefile中的一些基本概念
目標:目標定格寫,後面是冒號(冒號後面是依賴)
依賴:依賴是用來產生目標的原材料。
命令:命令前面一定是tab,不能是定格,也不能說多個空格。命令就是要生成那個目標需要做的動作。
makefile的基本工作原理
其一,當我們執行 make xx 的時候,makefile會自動執行xx這個目標下面的命令語句。
其二,當我們make xx的時候,是否執行命令是取決於依賴的。依賴如果成立就會執行命令,否則不執行。
其三,我們直接執行make 和make 第乙個目標 效果是一樣的。(第乙個目標其實就是預設目標)
makefile裡面的內容
mkv210_image.c的作用:為bl1新增校驗頭
我們編譯鏈結時只得到了led.bin,這個210.bin的得到和交叉編譯工具鏈是完全無關的。由led.bin得到210.bin的過程是三星的s5pv210所特有的,因此需要我們自己去完成,為此我們寫了mkv210_image.c來完成。
嵌入式裸機之ADC學習筆記
1 adc analog digital converter,ad轉換,模數轉換 也就是模擬轉數字 2 cpu本身是數字的,而外部世界變數 如電壓 溫度 高度 壓力 都是模擬的,所以需要用cpu來處理這些外部的模擬變數的時候就需要做ad轉換。為了用數字技術來處理外部的模擬物理量。1 模擬的就是連續的...
嵌入式Linux裸機開發(十五) LCD
lcd liquid crystal display 是 液晶顯示器簡稱。lcd的構造是在兩片平行的 玻璃基板當中放置液晶盒,下基板玻璃上設定 tft 薄膜電晶體 上基板玻璃上設定彩色濾光片,通過tft上的訊號與電壓改變來控制液晶分子的轉動方向,從而達到控制每個畫素點偏振光出射與否而達到顯示目的。按...
ARM嵌入式裸機程式學習(一)
這裡不用ads整合開發環境,因為ads相容性存在問題,而且通過自己手動編譯 鏈結對學習有好處,所以我們下面都在linux環境下進行arm開發。開發環境 linux作業系統 ubuntu 開發工具 arm linux gdb 7.5 eclipse cpp helios sr2 linux gtc a...