FMQL开发流程

整体开发流程如下:

具体开发流程:

  • Vivado工程搭建
  1. 首先根据自己项目的功能需求,结合原理图,明确vivado工程中所需搭建的PS和PL部分的资源。

搭建使用的是vivado2018.2版本的vivado

  1. 创建vivado工程:

双击vivado软件,打开后点击Create Progect选项

点击next,输入工程名字,选择保存路径,勾选Create Project Subdirector,路径不能有中文,工程名字不能有“-”中横线。

继续点击next,选择第一个选项RTL Project,勾选Do not specify sources at this time,这个选项是添加编程文件,咱们开发zynq一般不需要自己写代码,所以勾上这个选项。

点击next,弹出SOC型号选择的窗口,芯片型号可以从原理图中获得,如果原理图中的芯片型号不全,可去找硬件同时询问具体型号,在search中搜索自己所需的芯片型号,选中该型号,点击next

之后会弹出一个参数显示界面,确认SOC型号正确后点击finish,完成工程的创建。

工程创建完成后,会进入正式的编辑工程的界面,如下所示

点击左侧菜单栏中的Create Block Design选项,弹出窗口,填写block design工程的名字,这里使用默认名字,可根据自己需求修改

点击OK,然后点击左侧菜单的Create Block Design选项,如下所示,可以关掉

IP Catalog和Project Summary两个窗口,一般用不到。

点击右侧页面中或右侧页面上方菜单栏中的“+”,可以添加IP核,或者右击右侧空白部分,在弹出的菜单中选择Add IP选项,首先必须添加的是zynq的PS IP核,点击加号后搜索zynq出来的就是PS的IP核,选中双击即可添加。

可以通过双击PS IP核打开PS的配置界面,配置PS的资源等,最重要需要配置的是DDR的选型。同理PL部分的IP和也可以双击打开配置界面进行一些参数的配置。

其他具体搭建block design的细节这里不再赘述,工程连接如下:

https://download.csdn.net/download/qq_38584212/87924602

搭建完工程后首先一定要保存,然后点击右侧上方菜单中的对号按钮(图中红色标出),检查搭建的block design是否正确,弹出successful代表block design无连线错误。

右击Source菜单中的带黄色小三角的design_1,弹出菜单中选择Generate Output Products

弹出窗口中选择Global选项,点击Generate,输出产品。

之后同样右击这个带黄色小三角的design_1,弹出菜单中选择Create HDL Wrapper,生成顶层文件,顶层文件用于后续添加约束文件使用,生成对应需要约束的管脚。

双击Source菜单中前面带蓝色点的design1_wrapper,可以在右侧窗口中看到已经生成的对应需要约束的一些管脚。

接下来需要给这些管脚添加对应的约束,右击Source菜单中的constrs_1,弹出菜单中选择Edit Constraints Sets

在新弹出的窗口中点击Create File,填写约束文件.xdc的名字,点击OK,在constrs_1目录下会新增加一个后缀名为.xdc的约束文件。

然后点击左侧菜单中的Open Elaborated Design选项,会跳出添加约束的界面(根据block design大小的不同,打开的时间也不一样,有的工程可能打开需要十几二十分钟)打开后如下图所示,需要选择对应的约束管脚和电压,直到表中没有红色字样提示,说明所有需要添加的约束的管脚都分配了对应的约束。

也可以选择在之前新建的xdc文件中通过手动添加代码的方式添加约束(这个方法不建议,容易出错)

自己工程中所需的PL端的约束管脚,要去原理图中查找。

例如网口的约束,可以通过从RJ45插座的位号开始查找,再找到对应的PYH芯片,PHY芯片连接的就是PL端的约束。

将约束添加完毕后,保存工程,上方会提示Reload的字样,点击Reload,对应的.xdc文件中就自动添加了约束的代码。

全部做完后,点击左侧菜单中的Generate Bitstream选项

弹出界面中,选第一个选项,后面下拉可以选择编译工程所用的CPU的数量,数量越多,工程编译的越快,但是占用电脑资源会越多,点击OK,等待完成综合、实现、生成bit文件。

成功生成bit文件后,会弹出如下窗口,点击Cancel

导出hdf文件,点击File-Export-Export HardWare

弹出窗口中,勾选上include bitstream,点击ok,对应vivado工程目录下会多出一个.sdk的文件夹,里面存放的是.hdf文件。

接下来就是去vivado工程的目录下,找到FMQL移植需要的.bit,.hdf,.bd,.xci四个文件,四个文件所在的目录如下:

.bit文件

路径:\your_project\project_1.runs\impl_2\*.bit

.hdf文件

路径:\your_project\project_1.sdk\*.hdf

.bd文件

路径:\your_project\project_1.srcs\sources_1\bd\design_1\*.bd

.xci文件

路径:\your_project\project_1.srcs\sources_1\bd\design_1\ip\

design_1_processing_system7_0_1\*.xci

  1. FMQL移植部分

打开Procise软件,新建Procise工程,点击New Project,填写工程名字,点击Next

选择芯片型号,可直接看芯片上印刷的型号,或看原理图以及询问硬件同事,芯片型号选错误可能会导致最终系统无法启动、卡死。

之后一直点击Next、点击fimish,完成工程新建

点击上方菜单栏中的Tools-Integrated Tools Options

弹出窗口中,IAR的选项中添加IAR的安装路径,这样就可以通过Procise直接自动链接打开IAR软件。

点击最上方菜单栏中的PSOC,下拉菜单中选择第一项From Vivado

弹出窗口中点击Browse,第一个选项选择之前从vivado工程中取出来的四个文件中的.bd文件,第二个选项选择.xci文件,然后点击OK。

点击OK后会弹出一个对话框,提示引出DDR和FIXED_IO,点击确定

等待几秒钟,弹出新窗口,选中FSBL和DeviceTree两个选项,点击OK

等待几秒钟Procise会自动连接打开IAR软件,点击IAR软件上方菜单中的make按钮,图中红色圈出,下面编译窗口提示errors:0,说明编译成功。

再次提醒:IAR软件不能远程使用,否则会编译失败

编译成功后,会在Procise的工程目录中生成fsbl以及设备树源码文件夹

Fsbl路径:\Your Project\SDK\design_1_platform\FSBL\Debug\Exe\fsbl.out

DeviceTree路径:\ Your Project \SDK\design_1_platform\DeviceTree

取出fsbl.out文件和DeviceTree文件夹

fsbl.out、bit文件、uboot.elf三个文件用于生成BOOT.bin

DeviceTree文件夹和.hdf文件用来编译生成.dtb设备树文件

再次切换回Procise软件,选择菜单栏中的PSOC-Create Boot Image选项

弹出的窗口中选择Basic,点击第一行的Browse,选择路径,用于存放生成的BOOT.bin和.bif文件。

Lock in下拉选择BOOT.bin文件存放路径,File name填写.bif文件名字,这个文件咱们用不上,大家随意填写就好,然后点击save。

点击Add按钮,弹出窗口点击Browse按钮,依次选择添加fsbl、bit文件、u-boot.elf文件,添加顺序不能错,否则Linux无法启动。

都添加完毕后最后点击Create Image,生成BOOT.bin文件。

  1. 虚拟机中编译生成.dtb设备树文件

打开编译FMQL设备树使用的虚拟机

将之前IAR编译生成的在Procise工程目录下的DeviceTree文件夹拷贝到虚拟机的任意目录下(这个目录自己定义,后续在编译设备树指令中将DeviceTree所在路径修改为自己定义的路径即可)

我的放在了自己定义的一个目录下了。

然后将.hdf文件拷贝到虚拟机的如下目录:

退回到编译环境目录FMQL-Linux-SDK_20201022下:

右击鼠标,选择在终端中打开

执行指令:source env.sh 重新打开的控制台需要重新执行一遍该指令

执行指令:./build.sh --hw /home/fmsh/tangbojian/DeviceTree/ --hdf device-tree/xlnx-dts/design_1_wrapper.hdf dtb

编译设备树

其中/home/fmsh/tangbojian/DeviceTree/路径配置为自己存放DeviceTree文件夹的路径,design_1_wrapper.hdf改为自己viaodo工程中生成的.hdf文件的名字即可。

如果搭建的vivado工程没有PL部分,编译设备树时,不需要引入.hdf文件,执行的编译设备树指令变为:

./build.sh --hw /home/{user_name}/Downloads/DeviceTree/ --nofpga dtb

设备树编译成功后会在Image目录下生成system-top.dtb文件,使用时需要改名为devicetree.dtb使用。

修改设备树节点:

fmql与zynq修改设备树节点的方法不同,fmql添加的节点都放在一个名字叫system-user.dtsi的文件内,需要通过父节点的引用来定义新的子节点,对应目录如下所示:

不要在其余四个文件中修改设备树,即便修改了,编译后也不会生效,其余四个文件是通过DeviceTree文件夹以及.hdf文件编译后生成的,里面有vivado工程搭建的资源的设备树节点的描述,大家使用时,可以先不修改system-user.dtsi文件编译一次,这样其余四个文件中的设备树节点就根据你的DeviceTree文件夹以及.hdf文件进行了更新,然后再通过其余四个文件中的设备树节点的引用名字,在system-user.dtsi文件中通过引用添加新的设备树子节点信息。

下面是添加了EMMC分区节点和网口中PYH节点的system-user.dtsi文件的例子:

新添加的设备树节点信息,重新编译后,在上述四个文件中是看不到的,只能反编译刚才编译出来的system-top.dtb文件才能看到新添加的节点是否生效。

反编译指令:dtc -I dtb -O dts system-top.dtb > devicetree.dts

编译出的devicetree.dts文件可以直接打开查看。

PHY节点的地址信息根据原理图和PHY芯片的手册确定。

再加上Rootfs就可以起系统了。

希望大家点赞、收藏、关注哦!!!ヾ(o◕∀◕)ノ

ZYNQ-Linux开发之(五)Vivado工程搭建,设备树修改方法,复旦微电子fmql开发、vivado联合procise、IAR的linux系统开发-保姆级教程-非常详细相关推荐

  1. 从购买服务器到网站搭建成功保姆级教程~超详细

    ??从购买服务器到网站搭建成功保姆级教程~真的超详细,各位看官细品 ??前言 ??预备知识 ??什么是云服务器? ??什么是域名? ??什么是SSL证书? ??服务器选配 ??阿里云[官网链接](ht ...

  2. 头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统)——保姆级教程

    头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统) ***写在前面*** 知识补充 相关知识 实验环境准备 安装DNS服务器并开启服务 一.标题配置域名和IP的正解与反解zon ...

  3. 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建

    保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...

  4. ftp linux包,图文详解Ubuntu搭建Ftp服务器的方法(包成功)

    一.今天下午由于课程的要求不得已做了Ubuntu搭建Ftp服务器的实验,但是实验指导书还是N年前的技术,网上搜了一大把,都是模模糊糊的! 在百般困难中终于试验成功,特把经验分给大家 希望大家少走弯路! ...

  5. 个人网站搭建保姆级教程(2)- 前端工程umi脚手架搭建

    前言 最近搞了个服务器,想着自己做个网站的脚手架,因为自己是纯前端新手,而且半路出家,中途踩了好多坑,准备写5篇给各位大佬们分享一下,如何从0搭建个人网站 服务器购买与环境搭建 前端工程umi脚手架搭 ...

  6. 使用错误的设备树导致linux,Petalinux工程中设备树的介绍

    设备树是 Petalinux kernel 的关键组件,接下来以 2020.1 版本为例,为大家介绍一下在Xilinx Petalinux 工程中的设备树是如何产生,配置以及修改的. Petalinu ...

  7. 【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站

    写之前先回答几个问题: 1,网上类似的教程非常多,为什么写这篇教程? 答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程:然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时 ...

  8. 第五十五讲 插件设备树

    第五十五讲 插件设备树 文章目录 第五十五讲 插件设备树 一.概述 1.概述 2.使用前提 3.编译工具 二.插件设备树实验 1.环境准备 2.实验 3.验证实验 附录 驱动代码 led.c led. ...

  9. 搭建个人网站 保姆级教程(一)云服务器购买以及环境部署

    搭建个人网站 保姆级教程之云服务器购买以及环境部署 1. 云服务器 1.1 云服务器购买 1.2 云服务器远程连接 1.2.1 Mac系统 Royal TSX 下载安装 1.2.2 详细配置 1.2. ...

最新文章

  1. 常用的第三方模块 Pillow url
  2. 列名必须是一个字符串或者数组_我爱Julia之入门-078(字符串08)
  3. 《大型网站技术架构》读书笔记之八:固若金汤之网站的安全性架构
  4. 剑指Offer - 面试题13. 机器人的运动范围(BFS/DFS)
  5. 猎豹浏览器网页声音怎么关闭
  6. 二分查找详解——弄懂二分思想的重要性!
  7. 开启事物_用一支洁面慕斯,开启精致生活
  8. 求生之路显示服务器指令,求生之路2控制台指令..doc
  9. vue实现消息badge 标记_Vue $mount实战之实现消息弹窗组件
  10. 计算机编程思想 —— 缓存
  11. torch.nn.embeding
  12. unity 多选枚举
  13. jquery第三期:js与jquery对象转换
  14. 1114 Family Property (25 分)
  15. 证券交易1-交易系统简介
  16. Python 集合符号
  17. 如何以管理员身份运行powerShell
  18. MATLAB_数值计算_线性方程组
  19. 高德地图教程_poi搜索以及显示
  20. 科创人·知乎CTO李大海:技术服务内容、商业化依赖内容,曾被「呵呵」难到挠头

热门文章

  1. SQL 将一张表的数据复制到另一张表
  2. 高效程序员必备的六大命令行工具
  3. 使用matplotlib绘制定制化饼图(图例比例标签支持中文等)
  4. katalon Listeners
  5. 印象笔记之让我发狂的体验(一)
  6. 在 Linux 系统中查找 MAC 地址的方法
  7. 这项研究对慢波睡眠最能解释深度睡眠的理论提出了挑战
  8. WebSocket+微信小程序一对一聊天
  9. 欧科云链研究院:当硅谷银行闪崩,稳定币也难以“稳定”
  10. 计算机专业好还是铁道运输管理好,2018年铁路最好的5个专业是什么