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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vitis里如何創(chuàng)建嵌入式軟件工程,并且編譯和調(diào)試,直到啟動(dòng)

YCqV_FPGA_EETre ? 來源:FPGA開發(fā)圈 ? 2020-04-30 15:54 ? 次閱讀

1. 介紹

Vitis是Xilinx新推出的統(tǒng)一軟件平臺(tái),可實(shí)現(xiàn)在 Xilinx 所有芯片(包括 FPGA、SoC 和 Versal ACAP)上開發(fā)嵌入式軟件和加速應(yīng)用。Xilinx主要宣傳Vitis可以為異構(gòu)平臺(tái)的應(yīng)用實(shí)現(xiàn)加速。其實(shí),Vitis也能完美的支持嵌入式軟件開發(fā)。下面以MicroZed單板為例,介紹在Vitis里如何創(chuàng)建嵌入式軟件工程,并且編譯和調(diào)試,直到啟動(dòng)。

2. 測試環(huán)境

1). Windows 10
2). Vitis 2019.2
3). MicroZed

3. Vivado工程導(dǎo)出XSA文件

在MicroZed 2019.1 BSP下載MicroZed的Petalinux BSP。解壓后,使用Vivado 2019.2 打開其中的硬件工程,升級(jí)所有IP,然后編譯工程。為了測試,也可以在BD設(shè)計(jì)中,添加AXI timer,AXI BRAM等IP。成功編譯工程后,導(dǎo)出硬件設(shè)計(jì)文件mz_petalinux_wrapper.xsa。在2019.2使用了新的硬件設(shè)計(jì)文件格式,也就是XSA文件。

3.1. BD設(shè)計(jì)

也可以不添加AXI timer,AXI BRAM等IP。

3.2. 導(dǎo)出硬件的菜單

3.3. 導(dǎo)出硬件的界面

請(qǐng)指定XSA文件的路徑和名字。

3.4. Vivado在TCL Console里關(guān)于導(dǎo)出硬件的打印。

write_hw_platform -fixed -force -include_bit -file C:/prj/zynq7000/microzed/v192/MZ7010_FMCCC_2019_1/mz_vitis_sw/mz_petalinux_wrapper.xsa INFO: [Vivado 12-4895] Creating Hardware Platform: C:/prj/zynq7000/microzed/v192/MZ7010_FMCCC_2019_1/mz_vitis_sw/mz_petalinux_wrapper.xsa ... INFO: [Vivado 12-4896] Successfully created Hardware Platform: C:/prj/zynq7000/microzed/v192/MZ7010_FMCCC_2019_1/mz_vitis_sw/mz_petalinux_wrapper.xsa write_hw_platform: Time (s): cpu = 0016 ; elapsed = 0017 . Memory (MB): peak = 1570.996 ; gain = 0.000

4. 創(chuàng)建工程

4.1. 指定workspace目錄。

啟動(dòng)Vitis,指定它的workspace目錄。

4.2. VitisFile菜單

在Vitis的File菜單里,選擇"New --> Application Project"。

4.3. 指定Application工程名

指定Application的工程名,可以使用默認(rèn)的system工程名。

4.4. Platform頁面

點(diǎn)擊Next,進(jìn)入Platform頁面。

4.5. 指定XSA文件

在Platform頁面,選擇右邊的“Creae a new platform from hardware(XSA)”, 在點(diǎn)擊“+”,指定平臺(tái)的XSA文件,然后Vitis自動(dòng)創(chuàng)建platform。

4.6. 創(chuàng)建Domain

點(diǎn)擊Next,創(chuàng)建Domain。這時(shí)候可以選擇處理器、OS、Language。

4.7. 創(chuàng)建工程后的目錄結(jié)構(gòu)。

4.8. 執(zhí)行編譯。

創(chuàng)建工程后,執(zhí)行編譯。會(huì)先編譯FSBL工程,BSP工程,再編譯應(yīng)用程序工程。

Project --> Build Project

1530 **** Build of configuration Debug for project mzed_cpu0_hello **** make all C:/Xilinx/Vitis/2019.2/gnuwin/bin/make --no-print-directory pre-build a9-linaro-pre-build-step C:/Xilinx/Vitis/2019.2/gnuwin/bin/make --no-print-directory main-build Building file: ../src/helloworld.c Invoking: ARM v7 gcc compiler arm-none-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/helloworld.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -IC:/prj/zynq7000/microzed/v192/MZ7010_FMCCC_2019_1/mz_vitis_sw/microzed_petalinux_wrapper/export/microzed_petalinux_wrapper/sw/microzed_petalinux_wrapper/standalone_domain/bspinclude/include -MMD -MP -MF"src/helloworld.d" -MT"src/helloworld.o" -o "src/helloworld.o" "../src/helloworld.c" Finished building: ../src/helloworld.c Building file: ../src/platform.c Invoking: ARM v7 gcc compiler arm-none-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/platform.o" -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -IC:/prj/zynq7000/microzed/v192/MZ7010_FMCCC_2019_1/mz_vitis_sw/microzed_petalinux_wrapper/export/microzed_petalinux_wrapper/sw/microzed_petalinux_wrapper/standalone_domain/bspinclude/include -MMD -MP -MF"src/platform.d" -MT"src/platform.o" -o "src/platform.o" "../src/platform.c" Finished building: ../src/platform.c Building target: mzed_cpu0_hello.elf Invoking: ARM v7 gcc linker arm-none-eabi-gcc -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -Wl,-build-id=none -specs=Xilinx.spec -Wl,-T -Wl,../src/lscript.ld -LC:/prj/zynq7000/microzed/v192/MZ7010_FMCCC_2019_1/mz_vitis_sw/microzed_petalinux_wrapper/export/microzed_petalinux_wrapper/sw/microzed_petalinux_wrapper/standalone_domain/bsplib/lib -o "mzed_cpu0_hello.elf" ./src/helloworld.o ./src/platform.o -Wl,--start-group,-lxil,-lgcc,-lc,--end-group Finished building target: mzed_cpu0_hello.elf Invoking: ARM v7 Print Size arm-none-eabi-size mzed_cpu0_hello.elf |tee "mzed_cpu0_hello.elf.size" text data bss dec hexfilename 19064 1144 22568 42776 a718mzed_cpu0_hello.elf Finished building: mzed_cpu0_hello.elf.size 1543 Build Finished (took 12s.869ms)

編譯后應(yīng)用程序和Domain目錄結(jié)構(gòu)

編譯后FSBL目錄結(jié)構(gòu)

5. 調(diào)試工程

5.1. 調(diào)試配置界面

先點(diǎn)擊想調(diào)試的工程,再點(diǎn)擊工具條調(diào)試圖標(biāo)旁邊的三角形,選擇"Debug Configurations",

得到調(diào)試配置界面。

5.2. 自動(dòng)創(chuàng)建調(diào)試配置

雙擊System Project,Vitis自動(dòng)創(chuàng)建了調(diào)試配置。

5.3. 檢查調(diào)試配置的Target Setup。

5.4. 開始調(diào)試

點(diǎn)擊Debug后,會(huì)開始調(diào)試。由于有FPGA設(shè)計(jì),先下載FPGA。

5.5. main函數(shù)入口

調(diào)試器下載所有代碼后,在main函數(shù)入口處停下,等待程序員調(diào)試。

6. 調(diào)試工程

6.1. FreeRTOS

之前只是簡單的Hello world工程。下面創(chuàng)建更復(fù)雜的FreeRTOS LWIP TCP iPerf server. 在Domain界面,為OS選擇FreeRTOS。

6.2. LWIP TCP iPerf server

在Templates界面,為Template選擇FreeRTOS LWIP TCP Perf server。

6.3. 調(diào)試LWIP TCP iPerf server

同樣的啟動(dòng)調(diào)試,也在main函數(shù)入口處停下,直接選擇連續(xù)運(yùn)行。

6.4. 連續(xù)運(yùn)行

連續(xù)運(yùn)行后,單板串口打印。

-----lwIP Socket Mode TCP Server Application------ Start PHY autonegotiation Waiting for PHY to complete autonegotiation. autonegotiation complete link speed for phy address 0: 100 ERROR: DHCP request timed out Configuring default IP 192.168.1.10 Board IP: 192.168.1.10 Netmask : 255.255.255.0 Gateway : 192.168.1.1 TCP server listening on port 5001 On Host: Run $iperf -c 192.168.1.10 -i 5 -t 300 -w 2M

6.5. 電腦Ping測試

設(shè)置電腦IP地址,再做Ping測試,檢查單板網(wǎng)絡(luò)是否正常。

C: oolsiperf-2.0.5-2-win32>ping 192.168.1.10 Pinging 192.168.1.10 with 32 bytes of data: Reply from 192.168.1.10: bytes=32 time=1ms TTL=255 Reply from 192.168.1.10: bytes=32 time

6.6. 電腦iperf測試

在電腦啟動(dòng)iperf測試。

C: oolsiperf-2.0.5-2-win32>iperf -c 192.168.1.10 -i 5 -t 20 -w 2M ------------------------------------------------------------ Client connecting to 192.168.1.10, TCP port 5001 TCP window size: 2.00 MByte ------------------------------------------------------------ [ 3] local 192.168.1.100 port 63484 connected with 192.168.1.10 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0- 5.0 sec 55.4 MBytes 92.9 Mbits/sec [ 3] 5.0-10.0 sec 53.4 MBytes 89.5 Mbits/sec [ 3] 10.0-15.0 sec 53.5 MBytes 89.8 Mbits/sec [ 3] 15.0-20.0 sec 53.4 MBytes 89.5 Mbits/sec [ 3] 0.0-20.0 sec 216 MBytes 90.4 Mbits/sec

6.7. 單板iperf測試串口打印

在電腦啟動(dòng)啟動(dòng)iperf測試后,單板串口打印。

[ 1] local 192.168.1.10 port 5001 connected with 192.168.1.100 port 5001 [ ID] Interval Transfer Bandwidth [ 1] 0.0- 5.0 sec 53.2 MBytes 89.3 Mbits/sec [ 1] 5.0-10.0 sec 53.4 MBytes 89.6 Mbits/sec [ 1] 10.0-15.0 sec 53.4 MBytes 89.6 Mbits/sec [ 1] 15.0-20.0 sec 53.4 MBytes 89.6 Mbits/sec [ 1] 0.0-20.2 sec 216 MBytes 89.6 Mbits/sec TCP test passed Successfully

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

    關(guān)注

    4

    文章

    239

    瀏覽量

    26582
  • 硬件設(shè)計(jì)
    +關(guān)注

    關(guān)注

    18

    文章

    389

    瀏覽量

    44508
  • MicroZed
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5232

原文標(biāo)題:【干貨分享】以MicroZed單板為例,Vitis嵌入式軟件開發(fā)極速入門

文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式學(xué)習(xí)建議

    的平衡,要在理解軟件工程基本原理基礎(chǔ)上理解硬件構(gòu)件與軟件構(gòu)件等基本概念。 以上建議,僅供初學(xué)者參考。當(dāng)然,以上只是基礎(chǔ)階段的學(xué)習(xí)建議。要成為良好的嵌入式系統(tǒng)設(shè)計(jì)師,還需要在實(shí)際項(xiàng)目中鍛煉,并不斷學(xué)習(xí)與積累經(jīng)驗(yàn)。
    發(fā)表于 10-22 11:41

    嵌入式開發(fā)常用軟件有哪些?

    用于編寫、編譯調(diào)試嵌入式系統(tǒng)軟件。它提供了一個(gè)集成的開發(fā)環(huán)境(IDE),包括代碼編輯器、編譯器、調(diào)試
    發(fā)表于 09-09 15:22

    名單公布!【書籍評(píng)測活動(dòng)NO.42】 嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用

    ,以及PRTOS社區(qū)的愿景等內(nèi)容。 作者簡介 孫陳偉 某大廠資深編譯器團(tuán)隊(duì)編譯器開發(fā)工程師,曾任華為技術(shù)軟件公司高級(jí)軟件工程師,梅特勒-托利
    發(fā)表于 08-23 15:17

    嵌入式軟件開發(fā)招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開發(fā)經(jīng)驗(yàn),音視頻領(lǐng)域應(yīng)用層開發(fā) 地址:北京市昌平區(qū) 郵箱:1017933921@qq.com 歡迎廣大感興趣的朋友約聊。
    發(fā)表于 07-26 13:44

    嵌入式軟件工程師如何提升自己?

    嵌入式軟件工程師如何提升自己? 作為一名嵌入式軟件工程師,在這個(gè)充滿機(jī)遇和挑戰(zhàn)的領(lǐng)域,如何提升自己顯得非常重要,它決定了你未來的發(fā)展方向和
    發(fā)表于 06-12 11:20

    從事嵌入式方向,一定要軟硬件通吃?

    軟件工程師的職責(zé)嵌入式軟件工程師的主要職責(zé)是為嵌入式系統(tǒng)編寫和調(diào)試代碼,確保系統(tǒng)按預(yù)期工作。他們需要處理底層硬件接口、實(shí)時(shí)操作系統(tǒng)(RTOS
    的頭像 發(fā)表于 06-05 08:10 ?952次閱讀
    從事<b class='flag-5'>嵌入式</b>方向,一定要軟硬件通吃?

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    ,并且了解嵌入式系統(tǒng)的工作原理。此外,他們還需要具備良好的邏輯思維能力,能夠快速解決復(fù)雜的軟件問題。嵌入式軟件工程師在
    發(fā)表于 05-16 11:00

    AMD Vitis? Embedded嵌入式軟件開發(fā)套件的功能和特性概述

    Vitis Embedded 是一款獨(dú)立的嵌入式軟件開發(fā)套件,主要用于為 AMD 自適應(yīng) SoC 和 FPGA 中的 AMD 嵌入式處理子系統(tǒng)(基于 ARM 的子系統(tǒng)和 AMD Mic
    的頭像 發(fā)表于 04-08 10:50 ?755次閱讀
    AMD <b class='flag-5'>Vitis</b>? Embedded<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發(fā)套件的功能和特性概述

    Vitis2023.2使用之—— classic Vitis IDE

    Vitis 已經(jīng)更新到2023.2了,新版本相較于舊版本更新了嵌入式平臺(tái),新版平臺(tái)增加了Versal? AI 引擎 DSP 設(shè)計(jì)的增強(qiáng)功能,全新的獨(dú)立 Vitis 嵌入式
    發(fā)表于 03-24 16:15

    嵌入式軟件開發(fā)應(yīng)該掌握哪些知識(shí)?

    知識(shí)點(diǎn)學(xué)習(xí) 熟悉 Linux 的基本使用對(duì)于嵌入式軟件開發(fā)至關(guān)重要。包括文件系統(tǒng)的管理、用戶權(quán)限的控制、軟件包管理等。嵌入式開發(fā)人員需要能夠在 Linux 環(huán)境下進(jìn)行開發(fā)、
    發(fā)表于 02-19 11:23

    如何構(gòu)建linux開發(fā)環(huán)境和編譯軟件工程、應(yīng)用程序

    前文介紹了如何使用官方提供的鏡像文件啟動(dòng)開發(fā)板,本文將說明如何構(gòu)建linux開發(fā)環(huán)境和編譯軟件工程、應(yīng)用程序。
    的頭像 發(fā)表于 01-03 12:31 ?1791次閱讀
    如何構(gòu)建linux開發(fā)環(huán)境和<b class='flag-5'>編譯</b><b class='flag-5'>軟件工程</b>、應(yīng)用程序

    嵌入式軟件工程師常用的

    最近我換工作了,看見不同嵌入式軟件工程師用的平臺(tái)都不一樣,所以我整理了一下。PlatformIO:多平臺(tái)支持:PlatformIO支持多種嵌入式平臺(tái),包括Arduino、ESP8266、ESP32
    的頭像 發(fā)表于 12-24 08:00 ?597次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件工程</b>師常用的

    Vitis 統(tǒng)一軟件平臺(tái)文檔

    設(shè)計(jì)開發(fā)提供更高層次的抽象。 本用戶指南涵蓋了 Vitis 入門、使用 Vitis Unified IDE、Bootgen 工具、Vitis Python CLI、軟件命令行工具、GN
    的頭像 發(fā)表于 12-20 10:00 ?459次閱讀
    <b class='flag-5'>Vitis</b> 統(tǒng)一<b class='flag-5'>軟件</b>平臺(tái)文檔

    【從0開始創(chuàng)建AWTK應(yīng)用程序】編譯應(yīng)用到嵌入式Linux平臺(tái)運(yùn)行

    。搭建Linux平臺(tái)交叉編譯環(huán)境在上一篇文章我們介紹了使用AWTK開發(fā)簡單的應(yīng)用并在PC上模擬運(yùn)行,本篇文章就來介紹一下怎么讓應(yīng)用程序運(yùn)行在嵌入式Linux平臺(tái)上。1
    的頭像 發(fā)表于 12-07 12:08 ?620次閱讀
    【從0開始<b class='flag-5'>創(chuàng)建</b>AWTK應(yīng)用程序】<b class='flag-5'>編譯</b>應(yīng)用到<b class='flag-5'>嵌入式</b>Linux平臺(tái)運(yùn)行

    嵌入式硬件和軟件哪個(gè)好?

    ,如復(fù)位電路、常用濾波器電路、功放電路、高速信號(hào)傳輸線的匹配電路等;故障定位、解決問題的能力;設(shè)計(jì)文檔的組織編寫技能! 那對(duì)于嵌入式軟件工程師來說: 嵌入式軟件工程師領(lǐng)域較新,他的發(fā)展
    發(fā)表于 12-05 15:17