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

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相关推荐

  1. ZYNQ开发系列——PS响应PL中断请求

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--PS响应PL中断请求 前言 中断的设置 PS部分代码 前言 PS和PL的交互中,还有一个中断没有讲到,在<从 ...

  2. ZYNQ开发系列——PS和PL交互之PS端开发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--PS和PL交互之PS端开发 前言 函数封装 后记 前言 前面<ZYNQ开发系列--使用AXI4LITE接口进 ...

  3. zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED(SDK开发详解)

    axi_gpio是PL端gpio(FPGA资源搭建的软核),ps7_gpio是ps端gpio(硬核).打开Documentation的示例Examples,可知第二个是关于中断的示例.导入示例impo ...

  4. 复旦微FMQL(国产Zynq) 【IAR裸机开发之PS】——前言

    关注+星标公众号,及时获取更多技术分享~ 作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 前一段时间写了不少使用Xilinx的Zynq芯片的文章,说实话在整个开发过程中几乎没有遇到什么疑难杂症 ...

  5. ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--使用AXI4LITE接口进行PS和PL交互 前言 PS端AXI接口 AXI4LITE slave模块的设计 后记 ...

  6. ZYNQ开发系列——为PS和PL的交互做准备

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--为PS和PL的交互做准备 我们使用ZYNQ的片子,肯定存在PS和PL交互的情况.一般来说大部分应用都是以PS为主机 ...

  7. ZYNQ开发系列——把PS和PL程序烧写到FLASH中

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--把PS和PL程序烧写到FLASH中 生成 fsbl.elf 生成 BOOT.bin 下载 BOOT.bin 文件到 ...

  8. zynq开发系列4:EMIO连接按键控制MIO连接的灯

    EMIO是负责PL端和PS端通信,PL侧按键可以通过连接EMIO来控制连接到MIO的PS侧的LED.原理和实验3 zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起 类似,只是由MIO侧的 ...

  9. ZYNQ开发系列——hw_platform包和BSP包中的一些理解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--hw_platform包和BSP包中的一些理解 前言 hw_platform BSP包 前言 前面我们完成了PS输 ...

最新文章

  1. 关于Linux的用户管理的相关研究-------(一)
  2. windows下DOS命令关闭占用的端口
  3. 扫码点餐小程序源码_扫码点餐小程序有什么用?怎么制作?
  4. 简单小程序代码_开个小程序店铺需要多少钱?
  5. 多客户端异步通讯框架
  6. Restrictions查询用法
  7. 停止Hadoop或HBase集群的脚本
  8. linux下grpc安装编译,linux下安装grpc插件 (c++和go语言)
  9. python 怎么调用 矩阵 第几行_第58集 python机器学习:混淆矩阵精度指标
  10. javascript:history.go(-1)和javascript:history.back(-1)
  11. 感情在钱面前一文不值,开公司谨记这6大规则
  12. MySQL----商品表及商品分类表例子
  13. 开幕倒计时3天 | 2019中国大数据技术大会(BDTC)邀您一同共赴大数据+AI盛宴!...
  14. 这场直播,我们把 Apache 顶级项目盛会搬来了!
  15. 排列组合公式/排列组合计算公式
  16. DynamicDNSSVR 动态域名更新服务 免费软件
  17. 谈谈浏览器中富文本编辑器的技术演进
  18. Android仿淘宝京东商品规格参数颜色筛选
  19. 解析USGS网站页面中的地震空间数据
  20. git checkout恢复文件

热门文章

  1. Crontab中的除号(slash)到底怎么用?(转载)
  2. 软考-信息系统项目管理师-论文
  3. 在线制作平台H5制作
  4. ac3音频 机顶盒播放音量变小问题
  5. C++读取歌词(lrc)文件,分解歌词时间标签和歌词文本的方法
  6. [学习打卡]Python基础入门(一)
  7. 物联网卡显示无服务器,联通物联网卡信号不好(物联卡一直显示无服务)
  8. 直播系统代码,自行更改导航栏样式
  9. 统计一行字符串中单词的个数
  10. 解决Windows莫名其妙地从休眠状态唤醒的问题