lulugay的博客阅读指南

版权声明:本文为博主原创文章,欢迎转载,但请注明出处 https://blog.csdn.net/lulugay/article/details/83868196

欢迎大家就本博客内容与我联系[email protected]
17年开始接触FPGA和ZYNQ,在学习ZYNQ和相关工具的过程中遇到过很多坑,最大的问题是没有找到一套完整,成系列的教程可以让我一步一步做下来。
工程性质的知识(区别于理论)大概分成两部分,一部分是概念,一部分是操作。有些东西你从原理上能想通它是怎么做的,但是没亲自动手做过,一旦说起细节就可能发现自己的概念并不健全。有些东西你照着别人的实验做过,但是不清楚为什么每一步要这么做。这两者虽然说并不要求同步进行,但是两者进度不能差太多。相信很多同学学习知识的时候都是先找个别人做好的东西一步一步先照着做下来,然后再自己改一些东西。这个时候就要注意去了解概念,如果不清楚概念的话复现一个简单的工程可能还行,复现一个大的工程可能就不行了。刚接触ZYNQ的时候曾经尝试着去复现wiki.xilinx.com上的一些Target Reference Design,但是那个时候对概念完全没有理解,所以复现起来每一步都要花很久,遇到bug也不知道怎么debug。如果只有概念没有操作,那么这些概念也是无源之水无本之木,没有进一步的操作也就没法进一步搭建概念,类似于毛爷爷讲的

“通过实践而发现真理,又通过实践而证实真理和发展真理.从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界.实践、认识、再实践、再认识,这种形式,循环往复以至无穷,而实践和认识之每一循环的内容,都比较地进到了高一级的程度.这就是辩证唯物论的全部认识论,这就是辩证唯物论的知行统一观.”〔毛选1-296〕《毛泽东选集》1卷《实践论》

开通博客的目的一方面是记录自己学习ZYNQ的过程,希望能够系统地整理下学习ZYNQ相关的内容,给读者提供足够多的“操作”作为参考,同时提供一些在网上难以找到的“概念”,比如Linux系统相关的概念网上有很多讲解,但是介绍SDSoC,Vivado HLS工具相关的概念就很稀少。另外一方面也是希望提升自己的表达能力和梳理能力,将复杂的东西用浅显易懂的方式讲解出来。

Xilinx现在正在进行二次创业,不再满足在传统的IC验证和通信市场,力求在更多的领域获得市场份额。最近Xilinx在力推的两样新玩意——SDSoC和PYNQ就是为了实现这个目标。因为这两个新玩意实在是太新了,所以网上能找到的资料很少,所以结合我学习的经历,打算以SDSoC为中心介绍基于Xilinx ZYNQ系列芯片的嵌入式系统开发。
暂定有如下几个系列

  1. SDSoC的软硬件协同设计流程系列
    1. SDSoC软硬件协同设计流程系列——1.基于SDSoC的软硬件协同设计流程简介
    2. SDSoC软硬件协同设计流程系列——2.SDSoC使用
    3. SDSoC软硬件协同设计流程系列——3. SDS pragma
    4. SDSoC软硬件协同设计流程系列——4.搭建SDSoC Platform
    5. SDSoC软硬件协同设计流程系列——4.zcu102搭建带xfce4桌面的SDSoC Platform
    6. SDSoC软硬件协同设计流程系列——5.ultra96搭建支持PYNQ框架的SDSoC Platform
    7. SDSoC软硬件协同设计流程系列——6.SDSoC+xfOpenCV+OpenCV颜色识别

本系列前四篇文章主要是对Xilinx文档进行整理和翻译,其中第三篇介绍SDS Pragma结合了我的一些理解,力求介绍这些Pragma相关的“概念”。但是做完本系列前4篇文章用SDSoC也只能是跑一个demo,比如说用命令行输入一些指令,然后返回一些log,离实现一个完整的系统还差很多。因此本系列从第五篇文章开始将介绍一些官方文档中没有的案例,使用SDSoC进行一些完整系统的开发。
实现完整的系统,只依赖SDSoC工具是远远不够的,还涉及很多嵌入式Linux相关的知识,于是引出了SDSoC的好帮手——Petalinux。

  1. Petalinux系列
    1. Petalinux系列——1.安装Petalinux
    2. Petalinux系列——2.创建以及简单配置Petalinux工程
    3. Petalinux系列——3.使用Petalinux编译串口驱动CP210x
    4. Petalinux系列——4.编写字符设备驱动4路PWM控制器
    5. Petalinux系列——5.Linux内核添加USB设备驱动

第二个系列主要是介绍Petalinux的一些简单操作,并不涉及Petalinux工具是如何构建的,只是讲怎么用,都是一些小型工程。正好我正在做把VCU集成在PYNQ框架中的工作,就开了第三个系列MPSoC PYNQ框架集成

  1. MPSoC PYNQ框架集成VCU系列
    1. MPSoC PYNQ框架集成VCU——1.VCU在zcu104上运行
    2. MPSoC PYNQ框架集成VCU——2.初识
    3. MPSoC PYNQ框架集成VCU——3.分析gstreamer的recipes

第三个系列严格地说属于Petalinux系列,但是内容比较复杂因此单独开一个系列。这部分工程我也是在一步一步自己做,做一步更一步。

第四个系列是SDSoC的一个系统级设计案例,使用Ultra96作为大疆机甲大师比赛的主控,包括

  1. 基于Ultra96的DJI战车主控
    1. 基于Ultra96的DJI战车主控——1.OpenCV的Profiling
    2. 基于Ultra96的DJI战车主控——2.OpenCV to xfOpenCV的转写
    3. 基于Ultra96的DJI战车主控——3.主控与下位机通讯

希望我的博客对你能有所帮助!!!

猜你喜欢

转载自blog.csdn.net/lulugay/article/details/83868196