FPGA实践教程:在Xilinx zynq上运行LeNet(四)片上ARM运行程序

本文档系列是我在实践将简单的神经网络LeNet-5实现到Xilinx 的zynq-7z035的FPGA上遇到的问题和解决方法。

背景:我们用vivado HLS对相关软件生成了相应的IP core,并且对相应的IP core进行系统集成,验证并生成了比特流,并且将其烧录到板子上。

目的:FPGA的运行需要片上ARM的控制,所以需要针对片上ARM编写的源码并且需要片上ARM执行源码。本部分介绍如何用服务器编译源码以及如何用FPGA的片上ARM执行编译好的程序。


编译过程:cd到目录——source env——gcc编译

程序运行过程:mkdir挂载目录——mount挂载u盘——cp把程序拷入常用目录——./运行程序

1.用服务器编译程序

为了更快编译,我们用服务器编译相应的单片机程序。

1.1背景知识

1.1.1 cd与mkdir指令

我们用linux在服务器上进行相应的编译,注意cd与cd /的区别,若想看到根目录下的文件可以用ls /

mkdir -p:创建目录

1.1.2.显示相应挂载信息

df:disk info;-h: human readable. 

df -h:用kb以上单位显示,可读性高

df -a:显示所有文件系统


1.2 进入相应的目录

/lenz/luoqr/yolo/test


1.3 进行相应的环境设定

source setup_env.sh


1.4 编译程序


gcc -o 编译生成特定的输出文件 gcc -o <目标文件> <源文件>

1.5 file指令对相应的文件进行检查

1.6 编译好的文件拷入u盘,插到FPGA板子上

相应的linux指令
cd /lenz/luoqr/yolo/test
source setup_env.sh
arm-xilinx-gnueabi-gcc -o dmabench dmabench.c
file dmabench 

2.导出程序到单片机运行

这一步我们要让FPGA的片上单片机找到u盘里面的可执行程序并且可以运行程序

2.1输入df -h查看相应挂载信息,我们程序在u盘里面,所以需要创建一个挂载,让系统能读取u盘里面的东西。


2.2创建目录mkdir -p /temp/usb

2.3把相应的usb挂载到目录上,然后打开挂在目录就是u盘里面的内容。注意这里u盘必须是fat32格式不是ntfs格式,不然系统不会读。然后我们就能打开相应的目录运行相应的程序。

2.4打开挂载的目录并运行程序
到此,我们可以将相应的程序在服务器上进行编译从而导入FPGA上的单片机并且运行。

2.5我们可以将程序拷入sd卡,这样就每次开关机不用每次都挂载u盘,并且直接打开相关的目录就能运行程序  cp /u/<program> /mnt/mmcblk1p1

2.6./程序就能直接运行

相应的linux指令
mkdir  /u
mount  /dev/sda1  /u
cd  /u
cp  /u/<program>  /mnt/mmcblk1p1
cd /mnt/mmcblk1p1



猜你喜欢

转载自blog.csdn.net/weixin_36474809/article/details/80743037
今日推荐