【Ultrascale+ MPSOC学习记录】2、Hello_World

硬件环境

我这次学习Ultrascale+ MPSOC开发,是基于ALINX的AXU4EV-E开发板。开发板配套了很多教程,第一份是纯FPGA开发的一些教程,由于FPGA开发有基础,就先不管了,先搞PS+PL联合开发。
在这里插入图片描述

工程建立

好了,万事开头难,这就来了。听说PS可以单独运行,我们就先搞一个串口打印Hello world。
但是,即使是只用PS端的ARM,还是TMD得新建一个PL工程,先别管为毛吧,跟着教程做。

1、打开vivado,新建工程

在这里插入图片描述

2、然后建BD

点击右边的Create Block Design,新建一个BD,然后点击+号或者右键点击空白处,搜索zynq,新建一个MPSOC的IP:在这里插入图片描述
在这里插入图片描述

3、配置zynq MPSOC

双击新建的MPSOC,就能进入PS的配置界面:
在这里插入图片描述
这里我们进行几个必要的配置:
bank电源、时钟、串口接哪里、从哪里启动

根据开发板的电路图可以知道,bank500-502用的1.8V,bank503用的3.3V,下图设置的BANK0-3就是实际芯片的BANK500-503:
在这里插入图片描述
然后勾选SPI x4:
在这里插入图片描述
然后是打印Hello的串口,硬件上是接到MIO的42 43:
在这里插入图片描述
然后时钟因为硬件是33.333M,默认也是33.333M,就不设置了,直接OK;

到这里就做好了PS的基础配置,点击检查一下:
在这里插入图片描述
发现报错,提示有个时钟未接:
在这里插入图片描述
好吧,你可以在配置界面关闭这个时钟,也可以直接连接上:
在这里插入图片描述
然后就可以保存关闭BD了。

擦,看了一眼ALINX的文档,发现还忘了一步,还得设置DDR,重新打开BD,然后双击进入MPSOC的设置界面:
在 DDR Configuration 窗口中,Load DDR Presets 选择
”DDR4_MICRON_MT40A256M16GE_083E”
在这里插入图片描述
还不够,还得改一下参数:
在这里插入图片描述

4、运行vivado工程,导出xsa

BD设置好以后,先给BD建一个Wrapper文件:
在这里插入图片描述
然后就是点击Generate Bitstream,跑完整个工程;
这里有个知识点!!!!
其实我们PL上没有任何功能,bit生成出来也不会用,我们刚刚在BD中对MPSOC的设置,其实都是为了导入到Vitis里面用的,所以只需要在BD上点右键,Generate Output就行了,但是奈何强迫症犯了,不跑完整个工程就像少点啥。。。

等工程跑完,导出硬件:
在这里插入图片描述
一直默认即可,然后就会在工程目录中生成xsa文件,这个在旧版vivado中叫hdf文件。当然,你想导出到其他文件夹也行。
在这里插入图片描述

5、建立vitis工程

上面步骤就导出的xsa,然后我们开始建vitis工程,先新建一个vitis文件夹,我这里就直接在工程路径下建了,然后打开vitis,可以vivado菜单里打开,也可以从操作系统的应用列表里面打开。
在这里插入图片描述
打开vitis后,需要选择一个vitis工程的路径:
在这里插入图片描述
然后新建App工程,选择从xsa文件新建:
在这里插入图片描述
在这里插入图片描述
应用名字输入hello
在这里插入图片描述
其他设置都默认,然后就建好了,直接点击锤子在这里插入图片描述
运行工程:
在这里插入图片描述
等待一会儿,就编译好了:
在这里插入图片描述

下载调试

接着就是硬件连接,下载器、串口线,都接好,然后把启动模式改成jtag,这样开发板通电就不会主动运行程序。
在这里插入图片描述

在这里插入图片描述
然后在hello工程上点右键,Run As,直接就用下载器连接板子,然后就会加载hello程序到ARM运行了。

串口终端上可以看到输出了:
在这里插入图片描述

固化启动

前面一个步骤是通过jtag下载器在线调试的,程序并没有存在flash中,断电就没有了,现在我们想把这个hello程序下载到芯片附带的flash中去,应该怎么操作呢?
在hello_system上点右键,直接build工程(之前点击锤子是只build了hello)
在这里插入图片描述
然后,就可以看到一个新的文件夹生成出来。
在这里插入图片描述
这个BOOT.BIN就是烧写文件,里面含有了fsbl和hello.elf文件,直接可以烧写到qspi flash中去。
在菜单中选择Xilinx->Program flash,然后选择BOOT.bin
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后把启动模式改成qspi启动,断电重启,从串口终端中就可以看到启动打印了:
在这里插入图片描述
在这里插入图片描述

增加debug打印信息

zynq启动过程中,是先启动fsbl,再加载app,这个过程经历了很多步骤,xilinx提供了一个debug选项,可以把启动过程打印出来,这样就能看到更详细的启动过程了。
把fsbl工程的FSBL_DEBUG_INFO_VAL改成1,重新build 硬件工程:
在这里插入图片描述
在这里插入图片描述
再build hello工程:
在这里插入图片描述
再重新烧写新的BOOT.BIN文件,烧写后断电重启,可以看到串口打印更加丰富了:
在这里插入图片描述
工程可以在这里下载:
https://download.csdn.net/download/cdutcl/90522076

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值