国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

PYNQ移植ZCU102詳細流程分析

電子設計 ? 來源:csdn ? 作者:vacajk ? 2020-12-23 10:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在goggle上搜zcu102 pynq可以找到一些移植方法的信息

0. Prebuilt
PYNQ移植ZCU102編譯好的固件

1. 生成鏡像
git clone
$ git clone https://github.com/Xilinx/PYNQ.git
$ cd PYNQ
$ git checkout v2.3
$ git checkout -b vacajk_dev

檢查依賴環境,qemu,crosstool-ng
$ cd sdbuild/scripts
$ ./setup_host.sh
$ source /opt/pkg/petalinux/settings.sh
$ source /opt/Xilinx/Vivado/2018.2/settings64.sh
$ cd ../../

拷貝ZCU104的配置作為ZCU102來使用,刪除不用的ZCU104petalinux配置
$ cp -rf ./boards/ZCU104 ./boards/ZCU102
$ rm -rf ./boards/ZCU102/petalinux_bsp/
$ mv ./boards/ZCU104/ZCU104.spec ./boards/ZCU102/ZCU102.spec
$ gedit ./boards/ZCU102/ZCU102.spec

修改ZCU102.spec的內容
ARCH_ZCU102 := aarch64
BSP_ZCU102 := xilinx-zcu102-v2018.2-final.bsp
STAGE4_PACKAGES_ZCU102 := ethernet

從官網上下載xilinx-zcu102-v2018.2-final.bsp,復制到./boards/ZCU102目錄下從github下載的腳本能夠完整的生成img文件,并會自動將所有的環境搭建完畢,但是速度很慢,看了PYNQ的官網發現能夠直接下載編譯好的rootfs
這樣僅僅編譯BOOT.bin和只包含kernel的image.ub就可以了。

網上下載的rootfs
如果準備使用下載的rootfs,在這里下載rootfs的鏡像

o4YBAF9uHLyADX4iAAGP-IO00CM228.png

http://www.pynq.io/board.html
https://www.xilinx.com/member/forms/download/xef.html?filename=pynq_root...
解壓后把bionic.aarch64.2.3.img復制到./sdbuild/prebuilt下
如下指令:
$ make boot_files BOARDS=ZCU102
$ make images BOARDS=ZCU102 PREBUILT=./prebuilt/bionic.aarch64.2.3.img

自行生成的rootfs
如果準備自行編譯rootfs,如下指令。比較花時間且網速影響較大
$ make BOARDS=ZCU102

2. 燒寫鏡像
生成的img文件在./sdbuild/output/ZCU102-2.3.img
使用Win32_Disk_Imager將img燒寫到SD卡中

o4YBAF9uHL2AGlWCAAA_s5XwPjg466.png

linux上可以查看SD卡分區及內容,可以看到包含一個FAT32分區用于存放BOOT.bin和image.ub
第二個分區是文件系統,ubunttu 18.04嘗試啟動,使用串口可以看到能夠正常登陸

o4YBAF9uHMGAOMqrAAKYuSMxqHs096.png

通過網頁直接連接訪問ZCU102,輸入密碼xilinx可以打開jupyter-notebook,默認目錄中有各種例子,可以進行嘗試。

pIYBAF9uHMyALBlMAAv_JMvswno672.png

3. 自定義FPGA固件
因為使用的是bsp中的FPGA固件,里面的邏輯外設可能不符合要求,下面重新編輯FPGA固件,測試板上的LED和DIP SWITCH

編輯Vivado工程
使用vivado 2018.2打開xilinx-zcu102-v2018.2-final.bsp中的vivado工程

o4YBAF9uHM2AH98rAACR4GKkKg0489.png

增加兩個AXI_GPIO模塊,分別用于測試led和switch,添加幾個其他ip用于整體系統組成

pIYBAF9uHNOAXwb0AAWo-UtGE5Y722.png

在xdc中添加IO管腳約束。
set_property PACKAGE_PIN AG14 [get_ports {led_8bits_tri_o[0]}]
set_property PACKAGE_PIN AF13 [get_ports {led_8bits_tri_o[1]}]
set_property PACKAGE_PIN AE13 [get_ports {led_8bits_tri_o[2]}]
set_property PACKAGE_PIN AJ14 [get_ports {led_8bits_tri_o[3]}]
set_property PACKAGE_PIN AJ15 [get_ports {led_8bits_tri_o[4]}]
set_property PACKAGE_PIN AH13 [get_ports {led_8bits_tri_o[5]}]
set_property PACKAGE_PIN AH14 [get_ports {led_8bits_tri_o[6]}]
set_property PACKAGE_PIN AL12 [get_ports {led_8bits_tri_o[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_8bits_tri_o[7]}]
set_property PACKAGE_PIN AN14 [get_ports {dip_switch_8bits_tri_i[0]}]
set_property PACKAGE_PIN AP14 [get_ports {dip_switch_8bits_tri_i[1]}]
set_property PACKAGE_PIN AM14 [get_ports {dip_switch_8bits_tri_i[2]}]
set_property PACKAGE_PIN AN13 [get_ports {dip_switch_8bits_tri_i[3]}]
set_property PACKAGE_PIN AN12 [get_ports {dip_switch_8bits_tri_i[4]}]
set_property PACKAGE_PIN AP12 [get_ports {dip_switch_8bits_tri_i[5]}]
set_property PACKAGE_PIN AL13 [get_ports {dip_switch_8bits_tri_i[6]}]
set_property PACKAGE_PIN AK13 [get_ports {dip_switch_8bits_tri_i[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {dip_switch_8bits_tri_i[7]}]

Create HDL Wrapper,注意zcu102_wrapper.v的內容是否正常,我是刪除了原有的,然后重新生成的。編譯并生成bitstream
完成后使用Export Block Design將bd的tcl生成文件輸出。
拷貝并重命名剛生成的bit和tcl文件,并重命名為:
zcu102_led.bit和zcu102_led.tcl

使用PYTHON測試LED和DIP
使用tftp將剛才的兩個文件復制到板上的目錄中:/home/xilinx/zcu102_test/
$ cd ~/zcu102_test/
$ sudo python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pynq import Overlay
>>> ol = Overlay('zcu102_led.bit')
>>> leds = ol.gpio_leds.channel1
>>> leds[0:8].on()
>>> leds[0:8].off()
>>> sws = ol.gpio_sws.channel1
>>> sws.read()
170
>>> sws.read()
85

如上即可使用python測試led和dip switch

使用jupyter-notebook來進行測試:
import time
from pynq import Overlay

ol = Overlay("./bit/zcu102_led.bit")

leds = ol.gpio_leds.channel1
sws = ol.gpio_sws.channel1

for i in range(256):
leds.write(mask=255, val=i)
time.sleep(0.05)
print("led test finish!")

led test finish!

print("sws status: 0x%08x" % sws.read())

sws status: 0x00000028

4. 問題
問題1:發現在python中使用自動補全時程序崩潰
在python中使用ol = Overlay(‘zcu102_led.bit’)后,輸入ol進行自動補全時會使python程序崩潰。
>>> ol.[ 1491.769317] Bad mode in Error handler detected on CPU0, code 0xbf000002 -- SError
[ 1491.776716] Internal error: Oops - bad mode: 0 [#3] SMP
[ 1491.781922] Modules linked in:
[ 1491.784963] CPU: 0 PID: 4501 Comm: python3 Tainted: G D 4.14.0-xilinx-v2018.2 #1
[ 1491.793466] Hardware name: ZynqMP ZCU102 Rev1.0 (DT)
[ 1491.798416] task: ffffffc877b4c000 task.stack: ffffff80092f8000
[ 1491.804319] PC is at 0x7f9d84b458
[ 1491.807616] LR is at 0x55cc3c
[ 1491.810568] pc : [] lr : [] pstate: 80000000
[ 1491.817946] sp : 0000007fc15c5060
[ 1491.821245] x29: 0000007fc15c5060 x28: 0000007f9945ae00
[ 1491.826540] x27: 0000007f99297e40 x26: 0000000000845578
[ 1491.831836] x25: 0000000000000000 x24: 0000000000860000
[ 1491.837131] x23: 0000007f9c5c0f60 x22: 0000007f9c645230
[ 1491.842426] x21: 000000003b4ccf90 x20: 0000007f9c645282
[ 1491.847721] x19: 0000007f9945ac48 x18: 0000007f9e0d3a70
[ 1491.853017] x17: 00000000005751e0 x16: 0000007f9d8ab650
[ 1491.858312] x15: 00000000000001ff x14: 0000000000000008
[ 1491.863608] x13: 0000007f9a2bc348 x12: 0000000000000000
[ 1491.868903] x11: 0000000000000000 x10: 000000003bb93498
[ 1491.874198] x9 : 000000003bb93490 x8 : 0000000000000001
[ 1491.879493] x7 : 00000000007b5750 x6 : 0000007f9db43008
[ 1491.884789] x5 : 0000007fc15c4a48 x4 : 0000007f9d8b5d58
[ 1491.890084] x3 : 0000007f994cb738 x2 : 5d43e4b8b60b9d00
[ 1491.895380] x1 : 0000007f9d84b458 x0 : 0000007f994cb738
[ 1491.900676] Process python3 (pid: 4501, stack limit = 0xffffff80092f8000)
[ 1491.907448] ---[ end trace fef7a706ca15de64 ]---
Segmentation fault

檢查發現問題出在了Vivado中Zynq UltraScale+ MPSoC模塊的配置有問題,但一直未定位到。。

模塊配置文件:zcu102_ps_conf.tcl

可使用該配置在模塊中進行Apply Configuration,就能解決崩潰問題

o4YBAF9uHNaAV4fCAAJF-M7zZRo890.png

>>> ol.
ol.BS_FPGA_MAN ol.gpio_dict ol.load_ip_data(
ol.BS_FPGA_MAN_FLAGS ol.gpio_leds ol.parse_bit_header(
ol.axi_intc_0 ol.gpio_sws ol.parser
ol.bin_path ol.hierarchy_dict ol.partial
ol.bitfile_name ol.interrupt_controllers ol.reset(
ol.clock_dict ol.interrupt_pins ol.timestamp
ol.convert_bit_to_bin( ol.ip_dict
ol.download( ol.is_loaded(

問題2:發現網絡不能正常連接
啟動以后進入系統,發現沒有eth0網口,感覺是下載的rootfs img沒有加載執行STAGE4_PACKAGES_$(board)定義的ethernet包
查看/sdbuild/packages/ethernet內的文件內容,發現需要將eth0文件放在/etc/network/interfaces.d下
有三種方式:
1. 在格式化sd卡前,直接在linux內編輯鏡像,并復制eth0到指定位置
2. 在串口控制臺使用vim編輯文本,并復制到指定位置
3. 使用sudo ifconfig eth0 up && sudo ifconfig eth0 192.168.2.99 先使能網絡然后用tftp將eth0文件復制到指定位置

eth0文件內容如下:
auto eth0
iface eth0 inet dhcp auto eth0:1
iface eth0:1 inet static
address 192.168.2.99
netmask 255.255.255.0

編輯完成后,重啟板子,即可看到網卡信息
xilinx@pynq:~$ ifconfig
eth0: flags=4163 mtu 1500
inet 192.168.2.110 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::f4e8:61ff:fe39:2f29 prefixlen 64 scopeid 0x20
ether f6:e8:61:39:2f:29 txqueuelen 1000 (Ethernet)
RX packets 1207 bytes 1082085 (1.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1180 bytes 106838 (106.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 31
eth0:1: flags=4163 mtu 1500
inet 192.168.2.99 netmask 255.255.255.0 broadcast 192.168.2.255
ether f6:e8:61:39:2f:29 txqueuelen 1000 (Ethernet)
device interrupt 31
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 191 bytes 22047 (22.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 191 bytes 22047 (22.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0為dhcp得到的ip地址。
eth0:1為靜態ip地址

編輯:hfy

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

    關注

    1660

    文章

    22412

    瀏覽量

    636312
  • Vivado
    +關注

    關注

    19

    文章

    857

    瀏覽量

    71112
  • zcu102
    +關注

    關注

    0

    文章

    24

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    具有集成浪涌保護功能的小封裝 TIOS102 和 TIOS102x 數字傳感器輸出驅動器

    和 TIOS102x 數字傳感器輸出驅動器就是這樣一款值得關注的產品,它具備多種特性和功能,能滿足不同的應用需求。下面我們就來詳細了解一下。 文件下載: tios1025.pdf 產品特性與應用 產品特性 寬電源運行
    的頭像 發表于 12-16 13:55 ?309次閱讀

    具有集成浪涌保護功能的小封裝 TIOS102 和 TIOS102x 數字傳感器輸出驅動器

    和 TIOS102x 系列數字傳感器輸出驅動器,憑借其集成的浪涌保護功能和小封裝設計,成為了眾多工程師的理想選擇。下面將對這款驅動器進行詳細介紹。 文件下載: tios1023.pdf 一、產品概述 特性
    的頭像 發表于 12-16 13:55 ?743次閱讀

    ALINX教程分享_Zynq UltraScale+ MPSoC PYNQ3.1.2移植

    本教程在 Ubuntu22.04.1 虛擬機中安裝了 Xilinx 2024.1 的開發環境,基于該環境從源碼編譯 PYNQ 3.1.2 工程,生成能夠在 ALINX AXU15EGB 開發板上運行的 PYNQ 系統鏡像。
    的頭像 發表于 11-30 16:06 ?5987次閱讀
    ALINX教程分享_Zynq UltraScale+ MPSoC <b class='flag-5'>PYNQ</b>3.1.2<b class='flag-5'>移植</b>

    程斯-干濕狀態紗線與紗線耐磨試驗儀-詳細流程

    試驗儀
    csizhineng
    發布于 :2025年11月20日 17:07:05

    視頻卡頓分析流程

    視頻卡頓分析流程
    發表于 11-10 16:55 ?0次下載

    eVTOL艙內噪聲響應分析的仿真流程

    上一節中介紹了eVTOL旋翼噪聲的表征以及通過聲學BEM模型分析旋翼噪聲到eVTOL機體外表面的噪聲傳播分析流程,本節將在上節內容的基礎上繼續介紹eVTOL艙內噪聲響應分析的仿真
    的頭像 發表于 09-23 14:06 ?639次閱讀
    eVTOL艙內噪聲響應<b class='flag-5'>分析</b>的仿真<b class='flag-5'>流程</b>

    Texas Instruments ADC168M102REVM-PDK性能演示套件數據手冊

    R-SEP 的性能。Texas Instruments ADC168M102REVM-PDK包括ADC168M102REVM板和精密主機接口 (PHI) 控制器板,支持圖形用戶界面 (GUI) 軟件通過通用串行總線 (USB) 與ADC通信,進行配置、數據采集和
    的頭像 發表于 07-04 15:00 ?817次閱讀
    Texas Instruments ADC168M<b class='flag-5'>102</b>REVM-PDK性能演示套件數據手冊

    AEC-Q102認證之光電二極管

    )制定了AEC-Q102認證標準,這是一套針對汽車光電半導體應力測試的準則,涵蓋了LED燈珠、光電二極管、光電晶體管和激光組件等。認證流程的挑戰與價值AEC-Q102
    的頭像 發表于 06-16 15:10 ?731次閱讀
    AEC-Q<b class='flag-5'>102</b>認證之光電二極管

    振弦式應變計數據采集與分析流程解析

    振弦式應變計通過實時監測混凝土結構內部的應變與溫度變化,為工程安全提供關鍵數據支撐。然而,從數據采集到最終應力分析,需經過嚴格的標準化流程。南京峟思將以實際工程應用為基礎,解析數據獲取與處理
    的頭像 發表于 06-11 16:55 ?953次閱讀
    振弦式應變計數據采集與<b class='flag-5'>分析</b><b class='flag-5'>流程</b>解析

    詳細解析AEC-Q102認證

    AEC-Q102是由汽車電子委員會(AEC)制定的車用光電器件可靠性標準,于2017年首次發布,并在2020年更新至RevA版本。該標準的核心目標是驗證LED、激光二極管、光耦等光電器件在極端汽車
    的頭像 發表于 05-13 17:54 ?1288次閱讀
    <b class='flag-5'>詳細</b>解析AEC-Q<b class='flag-5'>102</b>認證

    AEC-Q102中的破壞性物理分析(DPA)

    和惡劣環境下保持穩定運行。而破壞性物理分析(DPA)作為AEC-Q102標準的核心組成部分,通過一系列物理和化學手段對器件進行深入剖析,旨在發現潛在的制造缺陷和材料問
    的頭像 發表于 04-25 17:44 ?785次閱讀
    AEC-Q<b class='flag-5'>102</b>中的破壞性物理<b class='flag-5'>分析</b>(DPA)

    伺服電機測試流程分析

    伺服電機的測試流程是確保電機正常工作的關鍵步驟。以下是對伺服電機測試流程詳細分析。 ?一、初步檢查與準備 1. 外觀檢查:首先,對伺服電機進行外觀檢查,確保電機完好無損,沒有明顯的物理損傷或變形
    的頭像 發表于 04-23 17:56 ?1548次閱讀

    蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調試的時出現報錯怎么解決?

    求助各位大佬,蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調試的時候出現這樣的錯誤 在vivado里面跟JTAG有關的約束如下: 在調試的時候,用的是Nuclei官方的調試器
    發表于 04-17 06:33

    封裝失效分析流程、方法及設備

    本文首先介紹了器件失效的定義、分類和失效機理的統計,然后詳細介紹了封裝失效分析流程、方法及設備。
    的頭像 發表于 03-13 14:45 ?2173次閱讀
    封裝失效<b class='flag-5'>分析</b>的<b class='flag-5'>流程</b>、方法及設備

    蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調試的時候出現錯誤怎么解決?

    求助各位大佬,蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調試的時候出現這樣的錯誤 在vivado里面跟JTAG有關的約束如下: 在調試的時候,用的是Nuclei官方的調試器
    發表于 03-07 16:46