01 ZYNQ_ARM-UART与基本界面介绍

本文详细介绍了如何在Vivado中创建基于ZYNQ的硬件平台,包括设置工程、添加ZYNQ设备、配置DDR3和时钟资源。接着,文章阐述了Vivado中的全操作流程,如验证设计、生成输出和创建顶层文件。最后,文章转向SDK,讲解如何建立工程并编写应用层代码,以及编译和下载过程。
摘要由CSDN通过智能技术生成

一、建立工程-vivado

        虽然是ARM端的开发,但是需要先在VIVADO端进行硬件平台的创建,再设立好工程路径、工程名,选择好对应芯片即可(不创建任何.v文件),如下图所示。

         首先,对于ZYNQ而言,其实ARM端才是主设备,FPGA更多充当了从设备的概念。点击Create Block Design,添加ZYNQ设备,注意在前文中已选定好芯片信号为ZYNQ7系列,此时下面的ultra系列都是无法使用的。 

        其次介绍一下所放设备对应的输入输出:

M_AXI_GP0_ACLK当ARM作为主设备时,输出的时钟(AXI设备)
DDR
FIXED_IO
即DDR3设备,与片外DDR相连

固定IO,不管

FCLK_CLK0输出一个时钟供其他模块使用(普通设备)
FCLK_RSET0_N输出一个复位供其他模块使用(普通设备)

         所以,当只使用PS时,可以去掉M_AXI_GP0_ACLK、FCLK_CLK0、FCLK_RSET0_N。而对于DDR和FIXED_IO,无需去理会,对于DDR3而言,只要你设定好DDR的芯片型号、供电等各类参数即可,无需进行引脚约束,因为其FPGA设计而言已经固定好,所以免去此约束。但是对于DDR4而言,需要手动约束引脚

1、修改:PS引脚号、DDR芯片、增删信号复位线、增删PL-PS交互内容。

        (1)PS引脚号:查看设备原理图对应PS的MIO号,采用的是MIO14 15。设定115200波特率

         (2)DDR芯片:设定芯片号、供电等参数。

        (3)删信号复位线、AXI接口:删除给PL的时钟、复位,若在此给50MHz,对于PL设计而言,无需再采用外部输入的时钟、复位

 

         设定完后,点run auto连接即可。

 2、VIVADO全操作

        validate design→generate output→create hdl wrapper→综合生成bit流→导出硬件设备。

(1)validate design:初步验证BD文件设计的正确性,弹出无误。一般有问题的话,检查模块时钟和所接时钟是否一致等问题。

(2)generate output:生成输出文件,即放置的这些模块产生对应IP模块。

(3)create hdl wrapper:可以理解为创建顶层文件,即例化BD文件,将BD文件的输入、输出,连接到顶层,从而可以构成约束文件。

(4)综合-引脚约束,此时的DDR已默认分配了,无需进行。生成bit流,此时的工程无PL端,故无需生成,直接导出即可

(5)导出:File > Export > Export hardware,因为无PL、无bit文件,可以不包含,导出后,launch SDK即可。


二、建立SDK工程

        刚才导出了硬件,其对应了所设定的PS的各个参数,在此参数的基础上,编写应用层代码:创建工程、编译、下载。

(1)创建工程:随便起名字,需无中文,左边为刚才导出的硬件平台,第二个board support package为板级支持包,其包含了所需要用到的各类底层库,例如内存读写等。 

(2)编译:直接在helloword.c的基础上修改即可。

        蓝色为应用层,为用户编写的代码,一般都是在src,可以自己写很多库,放在includes。红色为板级支持包,不支持修改,即使你双击里面的文件修改,在编译后会恢复到默认,因为是支持底层的库。黄色为硬件平台,比如设定的串口、DDR资源等。

        Ctrl+S就是保存+编译,无误后,可以烧录进板子。最好选中复位系统,因为没有bit流,不再对FPGA烧写。 


三、效果 

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"

char temp[20];

int main()
{
    init_platform();

    print("Hello World\n\r");
    while(1)
    {
    	scanf("%s",temp);
    	printf("你刚才发送了:%s",temp);
    }

    cleanup_platform();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陌夏微秋

希望各位多多支持

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

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

打赏作者

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

抵扣说明:

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

余额充值