一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Vitis里如何創(chuàng)建嵌入式軟件工程

454398 ? 來源:賽靈思中文社區(qū)論壇 ? 作者:賽靈思中文社區(qū)論 ? 2020-11-04 12:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 介紹

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

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 打開其中的硬件工程,升級所有IP,然后編譯工程。為了測試,也可以在BD設(shè)計中,添加AXI timer,AXI BRAM等IP。成功編譯工程后,導(dǎo)出硬件設(shè)計文件mz_petalinux_wrapper.xsa。在2019.2使用了新的硬件設(shè)計文件格式,也就是XSA文件。

3.1. BD設(shè)計

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

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

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

請指定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 = 00:00:16 ; elapsed = 00:00:17 . Memory (MB): peak = 1570.996 ; gain = 0.000

4. 創(chuàng)建工程

4.1. 指定workspace目錄。

啟動Vitis,指定它的workspace目錄。

4.2. VitisFile菜單

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

4.3. 指定Application工程名

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

4.4. Platform頁面

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

4.5. 指定XSA文件

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

4.6. 創(chuàng)建Domain

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

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

4.8. 執(zhí)行編譯。

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

Project --> Build Project

15:53:30 **** 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	    hex	filename
  19064	   1144	  22568	  42776	   a718	mzed_cpu0_hello.elf
Finished building: mzed_cpu0_hello.elf.size

15:53:43 Build Finished (took 12s.869ms)

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

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

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

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

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

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

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

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

5.4. 開始調(diào)試

點擊Debug后,會開始調(diào)試。由于有FPGA設(shè)計,先下載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

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

6.4. 連續(xù)運行

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

-----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:/tools/iperf-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測試

在電腦啟動iperf測試。

C:/tools/iperf-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測試串口打印

在電腦啟動啟動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
編輯:hfy

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

    關(guān)注

    4

    文章

    245

    瀏覽量

    27342
  • MicroZed
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5316
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    河北軟件職業(yè)技術(shù)學(xué)院走訪飛凌嵌入式,共同探討產(chǎn)教融合新模式

    河北軟件職業(yè)技術(shù)學(xué)院軟件工程系主任陳輝率隊走訪保定飛凌嵌入式技術(shù)有限公司,并與旗下教育品牌ElfBoard就產(chǎn)教融合、構(gòu)建協(xié)同育人機(jī)制進(jìn)行了深入探討。
    的頭像 發(fā)表于 07-09 09:00 ?541次閱讀
    河北<b class='flag-5'>軟件</b>職業(yè)技術(shù)學(xué)院走訪飛凌<b class='flag-5'>嵌入式</b>,共同探討產(chǎn)教融合新模式

    河北軟件職業(yè)技術(shù)學(xué)院走訪飛凌嵌入式,共同探討產(chǎn)教融合新模式

    6月12日,河北軟件職業(yè)技術(shù)學(xué)院軟件工程系主任陳輝率隊走訪保定飛凌嵌入式技術(shù)有限公司,并與旗下教育品牌ElfBoard就產(chǎn)教融合、構(gòu)建協(xié)同育人機(jī)制進(jìn)行了深入探討。雙方旨在通過深化校企合作,共同探索
    的頭像 發(fā)表于 06-16 11:00 ?601次閱讀
    河北<b class='flag-5'>軟件</b>職業(yè)技術(shù)學(xué)院走訪飛凌<b class='flag-5'>嵌入式</b>,共同探討產(chǎn)教融合新模式

    如何使用AMD Vitis HLS創(chuàng)建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 來創(chuàng)建一個 HLS IP,通過 AXI4 接口從存儲器讀取數(shù)據(jù)、執(zhí)行簡單的數(shù)學(xué)運算,然后將數(shù)據(jù)寫回存儲器。接著會在 AMD Vivado Design Suite 設(shè)計中使用此 HLS IP,并使用
    的頭像 發(fā)表于 06-13 09:50 ?668次閱讀
    如何使用AMD <b class='flag-5'>Vitis</b> HLS<b class='flag-5'>創(chuàng)建</b>HLS IP

    如何成為一名嵌入式軟件工程師?

    如何成為一名嵌入式軟件工程師? 01明確崗位的角色與定位 嵌入式軟件工程師主要負(fù)責(zé)開發(fā)運行在特定硬件平臺上的軟件,這些
    發(fā)表于 04-15 14:37

    嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    嵌入式開發(fā)的門檻,往往被培訓(xùn)機(jī)構(gòu)和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 上的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式開發(fā)是硬件與軟件深度融合的系統(tǒng)性
    的頭像 發(fā)表于 04-09 11:06 ?346次閱讀
    <b class='flag-5'>嵌入式</b>開發(fā):高門檻的系統(tǒng)性<b class='flag-5'>工程</b>與 996 的行業(yè)困局

    想在嵌入式領(lǐng)域高薪就業(yè)?先邁過這些人才門檻!

    嵌入式開發(fā)的世界,如今正經(jīng)歷著一場變革,同時也暴露出諸多問題?,F(xiàn)在,會編寫嵌入式程序的人隨處可見,樹莓派、Arduino 等開發(fā)板的出現(xiàn),讓嵌入式編程變得輕而易舉,就連軟件工程師也能輕
    的頭像 發(fā)表于 03-20 10:42 ?478次閱讀
    想在<b class='flag-5'>嵌入式</b>領(lǐng)域高薪就業(yè)?先邁過這些人才門檻!

    嵌入式軟件工程師就業(yè)好不好?

    嵌入式軟件工程師就業(yè)好不好?會不會越老越吃香?今天一起來看看。 首先看下市場需求。 隨著物聯(lián)網(wǎng)、人工智能、5G等前沿技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的應(yīng)用領(lǐng)域不斷擴(kuò)大,從智能家居、汽車電子到工業(yè)自動化
    發(fā)表于 02-20 10:19

    嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

    設(shè)備和智能傳感器)上,這些設(shè)備通常具有有限的計算能力、存儲空間和功耗。本文將您介紹嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性,以及常見的機(jī)器學(xué)習(xí)開發(fā)軟件與開發(fā)環(huán)境。 嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與優(yōu)勢 由于嵌入式
    的頭像 發(fā)表于 01-25 17:05 ?664次閱讀
    <b class='flag-5'>嵌入式</b>機(jī)器學(xué)習(xí)的應(yīng)用特性與<b class='flag-5'>軟件</b>開發(fā)環(huán)境

    如何提高嵌入式代碼質(zhì)量?

    并提升代碼質(zhì)量。 遵循良好的軟件工程實踐 良好的軟件工程實踐是提高代碼質(zhì)量的基礎(chǔ),特別是在嵌入式系統(tǒng)中更為重要。以下是幾個關(guān)鍵點: 1. 模塊化設(shè)計:將系統(tǒng)分解為獨立的模塊,每個模塊負(fù)責(zé)一個特定
    發(fā)表于 01-15 10:48

    使用AMD Vitis進(jìn)行嵌入式設(shè)計開發(fā)用戶指南

    Zynq MPSoC 和 AMD Alveo 數(shù)據(jù)中心加速器卡)為目標(biāo)的異構(gòu)嵌入式應(yīng)用。 Vitis 工具包括: C++ 編譯器、庫和本征函數(shù),適用于 AI 引擎和可編程邏輯( PL ) 適用于 Arm
    的頭像 發(fā)表于 01-08 09:33 ?1452次閱讀
    使用AMD <b class='flag-5'>Vitis</b>進(jìn)行<b class='flag-5'>嵌入式</b>設(shè)計開發(fā)用戶指南

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

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

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運行的核心力量。那么,究竟什么是嵌入式?嵌入式系統(tǒng),顧名思義,是將計算機(jī)的硬件和軟件嵌入
    的頭像 發(fā)表于 10-16 10:14 ?2617次閱讀

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

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

    嵌入式軟件開發(fā)與AI整合

    嵌入式軟件開發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來越多地集成了AI算法,以實現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式
    的頭像 發(fā)表于 07-31 09:25 ?1370次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發(fā)與AI整合

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

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