一、前言
上一篇文章說了,在開發之前必須先搭建起交叉編譯環境,於是這里我們就介紹一下環境的搭建過程。
其實在所安裝的Vivado HLx 2016.4中就包含了Xilinx SDK,在該SDK上即可開發Linux上的應用程序,但我在使用的過程中發現該SDK自帶的編譯器與通常手動安裝的交叉編譯鏈有所不同,導致在程序編寫的過程中缺少了很多頭文件。為此,我試過將Ubuntu系統中的相關Linux頭文件拷貝到了Windows系統並添加至SDK的搜索路徑中,但最終由於Windows與Linux系統的諸多不同而失敗。下一步,我將直接在Ubuntu系統上安裝單獨的SDK工具,並嘗試將手動安裝的交叉編譯鏈添加至SDK中。我這么做的目的是將SDK提供的BSP和Linux系統下開發的應用程序結合起來,而不用在Linux系統中開發程序時重寫BSP的相關接口。
下面回歸到我們的主題,交叉編譯環境的搭建,其實就是在Ubuntu中安裝Xilinx提供的交叉編譯鏈。
二、軟件安裝
[本文系統:Ubuntu14.04.5 LTS 64bit]
1、下載Xilinx交叉編譯鏈:xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin(網絡上有不少分享鏈接)
2、將交叉編譯鏈拷貝到Ubuntu系統中,安裝前在終端運行命令:“ sudo dpkg-reconfigure dash ”,在彈出的界面上選擇“ 否 ”,退出。
(作用:設置默認的shell為bash;原因:Ubuntu安裝的時候使用了dash,dash比bash體積小速度快,兼容性高。但是在bash下可以正常運行的一些sh在dash下不能使用,造成了一些麻煩。為了解決之,鍵入sudo dpkg-reconfigure dash,重新配置dash,並選擇“no”,即不使用dash。)
3、在終端運行安裝命令:“ sudo ./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin ”,然后出現安裝界面,選擇默認設置安裝即可。
4、額外配置:手動添加環境變量,在終端運行命令“ gedit /etc/bash.bashrc ”打開bash.bashrc文件,在文件中添加如下內容:
export ARCH=arm export CROSS_COMPILE=arm-xilinx-linux-gnueabi- export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin/:$PATH
(作用:將編譯環境路徑加入到PATH環境變量,以后編譯程序時無需再使用export命令指定;其中,“ /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux ” 是交叉編譯鏈的默認安裝路徑)
5、驗證:在終端輸入命令“ arm-xilinx-linux-gnueabi-gcc-v ”,若能打印出相關版本信息則說明安裝成功。
PS:由於交叉編譯鏈默認安裝在了 /root 目錄下,所以在終端上使用一般用戶時可能無法訪問,切換為 root 身份即可。
后續將繼續探索前沿所說的“將SDK提供的BSP和Linux系統下開發的應用程序結合起來”,以及使用Code Blocks來作為開發工具(需將安裝的交叉編譯鏈配置進去)。
參考鏈接:
ZedBoard移植嵌入式Linux教程(5)——安裝交叉編譯工具鏈 | 電子創新網賽靈思中文社區