這次的移植是在課程《【應用-模組D2】嵌入式系統專案實作:多媒體系列》完成的。目的在 ARM-PXA270 開發板上能夠播放 mp3 音樂檔,我選用移植 madplay。而編譯 madplay 需要如下檔案: madplay-XX.tar.gz 、 libmad-XX.tar.gz , libid3tag-XX.tar.gz 及 zlib-XX.tar.gz 。前三個檔案的下載位址在以下網站可以找到相關的鏈結: http://sourceforge.net/project/showfiles.php?group_id=12349, zlib-XX.tar.gz 的下載網址為: http://www.zlib.net/ 。本次課程日期是 2009年8月29日,我還是下載當時最新版本來做移植,版本分別是: madplay- 0.15.1 b.tar.gz 、 libmad-0.15.1b.tar.gz 、 libid3tag-0.15.1b.tar.gz ,及 zlib-1.2.3.tar.gz 。
madplay的移植步驟如下:
1、確定編譯環境:
目前ARM-PXA270教學板用的 Cross-Compiler 可以是 arm-linux-gcc 3.3.2 或 3.4.1 均可。同時我將 madplay- 0.15.1 b.tar.gz 、 libmad-0.15.1b.tar.gz 、 libid3tag-0.15.1b.tar.gz ,及 zlib-1.2.3.tar.gz 檔案都放在 /home/modDExam5/wav 目錄下。
2、再來編譯連結 zlib- 1.2.3
首先配置其 configure 檔,指令如下:
./configure
待產生 Makefile 檔後,修改此 Makefile 檔將編譯指令均修正加上 arm-linux- ,存檔後,鍵入: make ,編譯 zlib- 1.2.3 產生 libz.a 。到此,編譯連結 zlib- 1.2.3 就算完成了。
3、 編譯 libmad
在完成 zlib- 1.2.3 的編譯後,接著進行 libmad-0.15.1b 的編譯。因為希望編譯後的 madplayer 可以單檔執行,所以必須在 configure 加入 disable shared 選項, CC 選項須以 arm-linux-gcc 進行編譯,這時需加入 --host=arm-linux 。執行的命令至少如下: ./configure CC=arm-linux-gcc --host=arm-linux 。
待產生 Makefile 檔後,鍵入: make ,編譯 libmad 產生 對應的 lib 。到此,編譯 libmad 就算完成了。
4、 編譯 libid3tag
再來就是進行 libid3tag- 0.15.1 b 的編譯。首先還是先以 configure 配置 Makefile :因為 libid3tag 需要用到 zlib ,所以我們必須加入兩項編譯環境變數:
CPPFLAGS=-I /home/modDExam5/wav/zlib- 1.2.3 及
LDFLAGS=-L /home/modDExam5/wav/zlib- 1.2.3 ,當然 CC 還是使用 arm-linux-gcc ,同時也要關閉 shared 。執行的命令至少如下:
./configure CC=arm-linux-gcc --host=arm-linux 。
待產生 Makefile 檔後,再使用: make 編譯 libid3tag 即可。
5、 編譯 madplay
首先還是先以 configure 配置 madplay 的 Makefile :因為 madplay 需要用到zlib 、 libmad 及 libid3tag ,所以我們必須加入兩項編譯環境變數:
CPPFLAGS 及 LDFLAGS ,讓 madplay 可以找到上述三種 LIB,當然 CC 還是使用 arm-linux-gcc , 同時也要關閉 shared 及 啟用 static 項次。執行的命令至少如下:
./configure CC=arm-linux-gcc --host=arm-linux。
待產生 Makefile 檔後,再使用: make 編譯 madplay 即可。而產生出來的 madplay 的可執行檔,你就可以上傳至 ARM 板上( PXA270 ) 執行了。
madplay 的執行指令如下: madplay mp3檔案,你就會聽到 MP3 歌曲囉。
沒有留言:
張貼留言