【SoC FPGA学习】三、通过Hello World快速上手SOC FPGA的应用程序开发

Hello world创建流程

  • 打开SoC EDS Command shell软件
  • 输入eclipse&
  • file -> new -> C project
  • 创建main.c文件
  • 编写c程序
  • 编译可得到可执行程序
  • 制作开发板Linux系统镜像SD卡
  • 将编译得到的可执行程序拷贝到开发板的SD卡
  • 用Micro USB数据线连接开发板和电脑
  • 将SD卡插入开发板的卡槽中
  • 查看电脑上的串口号,打开putty软件,打开该串口,波特率115200
  • 给开发板上电
  • 输入root进入系统
  • 查看分区 fdisk -l
  • 挂载SD卡的FAT分区 mount -t vfat /dev/mmcblk0p1 /mnt
  • 切换到mnt目录下 cd /mnt
  • 执行程序 ./hello_world

参考教程的

在这里插入图片描述


一、创建编写编译hello_world工程

1.1、创建工程

打开SoC EDS Command shell软件,在命令行中输入eclipse&打开DS-5软件。

小梅哥寄语:尽量不要直接通过Eclipse for DS-5 v5.27.1快捷方式打开

在这里插入图片描述

注意:出现证书没有找到的,可以先不用理会!
在这里插入图片描述

依次点击FIle->New->C Project

在这里插入图片描述
接着输入工程名,选择编译器,如下图

在这里插入图片描述

Altera Baremetal GCC是编译HPS的裸机程序,即不是基于Linux的程序。

最后点击Finish即可
在这里插入图片描述

1.2、编写程序

新建工程完毕后,接下来便可以添加源文件了。右键创建的hello_world工程,然后依次选择New->Source File

在这里插入图片描述

接着输入源文件名(注意.c后缀也要加),然后点击Finish即可。
在这里插入图片描述

在main.c中加入如下代码,如下图

#include <stdio.h>

int main(int argc, char* argv[])
{
	printf("Hello World");
	return 0;
}

在这里插入图片描述

1.3、编译工程

接着右击所在工程,选择Build Project进行编译。

或者先选中工程,然后ctrl+B快捷键进行编译

在这里插入图片描述

编译好的工程如下图所示,其中的Debug里面的hello_world(好像和Binaries里面的hello_world一样?)即是要放到开发板进行运行的程序。

在这里插入图片描述

二、运行Linux应用程序

编译好的Linux应用程序,如何放到开发板运行呢?SOC FPGA开发中,将程序放到板子常用的有两种方法:

  • 通过可移动设备(U盘【OTG线】、SD卡)
  • 通过网络,电脑和开发板连接在同一路由器上

要想让Linux应用程序在开发板上运行,需要先要保证开发板上的Linux系统要能够正常的运行起来,那么如何让开发板运行Linux系统呢?

  • 首先制作一个让开发板运行Linux系统的SD卡(类比PC端安装windows系统)
  • 然后将Linux应用程序通过U盘连接OTG线拷贝过去或者通过网络传输过去

2.1、制作运行Linux系统的SD卡

①、首先解压开发板光盘下SD卡镜像中的AC501-SoC.rar到桌面,如下图

在这里插入图片描述

②、然后解压开发板光盘下配套软件中的win32diskimager-binary.rar到桌面,如下图
在这里插入图片描述
③、打开解压到桌面(注意路径尽量不要有中文)win32diskimager-binary文件夹中的Win32DiskImager.exe

在这里插入图片描述

在这里插入图片描述

④、插入SD卡,选择对应的镜像文件和盘符,如下图【再提醒一下,镜像文件路径同样不要有中文】

在这里插入图片描述

注意:正式向SD卡烧录镜像前,最好使用SDFormatter将其进行格式化。【若出现格式化失败,再格式化一遍即可!】
这里是引用
在这里插入图片描述

烧写成功如下图所示

在这里插入图片描述

注意,系统烧写成功后会弹出格式化的提示,这里直接关闭即可
在这里插入图片描述

SD卡分成了三个分区

  • ①、存放Linux系统,Windows不能识别,故看不到
  • ②、存放BootLoader,Windows不能识别,故看不到
  • ③、存放FPGA配置文件soc_system.rbf、设备树文件socfpga.dtbu-boot.scr、Linux内核文件zImage

配置FPGA两种方式

  • ①、Quartus II编译工程生成.sof文件(用来配置FPGA的文件),然后再通过下载器下载到FPGA。
  • ②、使用HPS配置FPGA,该种方式不需要下载器,HPS启动时读取.rbf文件,然后写入到FPGA
    • .rbf文件是通过.sof文件通过简单的脚本得到的!

2.2、运行Linux应用程序hello_world

2.2.1、通过可移动设备(SD卡)将程序拷贝到板子上并运行

拷贝编译生成的hello_world到SD卡中,如下图所示

在这里插入图片描述

接着弹出SD卡,如下图所示,而后将SD卡重新插回到开发板。

在这里插入图片描述

连接串口到PC,连接串口如下图所示

在这里插入图片描述
而后打开PC端的串口软件,这里使用MobaXterm,选择相应的COM口,波特率选择为115200,配置如下图所示

在这里插入图片描述

需要注意的一点,MobaXterm的Flow control需要设置为None,否则你将无法在 MobaXterm 中向串口输入数据

配置完毕后,开发板上电启动,可看到如下图所示串口打印信息

在这里插入图片描述

登录用户名输入:root,即可登录到开发板,如下图所示

在这里插入图片描述
在串口终端输入fdisk -l可查看SD卡相关信息,如下图所示

在这里插入图片描述
由上图可以看出/dev/mmcblk0设备,该设备就是我们的SD卡。

其中SD卡有三个分区:mmcblk0p1mmcblk0p2mmcblk0p3,我们拷贝的程序就在W95 FAT32格式的第一个分区中,即/dev/mmcblk0p1中!

现在想要看到mmcblk0p1分区的内容,需要先进行挂载,输入mount -t vfat /dev/mmcblk0p1 /mnt进行挂载,然后输入ls /mnt,即可查看到我们的hello_world程序,如下图所示

在这里插入图片描述

最后,输入cd /mnt进入挂载目录,然后输入./hello_world,即可运行该程序,如下图

在这里插入图片描述

2.2.2、通过网络将程序拷贝到板子上并运行

网络拷贝之前,需要先配置合适的网络参数。

①、配置网络

将电脑和开发板通过网线连接到路由器上,如下图所示,要确保三者处于同一个局域网。

【注意,如果电脑既有有线网卡,又有无线网卡,最好禁用无线网卡】

在这里插入图片描述

  • 设置Windows IP【192.168.10.101】

Windows的IP一般都是由路由器DHCP自动分配的,在命令行执行:ipconfig,查看它的IP。

为了防止IP频繁更改,我们将IP设置为固定IP,设置方法如下:

在这里插入图片描述

而后在windows的cmd终端输入ipconfig查看IP地址,若和上述设置一致,则表示设置成功,如下图所示

在这里插入图片描述

  • 设置开发板IP【192.168.10.103】

下面是设置永久生效的静态IP,若想实现临时生效的静态IP,也可以使用如下命令:ifconifg eth0 192.168.10.103

vi /etc/network/interfaces # 编辑这个文件

#iface eth0 inet dhcp #找到这行代码,并在其加上#
#在其下面添加以下代码,设为静态IP
iface eh0 inet static
	address 192.168.10.103
	netmask 255.255.255.0
	gateway 192.168.10.1

配置完成后,如下图所示

在这里插入图片描述

然后保存退出,输入reboot进行重启,而后在终端输入ifconifg,若可以查看到上述设置信息,则表示开发板设置成功,如下图

在这里插入图片描述
②、ping测试

一般windows有防火墙,开发板(运行Linux系统)PING Windows是PING不通的,这个不要紧,只要windows能PING通对方即可。在windows的cmd终端输入ping 192.168.10.103,若有数据包回应,则表示网络设置成功,如下图所示

在这里插入图片描述
接着我们如何将PC端编译好的应用程序拷贝到开发板呢?这里使用FileZilla软件,具体设置如下。

首先在开发板的终端输入passwd,设置开发板的root密码(注意,输入过程中密码不会显示),如下图所示

在这里插入图片描述

接着在FileZilla的上端,输入设置好的参数,如下图
在这里插入图片描述

这里是引用

点击快速连接,即可登录到开发板(传输文件直接拖曳即可),如下图

在这里插入图片描述
拖曳其中的hello_world拷贝到/home/root目录下,然后在终端的/home/root目录即可看到该文件,如下图

在这里插入图片描述

接着输入chmod 777 hello_world,将该文件赋予可执行权限,而后输入./hello_world即可运行该文件,如下图

在这里插入图片描述

至此,两种拷贝程序到开发板的方法便介绍完毕!

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值