资料介绍
描述
本教程展示了如何为 Minized 创建 PYNQ,它使用带有额外存储选项的 EMMC 内存作为 PMOD sdcard。
准备环境
首先,我们需要使用这些脚本从 Avnet GitHub 克隆存储库,我们将构建我们的项目和 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;
转到 petalinux → 脚本并编辑“make_minized_qspi_minimal_bsp.sh”
cd petalinux/scripts;
gedit make_minized_qspi_minimal_bsp.sh;
更改 Vivado 和 Petalinux 安装路径
运行脚本并等待它完成。
./make_minized_qspi_minimal_bsp.sh
同时,我们将基于“minized_ttc_2019.1.bsp”创建项目
打开新终端和源 petalinux settings.sh
source /home/bartek/petalinux20191/settings.sh
并创建项目
petalinux-create -t project -s minized_ttc_2019_1.bsp
打开新创建的项目。
cd minized_ttc_2019_1
在里面您可以看到“硬件”文件夹,其中包含用于构建该 BSP 的硬件设计。
我们将需要修改用于该项目的设备树,否则 Petalinux 将无法在 FPGA 管理器打开的情况下构建。
转到项目规范→元用户→食谱-bsp→设备树→文件并编辑“system-user.dtsi”
cd project-spec/meta-user/recipes-bsp/device-tree;
gedit system-user.dtsi
我们可以安全地删除引用 Wi-Fi 模块和加速度计的节点。
我以前尝试过,重新编程 FPGA 会导致 Wi-Fi 驱动程序崩溃,这就是我删除它的原因,如果你离开加速度计节点,petalinux 构建也会失败。
/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 设置
打开 PYNQ → sdbuild → 脚本并运行“setup_host.sh”脚本(如果你之前没有)。
cd PYNQ/sdbuild/scripts;
bash setup_host.sh
现在我们需要修改 PYNQ 的引导设置。
打开 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”
此外,您将需要为 arm 架构预构建的 rootfs映像。请参阅 PYNQ 快速移植指南。
下载它。
转到 PYNQ → sdbuild 并输入:
make BOARDS=Pynq-Z1
查看 PYNQ 是否设置正确。
修改最小化最小
我们在开始时为 Minized QSPI 运行的脚本现在应该完成了。
打开 petalinux → 项目 → minized_qspi_minimal_2019_1 并添加实用程序包以格式化内存(可选)。
cd petalinux/projects/minized_qspi_minimal_2019_1;
petalinux-config -c rootfs
启用“e2fsprogs”、“e2fsprogs-resize2fs”、“e2fsprogs-e2fsck”包。
您可以在 petalinux 窗口中使用“/”搜索软件包。
退出并重建项目
petalinux-build
现在我们将通过 JTAG 启动我们的系统。
petalinux-boot --jtag --fpga --kernel --verbose;
登录到 Minized,例如使用 cutecom 或 putty。
格式化 EMMC
现在我们将格式化 EMMC。(可选,稍后我们可以使用“dd”将图像写入EMMC)
使用“df -h”命令列出所有已安装的驱动器及其位置
df -h
或“fdisk -l”
fdisk -l
EMMC 是“/dev/mmcblk1”
我们需要创建两个分区。一个用于“image.ub”,第二个用于“rootfs”
第一个分区需要是 FAT32,第二个分区需要是 ext4。
打开 mmcblk1。
fdisk /dev/mmcblk1
使用 fdisk 删除分区并写入更改。
d
1
d
2
w
现在我们需要创建新分区(您可以使用“format_emmc.sh”脚本作为参考,它位于本地/bin 中)。
fdisk /dev/mmcblk1
o
n
p
1
enter (default command)
+255M
w
现在我们有了第一个分区,例如 255Mb。
fdisk /dev/mmcblk1
n
p
2
enter (default command)
enter (default command)
w
制作第一个分区 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
现在您的 EMMC 已准备好作为存储介质。
创建基础项目
打开 hdl → 项目 → minized_petalinux →MINIZED_2019_1
打开块设计并删除未使用的 IP(您可以将 SD 卡管理器连接到 SDIO_0 端口以获得额外存储)。
生成新的双流并从项目中导出 HDF。
创建 PYNQ 映像
转到 minized_ttc_2019_1 项目并更改引用的 HDF 和图像打包配置。
cd minized_ttc_2019_1;
petalinux-config --get-hw-description=/home/bartek/Desktop/Minized_EMMC/Avnet;
构建项目并打包新的 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”将创建的 BSP 复制到 PYNQ → sdbuild
并创建 PYNQ 镜像
cd PYNQ/sdbuild;
bash scripts/image_from_prebuilt.sh MinizedEMMCPynq MinizedEMMCPynq.bsp arm bionic.arm.2.5.img;
最好为 Minized 创建自定义图像。我们需要对 PYNQ 板项目进行一些修改。(准备好的包在附件 MinizedPynq.7z 中)将其提取到某个地方,例如“ PYNQ/zz ”<-这是我们的板存储库。
我已经修改了 petalinux_bsp → meta-user → ... → user_2018-06-26-17-14-00.cfg
并为某些 USB Wi-Fi 模块启用内核驱动程序。
在打包 BSP 之前,您可以通过“ petalinux-config -c kernel ”来执行此操作。
cd PYNQ/sdbuild;
make PREBUILT=/home/bartek/PYNQ/sdbuild/bionic.arm.2.5.img BOARDDIR=/home/bartek/PYNQ/zz BOARD=Minizedzik
如果它不起作用,请尝试添加 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
缩小的图像应该在输出文件夹中。
恢复 USB 驱动器上的磁盘映像。
并将 partition2 的大小调整为小于 EMMC 减去 partition1 的大小(例如 7Gb)并检查错误。
将 USB 驱动器连接到 Minized。
使用“dd”命令将图像写入 EMMC(这需要一段时间)。
dd if=/dev/sda of=/dev/mmcblk1
如果您希望检查错误。
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 内存来加载 BOOT.bin。
ZYNQ 将使用该 BOOT.bin 来加载 FSBL 为 FPGA 进行 Minized 编程,然后加载 u-boot 以在“/dev/mmcblk1p1”分区上搜索 image.ub。Image.ub 将等到“/dev/mmcblk1p2”被挂载并加载rootfs。
现在 Minized 应该使用 PYNQ 系统启动。
现在让我们挂载 pmod sdcard 并编写一些东西来测试功能。
mkdir mnt;
ls -l /dev | grep mmc;
sudo mount /dev/mmcblk0p2 mnt;
打开 mnt 文件夹并创建.txt 文件。
cd mnt;
sudo nano TestWrite.txt;
退出并保存,umount sdcard。
cd ..;
sudo umount mnt;
让我们检查一下 sdcard 上的内容。
创建叠加层
我已将此项目升级为 Vivado 2020.1 版本。
打开 Vitis HLS 并为 xc7z007 芯片创建新的空项目。
单击源→新文件
创建附加 IP 核
转到项目设置→综合并在“顶级功能”中键入“添加”
单击确定并运行综合。
将我们的 IP 导出到本地 IP 存储库。
提取“add.zip”
打开 Vivado 并将新 IP 添加到项目并将其连接到 AXI 互连。
保存项目并导出比特流。
打开 Vivado 项目并搜索bistream和.hwh文件。
复制并重命名这些文件。
将它们上传到 Minized,但首先我们需要 Wi-Fi。
启动 Minized 并连接到它,例如使用 putty。
如您所见,Minized 检测到了我们的无线适配器
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -B
sudo dhclient wlan0
打开互联网浏览器并连接到 Minized(密码是 xilinx)
http://192.168.0.105:9090/tree?
通过 jupyter notebook 上传文件。
结束
现在您已准备好基于这三个项目开发自己的 IOT 应用程序。
让您的 Minized 工作并分享您的工作 :)
- 使用Tensil和PYNQ在PYNQ Z1 FPGA板上运行机器学习
- 基于Pynq的汽车仪表板
- 如何为Minized创建可工作的PYNQ系统
- MiniZed和Mighty机器人
- 用于MiniZed的7段LED显示硬件和VHDL模块
- 如何为探测器构建活动创建探测器
- 使用Ultra96 PYNQ测定织物GSM
- 如何为LCD1602显示器创建自定义字符
- 如何创建和使用LabVIEW中的LLB文件 0次下载
- 如何为混合动力汽车/电动汽车设计加热和冷却系统 23次下载
- 何为NFC?资料下载
- Visual C++和MFC创建的应用程序基础知识 0次下载
- allegro与PADS的区别及创建PCB封装的步骤 66次下载
- PYNQ的常见问题
- AN1246中文手册之如何在Microchip图形库中创建控件
- 使用PYNQ训练和实现BNN 221次阅读
- Java反射技术实现对象的创建 2123次阅读
- 如何为ATE应用创建具有拉电流和灌电流功能的双输出电压轨 693次阅读
- 创建STM32工程模板 1085次阅读
- 如何创建 Docker 镜像的能力 1023次阅读
- 如何为MSP430设计固件以收集和处理IC的数据 1881次阅读
- 如何为制造和组装做好最好的PCB设计准备 1543次阅读
- ADI公司:加速迈向工业4.0 1054次阅读
- 米尔PYNQ开发板来了 901次阅读
- digilent支持Python编程的Zynq开发板介绍 3398次阅读
- Avnet MiniZed单核Zynq 7Z007S入门开发方案 5161次阅读
- PYNQ中MicroBlaze程序文件的加载过程 2192次阅读
- PYNQ 基于Zynq架构添加了对python的支持 8754次阅读
- 一文详解Avnet Zynq 7Z007SMiniZed开发方案 9594次阅读
- 低成本 MiniZed Zynq SoC 开发板 7293次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多