zynq开发系列1:vivado和sdk联合使用串口打印helloworld
zynq开发流程如下所示,其中在SDK属于软件层面开发
zynq开发最小系统,ps指zynq里的ps部分,核心为ARM Cortex A9处理器。周围两个外设,DDR3内存控制器用于存储数据,UART用于与外界通信
打开vivado新建工程,工程名为英文,路径也为英文可包含下划线
一路next,有芯片的选芯片型号,有板子的直接选用板子然后finish
模块化设计点击Create block design
Diagram下点击加号新建IP
输入zynq按下enter表示选中该模块,经过一段时间后vivado自动生成好了
双击IP核对它进行配置,打开页面如下图所示。方框里面是PS,方框外面是PL。
根据Zedboard原理图Bank501UART对应的MIO4849选择Peripherla I/O Pins勾选一个UART1对应4849
或者直接在MIO Configuration勾上UART1自动显示MIO4849,48对应tx,49对应rx这与原理图是一致的
配置UART波特率为115200
配置完UART原理图没有任何变化,因为UART属于FIXED_IO,展开FIXED_IO,UART属于MIO[53:0]
删除M_AX_GP0接口,这属于PS和PL间接口,点击PS-PLConfiguration点击第二个,展开把 M AXI GP0 interface前的勾去掉
顺便也删了M_AX_GP0_ACLK接口,这是M_AX_GP0附带的时钟信号
FCLK_CLK0是PS提供给PL的时钟信号,在时钟端点击Clock Configuration展开PL Fabric Clocks把FCLK_CLK0前的勾取消掉
时钟取消掉的原理图如下图所示
FCLK_RESET0_N是PS提供给PL的复位接口,在PS-PL Configuration点击General,展开Enable Clock Resets,把FCLK_RESET0_N前的勾取消掉
zynq上不用的接口完全被移除掉了
点击接口右键make external(run block automation也可以帮忙完成端口创建)
扩展出来的端口可以连接到器件引脚上
可以点击validate design来验证结果有没有问题
在sources下右击bd文件Generate Output Products可勾选global或直接点击Generate
生成结果可以点击IP Sources查看,可以看出生成了管脚约束,ps端不需要另外管脚约束在这就已经自动生成了
返回Hierarchy,右键点击Create HDL Wrapper生成顶层文件。保持默认让vivado管理自动更新,点击OK
可以看到多了一个_wrapper.v的顶层文件,文件里有DDR和FIXED_IO的端口声明
导出硬件到SDK,没有设计到PL部分的开发所以不需要include bitstream,勾不需要勾,不然弹出黄色警告
导出硬件后可以看出多了一个sdk文件夹,里面只有一个hdf文件,这是一个压缩文件可以直接打开来看,导入sdk后加载的文件
然后点击下一个选项,launch sdk点击OK可以看见SDK在加载中
新建一个application project,Processor下拉有两个说明这是一个双核处理器,保持默认即可,选择模板Hello world后Finish,也可以直接从空模板开始敲
可以看出生成了一个helloworld工程,helloworld_bsp是板级支持包,展开src,里的helloworld.c是主文件
打开SDK Terminal点击加号新建串口,Port选择com 7(根据设备管理器确定)后OK
没有对PL部分进行编程故直接点绿色三角开始运行即可,将elf文件下载进板子(elf是arm上的可执行文件),可以看见SDK的串口打印出Hello World,这是可执行文件输出的字符串通过串口发送给电脑
zynq开发系列1:vivado和sdk联合使用串口打印helloworld相关推荐
- zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED(SDK开发详解)
axi_gpio是PL端gpio(FPGA资源搭建的软核),ps7_gpio是ps端gpio(硬核).打开Documentation的示例Examples,可知第二个是关于中断的示例.导入示例impo ...
- ZYNQ开发系列——SDK输出串口选择以及打印函数print、printf、xil_printf的差别
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--SDK输出串口选择以及打印函数print.printf.xil_printf的差别 前言 两个串口到底是谁在打印? ...
- zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起
按键和LED由MIO连接,在PS端用按键控制LED,按键按下时发出信号,LED接收到信号后亮起 可以参考上一节实验 zynq开发系列2:GPIO连接MIO控制LED闪烁 的流程和代码,在vivado操 ...
- ZYNQ开发系列——PS开发之HelloWorld
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--PS开发之HelloWorld 前言 外设接口 SDK建立工程相关操作记录 前言 俗话说一日不见,如隔三秋.两年没 ...
- ZYNQ开发系列——hw_platform包和BSP包中的一些理解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--hw_platform包和BSP包中的一些理解 前言 hw_platform BSP包 前言 前面我们完成了PS输 ...
- zynq开发系列4:MIO按键中断控制LED
与实验三类似 zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起 ,PS部分设置为与实验一helloword相同的最小系统,但按键控制LED的方式设置为中断,即通过按下按键为中断这一方式从 ...
- zynq开发系列4:EMIO连接按键控制MIO连接的灯
EMIO是负责PL端和PS端通信,PL侧按键可以通过连接EMIO来控制连接到MIO的PS侧的LED.原理和实验3 zynq开发系列3:GPIO连接MIO通过按键控制LED灯亮起 类似,只是由MIO侧的 ...
- ZYNQ开发系列——使用AXI4LITE接口进行PS和PL交互
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--使用AXI4LITE接口进行PS和PL交互 前言 PS端AXI接口 AXI4LITE slave模块的设计 后记 ...
- ZYNQ开发系列——把PS和PL程序烧写到FLASH中
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--把PS和PL程序烧写到FLASH中 生成 fsbl.elf 生成 BOOT.bin 下载 BOOT.bin 文件到 ...
最新文章
- JAVA并发之多线程基础(2)
- map根据value值排序_凯哥带你从零学大数据系列之Java篇---第十九章:集合(Map+Collections)...
- 多线程1.学习资料2.面试题3.知识点
- BigInteger和BigDecimal类
- 架设国外服务器怎么维护,关于架设海外服务器这些事情你了解吗
- PL/SQL跨库查询数据
- 余额宝收益用计算机该怎么算,余额宝收益计算器怎么用
- web前端开发技术储久良第三版答案整理(1~17章答案+附录模拟试卷)
- ACM竞赛入门分析与学习资源总结
- 代理是什么及如何使用
- 7-151 计算存款利息
- vue做移动端适配最佳解决方案,亲测有效
- [分享] 【强烈推荐】要速度更要方便!75款实用Chrome插件推荐
- 大数据之数据清洗之爬取数据后如何根据地名或者公司名获取经纬度信息-地址逆解析经纬度
- Cesium聚簇实现-kdbush类实现
- ToggleButton的用法
- 英语学习详细笔记(三)代名词
- 关于vue告警:Closing curly brace does not appear on the same line as the subsequent block
- BZOJ4808马——二分图最大独立集
- [JVM]虚拟机类加载机制
热门文章
- java虚拟机结构图解(堆栈方法区)
- lol2月26日更新后一直提示服务器维护,《lol》2月26日更新了什么 2月26日更新内容一览...
- 前端emojs_Emoji-Chat emoji表情包发送及显示兼容web端、移动端
- 怎么python编程excel_Python操作excel
- 魔天记服务器维护,魔天记3月23日维护公告
- 计算机网络重点知识总结 谢希仁版,计算机网络谢希仁版网络层知识点总结
- perl linux 独立运行,Perl脚本打包为独立执行程序
- vue(vue-cli+vue-router)+babel+webpack项目搭建入门(四)
- LIRe 源代码分析 4:建立索引(DocumentBuilder)[以颜色布局为例]
- java中的比较运算符_Java基础---Java中的比较运算符(十三)