電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>如何為Minized創(chuàng)建PYNQ

如何為Minized創(chuàng)建PYNQ

2022-12-14 | zip | 199.21 MB | 次下載 | 免費(fèi)

資料介紹

描述

教程展示了如何為 Minized 創(chuàng)建 PYNQ,它使用帶有額外存儲(chǔ)選項(xiàng)的 EMMC 內(nèi)存作為 PMOD sdcard。

準(zhǔn)備環(huán)境

首先,我們需要使用這些腳本從 Avnet GitHub 克隆存儲(chǔ)庫,我們將構(gòu)建我們的項(xiàng)目和 BSP。

mkdir Avnet;
cd Avnet;
git clone https://github.com/Avnet/bdf.git --branch master;
git clone https://github.com/Avnet/hdl.git --branch 2019.1;
git clone https://github.com/Avnet/petalinux.git --branch 2019.1;
git clone https://github.com/Xilinx/PYNQ.git --branch image_v2.5.4;
wget http://downloads.element14.com/downloads/zedboard/minized/minized_ttc_2019_1.bsp.zip?ICID=minized-datasheet-widget;
unzip minized_ttc_2019_1.bsp.zip?ICID=minized-datasheet-widget;

轉(zhuǎn)到 petalinux → 腳本并編輯“make_minized_qspi_minimal_bsp.sh”

cd petalinux/scripts;
gedit make_minized_qspi_minimal_bsp.sh;

更改 Vivado 和 Petalinux 安裝路徑

pYYBAGOAI52ARDRtAABH3AVru8k522.png
?

運(yùn)行腳本并等待它完成。

./make_minized_qspi_minimal_bsp.sh

同時(shí),我們將基于“minized_ttc_2019.1.bsp”創(chuàng)建項(xiàng)目

打開新終端和源 petalinux settings.sh

source /home/bartek/petalinux20191/settings.sh

并創(chuàng)建項(xiàng)目

petalinux-create -t project -s minized_ttc_2019_1.bsp

打開新創(chuàng)建的項(xiàng)目。

cd minized_ttc_2019_1

在里面您可以看到“硬件”文件夾,其中包含用于構(gòu)建該 BSP 的硬件設(shè)計(jì)。

我們將需要修改用于該項(xiàng)目的設(shè)備樹,否則 Petalinux 將無法在 FPGA 管理器打開的情況下構(gòu)建。

轉(zhuǎn)到項(xiàng)目規(guī)范→元用戶→食譜-bsp→設(shè)備樹→文件并編輯“system-user.dtsi”

cd project-spec/meta-user/recipes-bsp/device-tree;
gedit system-user.dtsi

我們可以安全地刪除引用 Wi-Fi 模塊和加速度計(jì)的節(jié)點(diǎn)。

我以前嘗試過,重新編程 FPGA 會(huì)導(dǎo)致 Wi-Fi 驅(qū)動(dòng)程序崩潰,這就是我刪除它的原因,如果你離開加速度計(jì)節(jié)點(diǎn),petalinux 構(gòu)建也會(huì)失敗。

/include/ "system-conf.dtsi"
/ {

	aliases {
		serial0 = &uart1;
		serial1 = &uart0;
	};
	
};

&flash0 {
	compatible = "micron,n25q128", "jedec,spi-nor";
};

/{
	usb_phy0: usb_phy@0 {
		compatible = "ulpi-phy";
		#phy-cells = <0>;
		reg = <0xe0002000 0x1000>;
		view-port = <0x0170>;
		drv-vbus;
	};
};

&usb0 {
	dr_mode = "otg";
	usb-phy = <&usb_phy0>;
} ;

/* QSPI addresses are defined with petalinux-config, but here they are overwritten so that one can program the flash internally */
&qspi {
	#address-cells = <1>;
	#size-cells = <0>;
	flash0: flash@0 {
		compatible = "micron,m25p80";
		reg = <0x0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <50000000>;
		partition@0x00000000 {
			label = "boot";
			reg = <0x00000000 0x00ff0000>;
		};
	};
};

/* PMOD SD Interface */
&sdhci0 {
	status = "okay";
	bus-width= <4>;
	xlnx,has-cd = <0x0>;
	xlnx,has-power = <0x0>;
	xlnx,has-wp = <0x0>;
	/* cd-inverted; */
	wp-inverted;

	mmccardpmod: mmccardpmod@1 {
		/* reg = <0>; */
		compatible = "mmc-card";
	};
};

/* SD Interface for eMMC */
&sdhci1 {
	status = "okay"; 
	non-removeable;
	bus-width= <4>;
	xlnx,has-cd = <0x0>;
	xlnx,has-power = <0x0>;
	xlnx,has-wp = <0x0>;

	mmccard: mmccard@0 {
		reg = <0>;
		compatible = "mmc-card";
		broken-hpi;
	};
};

/* Console UART.  UART1 is tied to the USB serial port on the Zedboard */
&uart1 {
   	status = "okay";
	current-speed = <115200>;
	port-number = <0>;
};

/ {

};

PYNQ 設(shè)置

打開 PYNQ → sdbuild → 腳本并運(yùn)行“setup_host.sh”腳本(如果你之前沒有)。

cd PYNQ/sdbuild/scripts;
bash setup_host.sh

現(xiàn)在我們需要修改 PYNQ 的引導(dǎo)設(shè)置。

打開 PYNQ → sdbuild → boot → meta-pynq → recipes-bsp → device-tree 并編輯“pynq_bootargs.dtsi”

cd PYNQ/sdbuild/boot/meta-pynq/recipes-bsp/device-tree;
gedit pynq_bootargs.dtsi

將“/dev/mmcblk0p2”更改為“/dev/mmcblk1p2”

poYBAGOAI6CAEuvFAABIJO45EnQ788.png
?

此外,您將需要為 arm 架構(gòu)預(yù)構(gòu)建的 rootfs映像請(qǐng)參閱 PYNQ 快速移植指南。

poYBAGOAI6WAR-X2AADdJN5gG4o231.png
?

下載它。

轉(zhuǎn)到 PYNQ → sdbuild 并輸入:

make BOARDS=Pynq-Z1

查看 PYNQ 是否設(shè)置正確。

修改最小化最小

我們?cè)陂_始時(shí)為 Minized QSPI 運(yùn)行的腳本現(xiàn)在應(yīng)該完成了。

打開 petalinux → 項(xiàng)目 → minized_qspi_minimal_2019_1 并添加實(shí)用程序包以格式化內(nèi)存(可選)。

cd petalinux/projects/minized_qspi_minimal_2019_1;
petalinux-config -c rootfs

啟用“e2fsprogs”、“e2fsprogs-resize2fs”、“e2fsprogs-e2fsck”包。

您可以在 petalinux 窗口中使用“/”搜索軟件包。

poYBAGOAI6eAdVhqAAB0_4WHUpg229.png
?

退出并重建項(xiàng)目

petalinux-build

現(xiàn)在我們將通過 JTAG 啟動(dòng)我們的系統(tǒng)。

petalinux-boot --jtag --fpga --kernel --verbose;

登錄到 Minized,例如使用 cutecom 或 putty。

格式化 EMMC

現(xiàn)在我們將格式化 EMMC。(可選,稍后我們可以使用“dd”將圖像寫入EMMC)

使用“df -h”命令列出所有已安裝的驅(qū)動(dòng)器及其位置

df -h
poYBAGOAI6mAcqwgAABiEGSQ7xg086.png
?

或“fdisk -l”

fdisk -l

EMMC 是“/dev/mmcblk1”

我們需要?jiǎng)?chuàng)建兩個(gè)分區(qū)。一個(gè)用于“image.ub”,第二個(gè)用于“rootfs”

第一個(gè)分區(qū)需要是 FAT32,第二個(gè)分區(qū)需要是 ext4。

打開 mmcblk1。

fdisk /dev/mmcblk1

使用 fdisk 刪除分區(qū)并寫入更改。

d
1
d
2
w

現(xiàn)在我們需要?jiǎng)?chuàng)建新分區(qū)(您可以使用“format_emmc.sh”腳本作為參考,它位于本地/bin 中)。

fdisk /dev/mmcblk1
o
n
p
1
enter (default command)
+255M 
w

現(xiàn)在我們有了第一個(gè)分區(qū),例如 255Mb。

fdisk /dev/mmcblk1
n
p
2
enter (default command)
enter (default command)
w
?
?
?
pYYBAGOX3oKASkuBAAB1iLGMkFg137.png
?
1 / 2 ?分區(qū)和類型
?

制作第一個(gè)分區(qū) w95 fat32

fdisk /dev/mmcblk1
t
1
b
w

或使用 mkfs 將 mmblk1p1 格式化為 fat32

mkfs.vfat -F 32 -n boot /dev/mmcblk1p1

將 mmblk1p2 格式化為 ext4

mkfs.ext4 -L root /dev/mmcblk1p2

現(xiàn)在您的 EMMC 已準(zhǔn)備好作為存儲(chǔ)介質(zhì)。

創(chuàng)建基礎(chǔ)項(xiàng)目

打開 hdl → 項(xiàng)目 → minized_petalinux →MINIZED_2019_1

poYBAGOX3pKAQRQ6AACcFivvPgY124.png
?

打開塊設(shè)計(jì)并刪除未使用的 IP(您可以將 SD 卡管理器連接到 SDIO_0 端口以獲得額外存儲(chǔ))。

pYYBAGOX3pWABmt_AAD7FkzqZKQ366.png
如果您愿意,您可以將 sdio0 wp 和 cd 端口連接到常量“0”并在設(shè)備樹中添加“不可移除??”。
?

生成新的雙流并從項(xiàng)目中導(dǎo)出 HDF。

poYBAGOX3piARA5VAAA3iMkLJMM606.png
?

創(chuàng)建 PYNQ 映像

轉(zhuǎn)到 minized_ttc_2019_1 項(xiàng)目并更改引用的 HDF 和圖像打包配置。

cd minized_ttc_2019_1;
petalinux-config --get-hw-description=/home/bartek/Desktop/Minized_EMMC/Avnet;
poYBAGOX3qKAWHMpAAC_Z-y3ki0870.png
?

構(gòu)建項(xiàng)目并打包新的 BSP。

petalinux-build;
petalinux-package --bsp --p ${PWD} --hwsource /home/bartek/Desktop/Minized_EMMC/Avnet/hdl/Projects/minized_petalinux/MINIZED_2019_1 -o MinizedEMMCPynq;

使用先前下載的“bionic.arm.2.5.img”將創(chuàng)建的 BSP 復(fù)制到 PYNQ → sdbuild

poYBAGOX3rSAXSmfAABZ2naLWV0590.png
?

并創(chuàng)建 PYNQ 鏡像

cd PYNQ/sdbuild;
bash scripts/image_from_prebuilt.sh MinizedEMMCPynq MinizedEMMCPynq.bsp arm bionic.arm.2.5.img;
最好為 Minized 創(chuàng)建自定義圖像。我們需要對(duì) PYNQ 板項(xiàng)目進(jìn)行一些修改。(準(zhǔn)備好的包在附件 MinizedPynq.7z 中)將其提取到某個(gè)地方,例如“ PYNQ/zz ”<-這是我們的板存儲(chǔ)庫。
pYYBAGOX3rmAd-5XAAAphU0ns54011.png
?

我已經(jīng)修改了 petalinux_bsp → meta-user → ... → user_2018-06-26-17-14-00.cfg

并為某些 USB Wi-Fi 模塊啟用內(nèi)核驅(qū)動(dòng)程序。

在打包 BSP 之前,您可以通過“ petalinux-config -c kernel ”來執(zhí)行此操作。

cd PYNQ/sdbuild;
make PREBUILT=/home/bartek/PYNQ/sdbuild/bionic.arm.2.5.img BOARDDIR=/home/bartek/PYNQ/zz BOARD=Minizedzik

如果它不起作用,請(qǐng)嘗試添加 PYNQ_SDIST:

make PYNQ_SDIST=/home/bartek/Downloads/pynq-2.5.tar.gz PREBUILT=/home/bartek/PYNQ/sdbuild/bionic.arm.2.5.img BOARDDIR=/home/bartek/PYNQ/zz BOARD=Minizedzik

縮小的圖像應(yīng)該在輸出文件夾中。

恢復(fù) USB 驅(qū)動(dòng)器上的磁盤映像。

poYBAGOX3r-AFHqQAACOui8UjKc423.png
?

并將 partition2 的大小調(diào)整為小于 EMMC 減去 partition1 的大?。ɡ?7Gb)并檢查錯(cuò)誤。

pYYBAGOX3sKAC701AAAiHlXivDs402.png
?

將 USB 驅(qū)動(dòng)器連接到 Minized。

使用“dd”命令將圖像寫入 EMMC(這需要一段時(shí)間)。

dd if=/dev/sda of=/dev/mmcblk1

如果您希望檢查錯(cuò)誤。

e2fsck /dev/mmcblk1p1
e2fsck /dev/mmcblk1p2

使用“minized_ttc_2019_1”BOOT.bin 最小化的程序

petalinux-build;
petalinux-package --boot --fpga --u-boot -o BOOT.bin --force;
program_flash -f ./BOOT.bin -offset 0 -flash_type qspi_single -fsbl ./images/linux/zynq_fsbl.elf;

Minized 將使用 QSPI 內(nèi)存來加載 BOOT.bin。

ZYNQ 將使用該 BOOT.bin 來加載 FSBL 為 FPGA 進(jìn)行 Minized 編程,然后加載 u-boot 以在“/dev/mmcblk1p1”分區(qū)上搜索 image.ub。Image.ub 將等到“/dev/mmcblk1p2”被掛載并加載rootfs。

現(xiàn)在 Minized 應(yīng)該使用 PYNQ 系統(tǒng)啟動(dòng)。

poYBAGOX3sqAArWzAACFq5l0-RU841.png
-bash 警告,因?yàn)槲彝嗽黾?rootfs 的大小 :)
?
pYYBAGOX3tKAdql4AAAsxUvFLBo041.png
適當(dāng)調(diào)整大小后
?

現(xiàn)在讓我們掛載 pmod sdcard 并編寫一些東西來測(cè)試功能。

pYYBAGOX3t-AAxN5AABAJZxVqzQ003.png
?
mkdir mnt;
ls -l /dev | grep mmc;
sudo mount /dev/mmcblk0p2 mnt;

打開 mnt 文件夾并創(chuàng)建.txt 文件。

cd mnt;
sudo nano TestWrite.txt;

退出并保存,umount sdcard。

cd ..;
sudo umount mnt;

讓我們檢查一下 sdcard 上的內(nèi)容。

poYBAGOX3uGAZGfxAAAma9QGMp0932.png
?
pYYBAGOX3uSAOhhLAAAVLvRnwp8286.png
?

創(chuàng)建疊加層

我已將此項(xiàng)目升級(jí)為 Vivado 2020.1 版本。

打開 Vitis HLS 并為 xc7z007 芯片創(chuàng)建新的空項(xiàng)目。

單擊源→新文件

?

pYYBAGOX3uqAPT-xAAAdUWrBEvk338.png
?

創(chuàng)建附加 IP 核

poYBAGOX3u-AGafZAABagApAJ28960.png
?

轉(zhuǎn)到項(xiàng)目設(shè)置→綜合并在“頂級(jí)功能”中鍵入“添加”

poYBAGOX3veAWyO4AACECpKKd_c818.png
?

單擊確定并運(yùn)行綜合。

將我們的 IP 導(dǎo)出到本地 IP 存儲(chǔ)庫。

poYBAGOX3vyAaJQzAAB_2sFHjGY339.png
?

提取“add.zip”

打開 Vivado 并將新 IP 添加到項(xiàng)目并將其連接到 AXI 互連。

poYBAGOX3wqAT_s-AAC_5LkIJss246.png
?

?

poYBAGOX3xWAYqm5AAFRRrVzbok383.png
?

保存項(xiàng)目并導(dǎo)出比特流。

打開 Vivado 項(xiàng)目并搜索bistream.hwh文件。

?

pYYBAGOX3xmAI3oKAAA6xlAahs0148.png
?

?

poYBAGOX3xyAV86vAABDaMAluho493.png
?

復(fù)制并重命名這些文件。

pYYBAGOX3yCAPa0kAAAhy0lpU4Q820.png
?

?

將它們上傳到 Minized,但首先我們需要 Wi-Fi。

啟動(dòng) Minized 并連接到它,例如使用 putty。

?

pYYBAGOX3yKACqWlAAANpfcRifU218.png
?

如您所見,Minized 檢測(cè)到了我們的無線適配器

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

?

pYYBAGOX3yaAAceGAAAcsxsbHKk876.png
?
sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -B
sudo dhclient wlan0
poYBAGOX3zmAeKm3AACRgw7PrLM988.png
?

打開互聯(lián)網(wǎng)瀏覽器并連接到 Minized(密碼是 xilinx)

 http://192.168.0.105:9090/tree?

通過 jupyter notebook 上傳文件。

pYYBAGOX3zyAPIoZAAAzzmavUZE246.png
?

?

pYYBAGOX30SACpJuAADWceTf4f8500.png
“它只是工作!”
?

結(jié)束

現(xiàn)在您已準(zhǔn)備好基于這三個(gè)項(xiàng)目開發(fā)自己的 IOT 應(yīng)用程序。

讓您的 Minized 工作并分享您的工作 :)


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)