FPGA实践教程(四)片上ARM运行程序

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

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

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

目录

1.用服务器编译程序

1.1背景知识

1.1.1 cd与mkdir指令

1.1.2.显示相应挂载信息

1.2 进入相应的目录

1.3 进行相应的环境设定

1.4 编译程序

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

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

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

2.1输入df -h查看相应挂载信息

2.2创建目录用于挂载

2.3把相应的usb挂载到目录上

2.4打开挂载的目录并运行程序

2.5程序拷入sd卡

2.6./程序就能直接运行


编译过程: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:显示所有文件系统

FPGA实践教程(四)片上ARM运行程序_第1张图片

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盘里面的东西。

FPGA实践教程(四)片上ARM运行程序_第2张图片

2.2创建目录用于挂载

mkdir -p /temp/usb

2.3把相应的usb挂载到目录上

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

FPGA实践教程(四)片上ARM运行程序_第3张图片

2.4打开挂载的目录并运行程序

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

2.5程序拷入sd卡

这样就每次开关机不用每次都挂载u盘,并且直接打开相关的目录就能运行程序  cp /u/ /mnt/mmcblk1p1

或者cp -i(或者-f) 源文件 目标文件,-i是交互式拷贝,是否替换位置,-f为直接替换,不提示。

2.6./程序就能直接运行

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

相关内容:

实践教程(一)用HLS生成IPcore

实践教程(二)连接片上ARM

实践教程(三)系统搭建与烧录

实践教程(四)片上ARM运行程序

实践教程(五)PS用MIG调用DDR

你可能感兴趣的:(FPGA,FPGA实践教程)