【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

最近学习zynq较多,这里做一个笔记,供日后参考使用。zynq是xilinx公司出的一款soc,上面包含有双核arm9+fpga,arm9可以运行裸机程序或者是linux,fpga可以做一些定制化的硬件开发,比如说10个以上的串口等等。

1、开发板

目前学习zynq使用zedboard较多,淘宝上可以购买黑金的版本,只需要使用两根usb线+一个电源就可以开始开发和调试了。当然,如果需要开发网络,还需要一根网线。

2、开发软件

开发zynq需要安装vivado。注意在安装的时候一定要选择安装sdk。vivado主要是负责硬件环境的搭建,而sdk主要负责软件的开发。

3、开发过程

zynq的启动程序是这样的,一般内置的rom代码启动fsbl,fsbl然后加载bitfile和app程序。通常fsbl、bitfile、app会生成一个大的BOOT.bin,将BOOT.bin烧录norflash或者是sd卡,这样就可以程序就可以永久地驻留在开发板中了。

4、调试方法

目前调试方法主要是jtag调试+sdk单步调试。zedboard有两根usb线,一根usb负责串口打印,另外一根usb负责jtag烧录。注意,这两个usb线连接的都是usb2uart芯片,但是是不同厂家的芯片,所以需要安装不同的驱动。

5、fsbl和app区别

fsbl是系统提供的启动代码,主要功能就是加载bitfile和app。fsbl由user code和bsp构成,这和app的构成是一样的。所以fsbl和app其实可以共享一个bsp程序。不过稍有不同的是,fsbl会调用ps7_init.c里面的函数,这个文件需要对ddr、时钟做一些初始化,其他部分没有太大的差异。

6、vivado提供了哪些ip core

vivado提供的ip core还是很多的,常见的gpio、uart、dma、fifo、hdmi等都可以轻松找到,但是复杂一点的算法,恐怕就需要自己写了。zynq上面使用的是axi总线,最后将ip core bind到总线、分配一个地址空间就可以了。如果是定制的ip,那么后期就需要综合、实现、构建bitfile了。

7、app有哪些自带程序

vivado提供了很多程序,不管是fatfs、lwip、rsa这些函数库,还提供了freertos、peripheral test、bootloader、linux、roofs这些复杂程序的代码,大家可以根据自己的实际情况灵活使用。

8、zynq应该怎么学

市面上关于zynq的中文学习资料还是有一些的,但是还是建议大家多看看英文原版资料、边看边练,总能找到办法解决的。不管是复杂的网络、声卡、hdmi,还是简单的gpio、uart,事实上都是前人已经犯过的错误,问题不是很大。此外,zynq学习的曲线很高,既要懂硬件、还要精通软件和fpga,熟悉实时系统、编译器、链接文件和驱动开发,或许这才是它的有趣之处。

9、zynq的最佳应用场合

个人觉得图像和定制化场景是zynq的最佳战场。比如如果有一个场景需要10个串口,那么一般soc是很难满足的,zynq就不存在这个问题。我们可以自己在fpga实现,此外如果是图像开发,把一些简单的算法直接用fpga实现,用arm来做调度和开发,其实这也是非常合适的。此外,用zynq学习一下fpga,也是很不错的,一举两得。

随想录(zynq学习)相关推荐

  1. ZYNQ学习(1) —— 基础开发流程

    ZYNQ学习(1) -- 基础开发流程 1. 现在PlanAhead中新建一个工程 2. 添加嵌入式内核,进入EDK中配置内核(导入XML模板,添加模块,设置端口等) 3. 回到PlanAhead生成 ...

  2. ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED

    ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED 总体思路 Block Design界面配置IP核并导出硬件配置 在SDK中编写C代码 下载PS和PL的联合工程到开发板 总体思路 首先需 ...

  3. 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(四)

    前情提要: 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(一) 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(二) 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(三) 文章目录 0. ...

  4. ZYNQ学习笔记_GPIO之输入输出

    ZYNQ学习笔记_GPIO之输入输出 GPIO介绍 MIO介绍 EMIO介绍 控制GPIO接口的寄存器原理_输入输出部分 GPIO介绍 GPIO的英文全称为General-purpose input/ ...

  5. ZYNQ学习之路17.自定义SDSoC硬件平台

    前言 在前面的学习中,我们已经学会了使用Vivado及SDK开发环境,熟悉了硬件开发与Linux软件驱动之间的联系及开发流程.本系列教程我们学习SDSoc的开发,在SDSoc IDE中,Xilinx为 ...

  6. ZYNQ学习_2-Vivado仿真使用

    ZYNQ学习_2-Vivado仿真使用 文章目录 ZYNQ学习_2-Vivado仿真使用 前言 一.设置Vivado仿真 二.添加激励测试文件 3. 编写仿真代码 4. 运行仿真 总结 前言 这里用于 ...

  7. ZYNQ学习之路13.创建PetaLinux工程

    在前面的学习中,我们知道如何根据PetaLinux BSP设计去创建一个工程,现在,我们结合Vivado设计我们自己PetaLinux系统. 开发环境:Ubuntu16 64bit, PetaLinu ...

  8. zynq学习04 zynq中PS通过MIO控制LED

    http://m.blog.csdn.net/article/details?id=40954363 这几天在学习zynq,zynq芯片集成了两片arm a9的内核,和xilinx的fpga可编程部分 ...

  9. ZYNQ学习笔记PS部分【基本介绍】

    基于Zynq的嵌入式开发流程 Xilinx Zynq SoC 是集成了FPGA和硬核处理器的特殊SoC,它与一般FPGA的最大不同就是自带了一个ARM Cortex-A系列硬核,根据型号不同从A9到A ...

最新文章

  1. java opencv calcCovarMatrix 计算协方差矩阵
  2. 产品运营必须知道的几个概念,什么是定向营销?
  3. 定义快捷代码_Qt Creator快捷键
  4. QT的QEasingCurve类的使用
  5. 利用python脚本(re)抓取美空mm图片
  6. 每个程序员都可能犯过的10个错误
  7. php中怎样表示组合框,php – 如何实现动态组合框选择系统
  8. matlab数组平方的计算自定义函数_从零开始的matlab学习笔记——(38)简单数论计算函数:取整,gcd,lcm,质数,全排列...
  9. 【数据结构与算法】二叉树结点最小深度求解算法
  10. Python基础知识:当字典碰到类时会发生什么?
  11. 03-neo4j的命令
  12. ASP.Net下使用ExtJS报“Ext未定义”错误的原因
  13. jquery.validation.js 表单验证
  14. goeasy服务器发送(发布)消息,python服务端使用GoEasy实现websocket消息推送
  15. HFSS----微带天线设计实例之模型分析优化
  16. 计算机程序设计员国家职业资格三级(高级)操作技能考核试卷-四川考场
  17. 改善C#程序的建议1:非用ICloneable不可的理由
  18. 定义变量byte a = (byte)128输出a的结果
  19. JSP页面的初步编写
  20. ajax讲解和入门实例

热门文章

  1. 项目管理中工时计算的问题
  2. Python 打开目录与指定文件
  3. win8笔记本关闭小键盘
  4. 图像特效之浮雕与雕刻
  5. 项目管理图书泄露章节-----关于项目内容中的其他
  6. 串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
  7. 【洛谷 P1070】道路游戏 (DP)
  8. Qt on Android 蓝牙通信开发
  9. jQuery 的禁用和只读 ---防暴动处理
  10. AngularJS学习笔记之directive—scope选项与绑定策略