最近剛剛接觸XILINX的ZYNQ板,剛接觸沒有十天。XILINX定位它為SOC,我也很認同,起碼比TI定位MPU為SOC強很多。據說今年TI的最新產品也加入了ZYNQ板。
之前的MIPS處理器設計與實現的項目就算做告一段落,搞了將近7個月,成果顯著,收獲頗多,最近打算搞搞ZYNQ。
之前MIPS也有一套交叉編譯工具,不過是老師提供的,自己也嘗試搞了搞,太辛苦了,而且也沒什麼成果,因為我們需要LITE版的MIPS指令集。
這次不一樣,ZYNQ集成了兩個ARM cortex-A9處理器,可以支持thumb指令集以及arm指令集,所以這方面的交叉編譯我本以為會很容易,誰知道依舊搞了很久。
|--------zlib |--------jpeg |--------libpng |--------zlib |--------tiff |--------zlib |--------ffmpeg |--------x264 |--------xvidcore 其實,看起來並不難, 但最難的就是這些源碼包之間的相互支持等錯綜復雜的關系,基本上就是錯一個動全身,筆者經過了幾番的嘗試,終於找到了一個在當前環境下可以成功的源碼包,其版本如下: xilinx-arm交叉編譯工具:xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin ffmpeg源碼包:ffmpeg-0.10.3.tar.bz2 jpeg源碼包:jpegsrc.v8d.tar.gz png源碼包:libpng-1.5.14.tar.gz tiff源碼包:tiff-4.0.3.tar.gz x264源碼包:x264-snapshot-20120528-2245-stable.tar.bz2 xvid源碼包:xvidcore-1.3.2.tar.gz zlib源碼包:zlib127.zip OpenCV源碼包:OpenCV-2.4.3.tar.bz2(筆者選用的2.4.3,但是裡面有個bug在Windows下用mingw32-make編譯可能會報錯,對於這個bug官方給的建議是升級2.4.4,選用2.4.4應該也可以,可以嘗試一下,這個沒bug) Qt第三方庫:qt-everywhere-opensource-src-4.8.5.tar.gz(筆者沒有選用最新的5.1版本,據說這個版本增加了很多功能比如傳感器等等,有興趣可嘗試) 由於其是這些庫中有些很難找,筆者直接傳到百度網盤,供下載 http://pan.baidu.com/share/link?shareid=2450342524&uk=487907638 需要注意的是版本一定要正確並且一定要按照以下的順序安裝,否則會出現各種錯誤。 ------------------------------------------------------------------------------------------------------------------- 1.安裝xilinx-arm交叉編譯工具 xilinx-arm交叉編譯工具即SourceryCodeBench,該工具是專門為32位機器設計的,所以64位機器需要下載32-bit庫 sudo -s進入root權限(一定要小心,不要亂刪除文件,退出exit即可) apt-get install ia32-libs ia32-libs-gtk 然後需要將dash更改為bash,輸入 dpkg-reconfigure dash 出現如圖所示對話框,選擇No,將dash修改為bash。 下載xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件,默認保存在Downloads文件夾下,保存位置任意。 輸入如下命令打開文件 cd Downloads // 打開Downloads文件夾,根據保存文件不同,此類指令任意改變,以下略去 ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin // 打開bin文件,由於此時為root權限,所以可以打開任意文件否則需要使用 // chmod命令為文件分配權限 然後彈出如下安裝界面,一路accept和next,選擇Typical安裝以及Do not modify,安裝在默認路徑(/root/CodeSourcery下)安裝完成後,需要導入環境變量,也可以修改bash文件(不需要每次都導入環境變量),指令如下:
export ARCH=arm
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/:$PATH
注意:$PATH 千萬不要輸入錯誤,否則會運行不了很多命令,也可以輸入
gedit /etc/bash.bashrc
如圖所示,添加以下內容
保存並關閉gedit,然後輸入
source /etc/bash.bashrc使當前設置立即生效,
可以通過輸入echo $PATH命令檢查環境變量是否設置正確,如下圖:
可以,編譯C文件進行測試,
使用gedit在任意目錄下編輯hello.c文件如圖所示,保存後進入終端。
以root身份進入到當前目錄下,輸入arm-xilinx-linux-gnueabi-gcc -o hello hello.c命令(該命令root身份有效)
生成hello可執行文件,輸入file hello命令,hello文件信息如下,顯示arm可執行文件。
此時證明arm-xilinx交叉編譯工具安裝正確無誤,進入下一步。
在此之前建議,添加環境變量用於簡單表示交叉編譯庫存放路徑,每次啟動終端都需要輸入此命令
export ZYNQ_CV_BUILD=/opt/opencv/opencv-lib
使用echo $ZYNQ_CV_BUILD命令檢驗是否添加環境變量,再開始對依賴庫的編譯。
接下來請看第2頁的精彩內容: http://www.linuxidc.com/Linux/2013-08/89293p2.htm