ZYNQ-Linux开发之(五)Vivado工程搭建,设备树修改方法,复旦微电子fmql开发、vivado联合procise、IAR的linux系统开发-保姆级教程-非常详细
FMQL开发流程
整体开发流程如下:
具体开发流程:
- Vivado工程搭建
- 首先根据自己项目的功能需求,结合原理图,明确vivado工程中所需搭建的PS和PL部分的资源。
搭建使用的是vivado2018.2版本的vivado
- 创建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
- 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文件。
- 虚拟机中编译生成.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系统开发-保姆级教程-非常详细相关推荐
- 从购买服务器到网站搭建成功保姆级教程~超详细
??从购买服务器到网站搭建成功保姆级教程~真的超详细,各位看官细品 ??前言 ??预备知识 ??什么是云服务器? ??什么是域名? ??什么是SSL证书? ??服务器选配 ??阿里云[官网链接](ht ...
- 头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统)——保姆级教程
头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统) ***写在前面*** 知识补充 相关知识 实验环境准备 安装DNS服务器并开启服务 一.标题配置域名和IP的正解与反解zon ...
- 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建
保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...
- ftp linux包,图文详解Ubuntu搭建Ftp服务器的方法(包成功)
一.今天下午由于课程的要求不得已做了Ubuntu搭建Ftp服务器的实验,但是实验指导书还是N年前的技术,网上搜了一大把,都是模模糊糊的! 在百般困难中终于试验成功,特把经验分给大家 希望大家少走弯路! ...
- 个人网站搭建保姆级教程(2)- 前端工程umi脚手架搭建
前言 最近搞了个服务器,想着自己做个网站的脚手架,因为自己是纯前端新手,而且半路出家,中途踩了好多坑,准备写5篇给各位大佬们分享一下,如何从0搭建个人网站 服务器购买与环境搭建 前端工程umi脚手架搭 ...
- 使用错误的设备树导致linux,Petalinux工程中设备树的介绍
设备树是 Petalinux kernel 的关键组件,接下来以 2020.1 版本为例,为大家介绍一下在Xilinx Petalinux 工程中的设备树是如何产生,配置以及修改的. Petalinu ...
- 【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站
写之前先回答几个问题: 1,网上类似的教程非常多,为什么写这篇教程? 答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程:然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时 ...
- 第五十五讲 插件设备树
第五十五讲 插件设备树 文章目录 第五十五讲 插件设备树 一.概述 1.概述 2.使用前提 3.编译工具 二.插件设备树实验 1.环境准备 2.实验 3.验证实验 附录 驱动代码 led.c led. ...
- 搭建个人网站 保姆级教程(一)云服务器购买以及环境部署
搭建个人网站 保姆级教程之云服务器购买以及环境部署 1. 云服务器 1.1 云服务器购买 1.2 云服务器远程连接 1.2.1 Mac系统 Royal TSX 下载安装 1.2.2 详细配置 1.2. ...
最新文章
- 常用的第三方模块 Pillow url
- 列名必须是一个字符串或者数组_我爱Julia之入门-078(字符串08)
- 《大型网站技术架构》读书笔记之八:固若金汤之网站的安全性架构
- 剑指Offer - 面试题13. 机器人的运动范围(BFS/DFS)
- 猎豹浏览器网页声音怎么关闭
- 二分查找详解——弄懂二分思想的重要性!
- 开启事物_用一支洁面慕斯,开启精致生活
- 求生之路显示服务器指令,求生之路2控制台指令..doc
- vue实现消息badge 标记_Vue $mount实战之实现消息弹窗组件
- 计算机编程思想 —— 缓存
- torch.nn.embeding
- unity 多选枚举
- jquery第三期:js与jquery对象转换
- 1114 Family Property (25 分)
- 证券交易1-交易系统简介
- Python 集合符号
- 如何以管理员身份运行powerShell
- MATLAB_数值计算_线性方程组
- 高德地图教程_poi搜索以及显示
- 科创人·知乎CTO李大海:技术服务内容、商业化依赖内容,曾被「呵呵」难到挠头