關於Xilinx SDSoc的介紹我就不再復述了,我理解的也不一定准確,可以閱讀官方文檔了解SDSoc,你可以把它理解為一個集成開發環境 (IDE),通過SDSoc我們能夠簡單快速的對Xilinx的開發板進行編程,不用像傳統的嵌入式編程那樣,需要配置嵌入式開發環境,交叉編譯鏈,有時還得去移植Linux到開發板上,而這些繁瑣的工作SDSoc都替你做了,相比較傳統SoC設計流程,SDSoC通過自動生成硬件連接和軟件驅動程序大大簡化了Zynq SoC和MPSoC的開發過程,現在開發人員不需要深層次的了解底層指令就能進行嵌入式開發,這無疑是開發人員的一大利器。
1. 第一步就是安裝Xilinx SDx, 我安裝的是2017.4版本 Xilinx_SDx_2017.4_1216_1.tar.gz 點擊下載
解壓后執行./xsetup就可以安裝, 請注意安裝目錄需要有能夠寫入的權限(或者 sudo ./xsetup):
tar zxvf Xilinx_SDx_2017.4_1216_1.tar.gz cd Xilinx_SDx_2017.4_1216_1/ ./xsetup
安裝完成后會彈出一個license管理的界面,選擇左邊的load license,選擇你本地的license文件,加載好了就可以關閉了,接着進入安裝時選定的安裝目錄(我的是: /opt/Xilinx), 啟動sdx:
cd /opt/Xilinx/SDx/2017.4/bin ./sdx
2.創建一個SDx工程, SDx界面的左上角,點擊File -> New -> SDx Project
填寫項目名稱和工作路徑
選擇開發板型號,我這里是zcu102
這一頁的屬性不用修改,默認就可以
選擇工程的類型,xinlinx給出了一些模板,這里選擇Empty Applicaton,點擊finish完成。
3. 為我們的程序添加一個源代碼文件,左邊的project視圖里面,鼠標移動到src的目錄上點擊右鍵New -> File
在helloworld.cpp里面寫上那段延續了幾十年的古老的代碼
#include <iostream> using namespace std; int main() { cout << "Hello World from Xilinx zcu102." << endl; return 0; }
4. 編譯源代碼,點擊SDx上方的build圖標,圖標旁邊的三角形可以下拉選擇Debug/Release,我這里選擇的Release
build完成后project視圖會多出來一個Release的文件夾(若果你選擇的Debug,那就會多出來一個Debug的文件夾)。我們需要把sd_card文件夾里面的所有文件全部復制到sd卡上(事先格式化為fat32格式)
現在sd卡里面的文件是這樣的
5. 設置zcu102從sd卡啟動,這里可以參考zcu102的快速指南手冊,主要就是SW6的4個開關一定要撥正確
來張特寫
6.連接上串口,串口線和android數據線一樣的那兩根都連接到電腦就可以了,其中靠近網卡的那根就是串口,如果分不清楚就都連上電腦,電腦上打開串口工具,我用的SecureCRT,linux下一定要注意用sudo 權限打開,win7下不用。
圖中的 /dev/ttyUSB0 可能數字 0 會和你的不一致,你可以逐個試一下,其他參數分別為Serial , 115200 , 8 , none , 1 都是下拉選擇的,應該不會選錯。
這樣就能看到啟動信息了,在串口通信的終端打印出來的
7.運行我們的程序,默認情況下你的sd卡會被掛載到/mnt 目錄,所以進入/mnt目錄就可以執行我們生成的firstSDXProject.elf文件
cd /mnt ls -l ./firstSDXProject.elf
ok, 這樣就可以看到運行結果。