ZYNQ开发系列——PS开发之HelloWorld

编程知识 更新时间:2023-05-02 07:03:05

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

ZYNQ开发系列——PS开发之HelloWorld

  • 前言
  • 外设接口
  • SDK建立工程相关操作记录


前言

俗话说一日不见,如隔三秋。两年没搞PS的开发,居然连HelloWorld怎么出来都不记得了,可见知识记录的重要性,知识真的是有保鲜期的,当年那是多么熟练,信手拈来,不进行记录的话,现在就忘得有多彻底。这也是我半年前决心开始写博客的原因之一,希望自己学到的技能记录下来,永远保鲜。
不过毕竟之前还是搞过,尽管现在看来又是从头开始学习,但应该进度不会像一开始这么慢,毕竟还是有一些记忆片段,有时候搞着搞着就触发了想起来了,因此希望这个回忆的过程能够尽量缩短,希望尽快能恢复到当年熟悉的这种程度。

外设接口

还是上一篇博文这个图,我们介绍一下有什么外设接口

(1)包含QSPI、ENET 0、SD 0、UART 0、UART 1


(2)DDR设置


(3)中断设置
后续会用到中断,目前暂时未连线

SDK建立工程相关操作记录

Vivado编译完成后
1、Vivado 菜单栏 File > Export > Export Hardware,因为设计包含 PL 部分,所以在 Export Hardware 弹窗勾选 Include bitstream,再点击 OK


2、Vivado 菜单栏 File > Launch SDK,打开的 SDK 窗口如下,其中 ad936x_ctl.bit 就是 PL 端 的 Bit 流文件

但是,试图打开下面其他 .c和.h文件的时候却显示不出来代码。


解决方法:
Window->Preferences->General->Workspace,选中Refresh on access。(访问时刷新)
这样就能看到这些文件的内容了

那我们export出来实际上是system.hdf文件,我们打开稍微看看,是一个地址映射表
把我目前关心的一部分摘录出来

我们自己定义的BUS_AXI的地址段在这里显示出来了。同时我们有两个串口外设,他们的起始地址分别是
Ps7_uart_0 0xe0000000~0xe0000fff
Ps7_uart_1 0xe0001000~0xe0001fff
先记住这两个地址。

3、建立 SDK 工程

SDK 菜单栏 File > New > Application Project
New Project 弹窗 Project name 填入 ps_hello_zynq,Next
Templates 窗口 选择 Hello World 工程,Finish
将helloworld.c代码改成

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


int main()
{
    init_platform();

    while(1)
    {
    	print("Hello World\n\r");
    	sleep(1);
    }

    cleanup_platform();
    return 0;
}

右键单击工程 ps_hello_zynq > Run As > Launch on Hardware (System Debugger)。串口就开始打印helloworld了。

但似乎FPGA BIT文件没有下载进去,注意,ZYNQ的PS和PL是可以完全独立运行的。那我们要下载bit文件,则需要在Run Configurations里面将Program FPGA勾选上

这样PL和PS都重新进行了加载。

还有一个疑问,在进行PS的外设配置的时候,我们配置了两个串口,但那到底是哪个串口在打印呢?带着这个疑问,下一篇继续。

更多推荐

ZYNQ开发系列——PS开发之HelloWorld

本文发布于:2023-04-26 08:13:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/8412b07fe28c42d3f6611b00302953dc.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:系列   ZYNQ   HelloWorld   PS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 104874文章数
  • 26295阅读数
  • 0评论数