目录
一、安装Petalinux 工具
二、Vivado设计
1.第一代设计
这次设计是一个错误的设计,里面的dpu中断和AXI interconnect是我使用vivado自动连接直接连到原厂的设备上的,很多连接实际上是错误的,导致后来生成的BOOT文件出现了冲突错误
![](https://img-blog.csdnimg.cn/edb14c86d49f4f03b46f7fdd9838aa62.png)
图2-1
2.第二代设计
经过上次的设计错误,这次为dpu单独创建了一个中断、一个AXI interconnect、一个时钟和三个 Processor System Reset IP 块来生成同步复位信号。
![](https://img-blog.csdnimg.cn/c8b2db3f0df445fa99ff2406d04c20ad.png)
图2-2
![](https://img-blog.csdnimg.cn/27a14a30f8494a1a842b02c3491f86de.png)
图2-3
遇到的错误:
在后面打dpu驱动时出现了报错,原因是我在分配地址时选择的是unassigned,正确的分配地址方式应该是assigned。
![](https://img-blog.csdnimg.cn/fce198dc8f6643059dabf73bbaff1d9f.png)
图2-4 正确的分配方式
3.最终版设计
这次设计根据前辈的方法改进了vpss,因为vpss支持视频流的缩放,这样就可以节省视频进行缩放所需的时间。
![](https://img-blog.csdnimg.cn/22d097f20b364dedb97e69b9e6b6f80e.png)
图2-5 原来的vpss连接图
![](https://img-blog.csdnimg.cn/bb1d496fd1964f3c982a71073041d308.png)
图2-6 原来的vpss配置
![](https://img-blog.csdnimg.cn/cc4ae4d12e1a4143b936c9e13b098ba8.png)
图2-7 修改后的vpss连接
![](https://img-blog.csdnimg.cn/0a00719f11ee4a8d8372c33c3499c1f1.png)
图2-8 vpss修改的具体内容
出现的错误:
改变vpss分配地址之后生成比特流出现了错误,由于没有备份就重新复现了一个一模一样的工程,但是仍然出现了这些错误:
- 第一次我重新分配地址,初步讨论认为可能是一些地址发生变动导致的,我开了一个新的原厂工程但是通过与出错的工程进行对比发现里面的地址没有变化。我认为可能是一些其他的错误导致的,我就重新开了一个工程打算重新连接一遍。
- 第二次我把之前的工程重新复现,并且进行备份。在备份文件里面修改vpss之后生成比特流再次出现了之前的错误,这次我认为可能是备份文件里面缺少了一些文件导致的。
- 我又返回到了母本文件里面生成比特流,仍然有这个问题,这时候我们开始排除之前所推断的错误。最终发现是vivado自身的问题导致的,了解到是一个叫做:“202xbug”导致部分ip无法加载到工程里面导致的。
![](https://img-blog.csdnimg.cn/b85b92984dde4a4ea5d16135a43c5838.png)
图2-9
解决方法:
在vivado目录下执行一个特定的python脚本之后就可以解决这个bug:
![](https://img-blog.csdnimg.cn/e643698e04d24635919b2c63317735d9.png)
图2-10
三、总结
在整个Petalinux和Vivado工具的安装和使用过程中,我经历了一系列的设计错误,并逐一解决。首次设计中的问题主要涉及到自动连接的不准确性,特别是在与dpu中断和AXI interconnect相关的部分,导致生成的BOOT文件出现了冲突错误。这一经验让我意识到自动连接并不总是可靠,需要在设计中进行手动检查和调整,以确保连接的正确性。
在第二代设计中,我采用了更为谨慎的方法,为dpu单独创建了中断、AXI interconnect、时钟和Processor System Reset IP块,以生成同步复位信号。解决了在这一阶段遇到的地址分配错误,这也让我更加明白了在设计过程中正确分配地址的重要性。
最终版设计中,我通过借鉴前辈的方法改进了vpss,增加了对视频流缩放的支持,以提高系统性能。然而,在这一阶段,我遇到了一系列比特流生成错误。多次尝试和备份后,最终确定是Vivado自身的问题,尤其是由一个名为“202xbug”的问题导致的。为了解决这个问题,我找到了在Vivado目录下执行特定的Python脚本的方法。在技术挑战面前,除了分析问题根本原因外,还需要善于灵活运用工具和资源,找到切实可行的解决方案。
通过不断优化和解决问题,我成功完成了最终版设计。这一过程中积累的经验和技能对未来的项目和挑战将产生积极的影响。通过详细分享设计过程中的经验和问题解决方法,我希望可以帮助其他人在类似的项目中更加顺利地进行设计和开发。感谢这个过程中学到的教训,这将成为我的成长和发展的有益资产。
在下一篇博客单中,我会详细介绍如何设置设备树等知识。