0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ZYNQ的開發(fā)流程

工程師鄧生 ? 來源:CSDN ? 作者:姚家灣 ? 2022-09-15 09:04 ? 次閱讀

買了一塊ZYNQ 開發(fā)板Z7-NANO,開始了ZYNQ開發(fā)的苦難之旅。盡管按照廠商提供的開箱檢查指南,將image 拷貝到sd卡上插入板上后板子工作起來了。但是如何開發(fā)應用軟件呢?這一步要比平常的SOC麻煩了許多。

安裝軟件

網(wǎng)絡上有許多的文章介紹應用軟件的開發(fā),但是大多數(shù)使用的是舊版本的vivado和SDK 軟件。開發(fā)板提供的文檔和軟件也大多是基于舊版軟件的,但是官網(wǎng)上已經使用的軟件是vivado和vitis了,前者開發(fā)硬件,后者開發(fā)軟件。

下載軟件使用 Xilinx Unified Installer 2021.2。通過它下載vivado和vitis。安裝軟件需要足夠的磁盤空間和耐心。vitis 軟件包大約有60個G左右。vitis 中包括了vivado 軟件。只需要下載vitis就可以了,不必單獨地下載vivado。

vivado用來開發(fā)硬件,vitis 開發(fā)軟件,相當于原來的SDK。

由于手頭沒有大硬盤空間的ubuntu Linux 電腦,又不想去做VM。先安裝在windows10 的筆記本上了。網(wǎng)絡上建議安裝在ubuntu 上。

ZYNQ 的開發(fā)流程

ZYNQ 的開發(fā)要比其它的SOC開發(fā)復雜的多。大至的流程包括:

34995cce-348e-11ed-ba43-dac502259ad0.pngimg

ZYNQ的開發(fā)包括

1 硬件邏輯設計

硬件工程師設計邏輯并將軟件開發(fā)所需的信息從Vivado導出到 XSA 存檔文件。

2 構建軟件平臺

平臺(platform)

平臺是硬件組件 (XSA) 和軟件組件(域/BSP、FSBL 等引導組件等)的組合。

領域(domain)

一個平臺上可以建立多個領域。領域是一個板級支持包 (BSP) 或操作系統(tǒng) (OS),其中包含用于構建應用程序的軟件驅動程序集合。例如LinuxDomain??梢詣?chuàng)建多個應用程序以在域上運行。領域與平臺中的單個處理器或同構處理器集群。比如在一個核上運行Linux,或者在兩個核的集群上運行Linux。

建立領域的基礎是支持包和操作系統(tǒng)。Zynq 的Linux 稱為PetaLinux。PetaLinux 的裁剪需要使用Petalinux 構建工具。

Petalinux是Xilinx公司推出的嵌入式Linux開發(fā)套件,包括了Linux Kernel、u-boot、device-tree、rootfs等源碼、庫,以及Yocto recipes,可以讓客戶很方便的生成、配置、編譯及自定義。Petalinux支持Zynq UltraScale+ MPSoC、Zynq-7000全可編程SoC,以及MicroBlaze,可與Xilinx硬件設計工具Vivado協(xié)同工作,大大簡化了Linux系統(tǒng)的開發(fā)工作。

在vitis 軟件中,包含Xilinx開發(fā)的多個開發(fā)板的硬件xsa。并且能夠建立相應的LinuxDomain。

3 應用程序開發(fā)

軟件開發(fā)人員基于平臺和領域創(chuàng)建應用程序。

在已有的平臺上開發(fā)應用程序

網(wǎng)絡上有許多ZYNQ 應用程序開發(fā)的文檔和教程,但是它們大多數(shù)使用的2018 年前的vivado 和SDK 的。幾乎沒有使用vitis 開發(fā)。而國內的ZYNQ開發(fā)板目前還沒有提供支持vitis 平臺的軟件包。

網(wǎng)絡上關于ZYNQ 開發(fā)的介紹文章都比較復雜,大多數(shù)從vivado 硬件設計開始,再談petaLinux,再談到vitis 的使用。

其實沒有那么復雜。 最方便地方法就是在vitis 軟件中支持xilinx 開發(fā)板的platefrom 構建應用程序,這些開發(fā)板包括:

zc702 基于Zynq XC7Z020-1CLG484C。

zc706 基于XC7Z045,PCI插卡結構

zcu102 Zynq? UltraScale+? MPSoC ,四核 ARM? Cortex?-A53、雙核 Cortex-R5F 實時處理器以及一款 Mali?-400 MP2 圖像處理單元。

zcu106 基于Zynq UltraScale+MPSoC。

zedBoard 基于Zynq-7000 SoC XC7Z020-CLG484-1。由安富利公司開發(fā)的低成本開發(fā)板。

開發(fā)的過程

vitis –New->Create Application Project

34ce4f7e-348e-11ed-ba43-dac502259ad0.png

點擊Next。

352676a4-348e-11ed-ba43-dac502259ad0.png

選擇zc702 平臺,點擊Next。

填入Application Project Nam。例如LinuxApp4

356d707c-348e-11ed-ba43-dac502259ad0.png

Z7020 系列ZYNQ 是雙核cortex-A9 .

領域可以建立在單核上也可以建立在雙核上,也可以是一個為linux,一個為freeRTOS 上。非常靈活,在這里我們選擇ps7_cortexa9_SMP。雙核linux。

按Next

35978204-348e-11ed-ba43-dac502259ad0.pngimg

在這一步我以為要填入紅框內的內容,下載了 common image,并且生成了Sysroot

xilinx-zynqmp-common-v2021.2

導入到項目中,結果發(fā)現(xiàn)編譯通不過,缺少-lstdC++,等等問題。后來發(fā)現(xiàn),z702 平臺包中已經包含了Sysroot 的SDK內容。不需要填入任何東西就可以編譯成功。

按Next

35d1fb6e-348e-11ed-ba43-dac502259ad0.png

選擇Linux Hello World!

生成了一個簡單的hello world c程序

#include



intmain(){



printf("Helloworld
");



}

選擇 Project-> Build Project .經過很長的一段時間。終于編譯成功了。但是沒法形成SD image。

copy 到我的Z7_Nano 開發(fā)板的SD Card 上。插入到目標板,運行Linux。輸入

$>mkdirsdcard



$>mount/dev/mmcblk0sdcard



$>cdsdcard



$>./main.elf



Helloworld!



$>

為了測試其它庫的調用,編寫了一個UDP Client 程序,同樣編譯成功了

//ClientsideimplementationofUDPclient-servermodel



#include



#include



#include



#include



#include



#include



#include



#include







#definePORT8080



#defineMAXLINE1024







//Drivercode



intmain(){



intsockfd;



charbuffer[MAXLINE];



char*hello="Hellofromclient";



structsockaddr_inservaddr;







//Creatingsocketfiledescriptor



if((sockfd=socket(AF_INET,SOCK_DGRAM,0))

為了測試C++ 程序,編寫了

#include



usingnamespacestd;



classhello{



public:



voidSayHello();



};



voidhello::SayHello()



{



cout<<"Hello?world"<

也通過了編譯。

結束語

ZYNQ 要比普通的SOC 芯片復雜很多,國產開發(fā)板的技術支持相對滯后。給初學者帶來不小的困難。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • soc
    soc
    +關注

    關注

    38

    文章

    4021

    瀏覽量

    217028
  • Zynq
    +關注

    關注

    9

    文章

    604

    瀏覽量

    47012
  • Ubuntu系統(tǒng)

    關注

    0

    文章

    85

    瀏覽量

    3859

原文標題:zynq /vitis 應用筆記

文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    正點原子ZYNQ7015開發(fā)板!ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2,性能強悍,資料豐富!

    本帖最后由 jf_85110202 于 2024-9-14 10:33 編輯 正點原子ZYNQ7015開發(fā)板!ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2,性能強悍,資料豐富
    發(fā)表于 09-14 10:12

    [XILINX] 正點原子ZYNQ7035/7045/7100開發(fā)板發(fā)布、ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2!

    正點原子FPGA新品ZYNQ7035/7045/7100開發(fā)板,ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2! 正點原子Z100 ZYNQ
    發(fā)表于 09-02 17:18

    迪文串口屏ModBus開發(fā)流程

    這里接前一章節(jié),繼續(xù)迪文屏的開發(fā),前章主要講解基礎開發(fā)流程,此章節(jié)開始講解迪文ModBus協(xié)議棧的使用方法。前文指路:《迪文串口屏基礎GUI開發(fā)流程
    的頭像 發(fā)表于 07-19 08:21 ?274次閱讀
    迪文串口屏ModBus<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>

    Xilinx ZYNQ 動手實操演練

    powerpc練手和教學,從頭搭一個Snoop協(xié)議在裸的雙PowerPC中,倒也不錯。 開發(fā)環(huán)境 Zynq開發(fā)環(huán)境,可以在ISE或者Vivado,不過ISE在14.7之后就停止了更新,建議安裝
    發(fā)表于 05-03 19:28

    dSPACE開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《dSPACE開發(fā)流程.pdf》資料免費下載
    發(fā)表于 02-29 09:08 ?0次下載

    芯科科技發(fā)布新版藍牙開發(fā)流程

    查看Silicon Labs(亦稱“芯科科技”)近日發(fā)布新版的藍牙開發(fā)流程(Bluetooth Developer Journey),了解更多關于低功耗藍牙、藍牙Mesh、藍牙定位服務,以及電子貨架標簽(ESL)等設計方法,我們將概述相關應用
    的頭像 發(fā)表于 01-25 10:09 ?587次閱讀
    芯科科技發(fā)布新版藍牙<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>

    智能網(wǎng)聯(lián)汽車隱私開發(fā)方法與流程探究

    本報告針對智能網(wǎng)聯(lián)汽車用戶的隱私泄露的問題,對智能網(wǎng)聯(lián)汽車隱私開發(fā)方法與流程進行分析。
    的頭像 發(fā)表于 12-16 11:31 ?823次閱讀
    智能網(wǎng)聯(lián)汽車隱私<b class='flag-5'>開發(fā)</b>方法與<b class='flag-5'>流程</b>探究

    多語言開發(fā)流程詳解

    現(xiàn)在不少應用都是要求有多語言切換的, 使用QT開發(fā)上位機也同樣需要做多語言功能, 不過QT是自帶了多語言翻譯功能, 可以很方便的借助原生工具進行, 下面就簡單來看看多語言開發(fā)流程!
    的頭像 發(fā)表于 11-30 09:08 ?896次閱讀

    嵌入式軟件的開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式軟件的開發(fā)流程.doc》資料免費下載
    發(fā)表于 11-17 14:39 ?0次下載
    嵌入式軟件的<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>

    嵌入式軟件開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式軟件開發(fā)流程.ppt》資料免費下載
    發(fā)表于 11-17 14:37 ?3次下載
    嵌入式軟件<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>

    嵌入式系統(tǒng)的組成及開發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式系統(tǒng)的組成及開發(fā)流程.ppt》資料免費下載
    發(fā)表于 11-17 14:35 ?1次下載
    嵌入式系統(tǒng)的組成及<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>

    AUTOSAR軟件開發(fā)流程簡介

    AUTOSAR軟件開發(fā)流程簡介 AUTOSAR軟件開發(fā)流程是指在AUTOSAR架構下進行軟件開發(fā)的一系列步驟和方法。它包括以下幾個主要階段:
    的頭像 發(fā)表于 10-27 15:55 ?2727次閱讀
    AUTOSAR軟件<b class='flag-5'>開發(fā)</b><b class='flag-5'>流程</b>簡介

    基于ZYNQ的超低成本的開發(fā)

    在這塊板子上,用VGA顯示攝像頭實時采集到的畫面,是完全可以工作的。這樣一個平臺,自己完全可以用來做一做基于ZYNQ的圖像處理算法,做一做人臉識別,神經網(wǎng)絡,這些都是完全可以的。
    發(fā)表于 10-19 10:29 ?628次閱讀
    基于<b class='flag-5'>ZYNQ</b>的超低成本的<b class='flag-5'>開發(fā)</b>板

    電路板開發(fā)的發(fā)展趨勢和流程

    在計算機化的發(fā)展進程中,電路板開發(fā)流程幾乎沒有重大的改變,但是開發(fā)的產品特性已經有很大的不同,電路板開發(fā)工程師必須要面對這些挑戰(zhàn),設計開發(fā)
    的頭像 發(fā)表于 10-15 12:07 ?1420次閱讀

    ZYNQ設計的基本流程

    ZYNQ內部的總體框架如所示,PS中包含2個ARM Cortex-9的內核,一些基本的外設擴展口以及Memory接口。PS和PL的相互通信通過兩個通路完成,分別是GP(General Purpose)Ports和HP(High Performance)Ports。
    的頭像 發(fā)表于 09-22 09:26 ?788次閱讀
    <b class='flag-5'>ZYNQ</b>設計的基本<b class='flag-5'>流程</b>