有工程师反馈,使用A53交叉编译器直接编译最简单的C文件,编译器也报告。"stdio.h: No such file or directory"
以前为ARM64编译软件包,直接在Makefile里指定交叉编译器、sysroot的路径,就能成功编译。
在使用Linux外部源代码编译PetaLinux工程时,遇到错误“.kernel-meta/bsp_definition: Directory nonexistent”。执行“petalinux-build -x mrproper -f”清理PetaLinux工程,并且在Linux外部源代码目录执行“make mrproper”清理Linux外部源代码,再次编译PetaLinux工程,也遇到同样错误。
在Makefile里,定义CC为"aarch64-linux-gnu-g++ --sysroot=$(MPSOC_ROOTFS)",编译test.cpp,没有错误。如果使用environment-setup-aarch64-xilinx-linux里的设置,在Makefile里不定义CC,编译test.cpp出现下列错误。
KV260 PetaLinux BSP 的environment-setup-cortexa72-cortexa53-xilinx-linux会导入aarch64-xilinx-linux系列工具,并设置CROSS_COMPILE为aarch64-xilinx-linux-。 因此使用opensource flow编译U-Boot时,U-Boot编译会默认使用aarch64-xilinx-linux-gcc。但是又找不到aarch64-xilinx-linux-gcc。 在path里添加vitis的aarch64-xilinx-linux-gcc的目录,或者petalinux工程里的aarch64-xilinx-linux-gcc的目录,能编译,但是会出现错误“aarch64-xilinx-linux-ld.bfd.real: cannot find -lgcc”。使用变量LIBRARY_PATH,添加的libgcc.a目录,也失败。 重新设置 CROSS_COMPILE为aarch64-linux-gnu- 能正常以Opensource flow编译U-Boot。
PetaLinux是Xilinx基于Yocto推出的Linux开发工具。Yocto是业界主流的Linux发行版的构建工具,它不仅可以从源代码编译Linux 内核,还可以编译Linux发行版必须的数以千计的的应用程序,功能非常强大。Yocto的出现,大幅度降低了构建嵌入式Linux发行版的难度。 万物总有两面性。虽然PetaLinux/Yocto可以一键编译出一个自定义的嵌入式Linux发行版,但是编译整个文件系统很耗费时间。完整的一次PetaLinux/Yocto编译,可能需要从网络下载上GB的文件,可能需要几个小时。即使只更改一行代码,也需要数分钟时间。PetaLinux/Yocto的编译流程,也和很多开发人员原来的基于make的工作方法不一样,它会分析文件系统里所有应用程序的配置文件,执行下载、配置、编译、打包等过程。 如果在调试单板时,仅仅改动一行代码,也需要执行这些操作,显得冗余,也影响开发效率。 为了适应开发人员的工作习惯,也为了提高速度,可以整合PetaLinux工程编译和OpenSource U-Boot/Linux编译。
在交叉编译python3之前需要在ubuntu主机上安装对应的x86版本,因为交叉编译时需要用到python解释器。ubuntu16.04下安装python3.10.5
更换PetaLinux工程的HDF/XSA文件后,PetaLinux工程编译出现FSBL do_configureh错误。使用命令“petalinux-build -x mrproper -f ”,彻底清除工程,再编译工程,不再有问题。
不同人代码的排版习惯不一样。遇到自己不喜欢的格式,看起来比较麻烦。可以使用astyle对代码进行排版。 我喜欢以"otbs"格式的排版。命令如下:
很多工具,为了安全和方便,自带了很多库文件。安装软件多之后,系统中有很多重复文件。可以使用rdfind创建硬链接,删除重复文件,节省硬盘空间。
最近陆陆续续有工程师拿到了VCK190单板。 VCK190集成了Xilinx的7nm AIE,有很强的处理能力。 本文介绍怎么运行Xilinx AIE的例程,熟悉AIE开发流程。
10G AXI Ethernet Checksum Offload Example Design
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0,VCK190
PetaLinux基于Yocto,编译Linux内核、文件系统等,非常庞大,需要的软件很多。如果从网络下载,可能消耗比较长的时间。 本文基于Xilinx PetaLinux 2020.2.
PetaLinux编译Microblaze的U-Boot时,遇到下列错误 ,链接时提示找不到相关函数。
PetaLinux新特性,可以指定Linux configuration。Linux configuration文件要放在Linux代码的目录arch/arm64/configs里。使用petalinux-config配置时,指定文件名就可以,不用指定目录。 所以最好一起用Linux configuration和Linux external source。
AMD ZCU106 U-Boot 2023.1 Open Source Flow 编译的缺少“gnutls/gnutls.h”错误
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0
最近十几年,整个芯片产业都感觉到了摩尔定律的放缓,甚至失效。根据A Domain-Specific Architecture for Deep Neural Networks,以后CPU每年的性能只能进步3%左右。要改进系统性能,只能定制架构(Domain-Specific Architecture)和芯片。
Xilinx的开发工具SDK/Vitis都可以自动根据Vivado设计,创建软件工程,自动配置各个外部设备的驱动程序。为了兼容旧版本工程,SDK/Vitis里提供了多个IP版本的驱动程序。如果在SDK/Vitis的软件工程里查看代码,驱动程序都是正确的。
Vivado 2024.1, Vitis Classic 2024.1, Avnet UltraZed Board. AMD R2544 Board, Ubuntu 20.04
通过使用本地文件、Open Source U-Boot/Linux编译,既能适应部分开发人员的工作习惯,也能提高U-Boot/Linux的编译速度。
对于FPGA设计,传统设计都是一个FPGA一个设计,产生一个Bit文件。这就是完整bit文件(full bit)。 有些文章中也称之为全工程比特文件。
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: PetaLinux 2021.2
大部分项目设计需要一个稳定的Linux版本,但是又需要修复内核漏洞。这种情况下,跟随LTS版本升级,是最好的办法。 很多项目也需要改善Linux的实时特性。可以使用Linux Realtime patch实现。
嵌入式Linux系统中,Linux直接管理所有CPU。默认情况下,系统的目标是提高吞吐率,而不是实时性。为了保证实时性,可以根据应用场景,对CPU实行更加精确的控制。常见的办法有,进程CPU隔离、CPU亲和、中断CPU亲和、进程优先级。
作者: 付汉杰 hankf@xilinx.com hankf@amd.com 测试环境: Vivado/PetaLinux 2021.2, Linux 5.10.0 VCK190
本文也发布到了 https://www.cnblogs.com/hankfu/p/12719917.html 和 https://www.jianshu.com/p/c6adce550294。
zynq u-boot github地址:https://github.com/xilinx
VCK190单板上,有一个MPSoC芯片ZU4EG,作为单板的管理芯片(System Controller)。
客户收到新买的ZCU106,运行Xilinx的linux正常。使用的Xilinx SDK 2018.3调试自己创建的helloworld时却出现异常,程序跑飞。
将新生成的libQt5NetWork、libQt5WebSocket相关的库文件替换;然后再把openssl相关的库libssl、libcrypto放在目标板下
部分硬件设计中需要CPU完成对电路寄存器的配置,为了完成Zedboard对FPGA上部分寄存器的配置功能,可以在PS单元(处理器系统)上运行裸机程序(无操作系统支持)完成和PL单元(FPGA部分)的数据交互功能,此时PS单元更像单片机开发;另一种方法是PS单元运行Linux操作系统,通过驱动程序和应用程序完成对硬件寄存器的读写操作,并且Linux有着完整的网络协议栈支持,后续可拓展性更强,可以更好的发挥ZYNQ这种异构架构芯片的性能。主要分为两部分,分别阐述Zedboard中FPGA和处理器互联总线与硬件设计和Zedboard处理器系统上嵌入式Linux的移植与通过驱动和应用程序简单配置FPGA寄存器的实现。上次介绍了没有操作系统下的驱动和应用程序开发,本文介绍带操作系统的驱动和应用程序开发。
在IC领域中常用的脚本有Tcl、Perl、Shell、Python等,在这些脚本里面,Tcl(“工具命令语言”( 即Tcl的全称Tool Command Language))由于其语法简单,易上手等特点,在FPGA开发中越来越受到重视。
MPSoC是带ARM处理器和FPGA(PL)的SoC,包含4核A53及其常用外部模块(PS)。A53(PS)使用Arm GIC-400,属于GICv2架构。如果想了解GIC-400的具体细节,请参考文档APU GIC: CoreLink GIC-400 Generic Interrupt Controller, DDI 0471B, r0p1。
之前使用FFT运算、C程序编译,网络通信作为负载,测试了AMD Embedded R2000 在Linux下的实时性能。
14.QT环境搭建 https://www.cnblogs.com/bombe1013/p/3294303.html https://blog.csdn.net/f840764473/article/details/80896691 https://blog.csdn.net/LLiu_M__/article/details/82968593 15. 显示vdma +drm https://wiki.analog.com/resources/tools-software/linux-drivers/drm/hdl-axi-hdmi https://blog.csdn.net/linuxarmsummary/article/details/83624066 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841767/Xilinx+V4L2+driver https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842520/Xilinx+DRM+KMS+driver https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842337/DMA+Drivers+-+Soft+IPs https://www.xilinx.com/support/answers/52941.html
客户为AMD Xilinx SoC创建了PetaLinux工程。需要定制PetaLinux中的FSBL。
今天开始会陆续介绍一些优秀的开源项目,项目基本都是和FPGA或HDL相关的。对于一些找工作或者急需项目经验的人来说,这些项目都有一定的参考价值。
高层次综合(High-level Synthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。
Vivado 是 Xilinx 公司于 2012 推出的新一代集成设计环境,虽然目前其流行度并不高,但可以说 Vivado 代表了未来 Xilinx FPGA 开发环境的变化趋势。作为一个 Xilinx FPGA 的开发使用者,学习掌握 Vivado 是趋势,也是必然,Vivado 是为了提高设计者的效率,它能显著增加 Xilinx 的 28nm 工艺的可编程逻辑器件的设计、综合与实现效率。
今天给大侠带来FPGA Xilinx Zynq 系列第三十七篇,开启第二十四章,带来Linux 启动相关内容,本篇为本系列最后一篇,本篇内容目录简介如下:
Xilinx为MPSoC支持4种libMali的backend: X11, Wayland/GBM, Fbdev, Headless-EGL.
PetalLinux是Xilinx公司推出的嵌入式Linux开发工具,专门针对Xilinx公司的FPGA SoC芯片和开发板,用户可以在PetaLinux工具的帮助下进行完整的开发流程,包括设计,验证,仿真,下载等。 本文将详细介绍PetaLinux的安装流程,虽然实际上基本就是把Xilinx的UG1144翻译一遍。但对于初学者而言,全是英文的Guidance还是很难受的,可能某一步要输入某个命令,但是却并不知道为什么要这么做,这并不好,也容易打击信心,尤其是UG里还有一点小错误。
建议重点查看 DS988 Kria KR260 Robotics Starter Kit Data Sheet 和 UG1092 - Kria KR260 Robotics Starter Kit User Guide.
今天给大侠带来FPGA Xilinx Zynq 系列第二十三篇,开启十一章,讲述Zynq 片上系统的开发等相关内容,本篇内容目录简介如下:
今天给大侠带来 FPGA Xilinx Zynq 系列 第三部分 Part C 操作系统 & 系统集成,第三部分是关于 Zynq SoC 开发的操作系统的,回顾和讨论了应用程序、动机、 交易、操作系统和产品特性。这里也进一步地深入探讨了在 Zynq 上部署 Linux 的问题,如何把 Linux 与基于 PL 的部分组合起来来形成一个嵌入式系统。
非官方板卡也需要在官方提供的历程上进行修改,这样节省时间,而且AD936X的IP也需要参考官方的IP。
文档Using Cryptography in Zynq UltraScale MPSoC提供了在Linux用户态使用MPSoC AES 加速器的例子。 如果要使用Device key或者PUF key,需要使用Xilinx Linux 2020.1。Xilinx Linux 2020.1增加了选择密钥类型的功能。选择密钥类型的代码如下:
使用“wic ls”命令,ls”查看wic文件里的分区和文件。 使用“wic cp”命令,在Linux Host和wic文件的分区之间,复制文件。 使用“wic rm”删除wic文件里的文件。
领取专属 10元无门槛券
手把手带您无忧上云