读书笔记 XILINX ug1137-Zynq UltraScale+ MPSoC Software Developer Guide 软件开发者指南 Chapter3Chapter4

news/2025/12/4 11:56:41/文章来源:https://www.cnblogs.com/Sepiaaa/p/19303742

前言

上一章我们讲了ug1137的第一章和第二章,也算是给整个读书笔记开了个头,这两个章节的内容其实并不太多,主要还是对整个文档的概括性描述,下面我们就开始挨个章节进行阅读和笔记了。

Chapter 3: Development Tools开发工具

这一章整体在讲MPSOC开发过程中使用到的各种开发工具,主要有下面几种。

  • Hardware IDE

  • Software IDEs

  • Compiler toolchain 编译工具链

  • Debug and trace tools 跟踪和调试工具

  • Embedded OS and software libraries 嵌入式系统软件

  • Simulators (for example: QEMU)

  • Models and virtual prototyping tools (for example: emulation board platforms)
    下面挨个工具的说一下。

3.1 Vivado Design Suite

这节介绍了以下Vivado工具,这个工具大家应该都不陌生,在编写XILINX的FPGA的硬件代码时应该都用过,这里稍微说一点:

Vivado Design Suite中的所有工具和工具选项均以原生工具命令语言(Tcl)格式编写,该格式允许在Vivado IDE或Vivado Design Suite Tcl shell中使用。分析和约束分配贯穿整个设计过程。例如,您可以在合成、放置或布线后运行计时或功率估计。由于数据库可以通过Tcl访问,因此对约束、设计配置或工具设置的更改会实时发生,通常不会强制重新实现。

也就是说vivado的所有操作都是基于tcl命令的,有时候我们在某个平台上上编写的工程可能无法跨平台或者跨版本运行,但是TCL命令差不多是共通的,也就是可以使用TCL命令来完整的复现一个工程。

3.2 Vitis Unified Software Platform

这一节介绍了VITIS工具的各种特性和功能,vitis在MPSOC进行裸机开发时会用到,这个工具的特性和功能都比较多,这里几乎都是列表性质的介绍,也只是让你看看名字而已,这里就不多介绍了,有想要更多了解该工具的可以参看ug1400 Vitis Unified Software Platform Documentation: Embedded Software Development。

3.3 Arm GNU tools

GNU工具链是一套为ARM架构芯片提供的开发工具,主要作用是代码的编译,调试,链接等等,下面的表格就是AMD使用的Arm GNU tools:

image

3.4 Device Tree Generator设备树生成器

设备树应该是Linux嵌入式开发的概念,我也不太熟,这里截取了一部分网络上的描述:

Linux 设备树是一种用于描述硬件平台的硬件资源信息的数据结构和语言。它从 Linux 内核版本 2.6 开始引入,起源于 OpenFirmware。设备树的主要特点是实现驱动代码与设备硬件信息的分离,通过 bootloader(如 U-Boot)和 Linux 传递到内核,使内核能够从设备树中获取对应的硬件信息。这样,对于同一 SOC 的不同主板,只需更换设备树文件即可实现不同主板的无差异支持,而无需更换内核文件,从而实现了内核和不同板级硬件数据的拆分。

3.5 PetaLinux Tools

这一节没有什么内容,主要讲了什么是PetaLinux以及其支持的工具,这里引用官方的描述:

PetaLinux 工具提供在 Xilinx 处理系统上定制、构建和调配嵌入式 Linux 解决方案所需的所有组件。该解决方案旨在提升设计生产力,可与 Xilinx 硬件设计工具配合使用,以简化针对 Versal、 Zynq UltraScale MPSoC、 Zynq 7000 SoC 和 MicroBlaze 的 Linux 系统开发

3.6 Linux Software Development using Yocto

这一节讲的似乎是使用Yocto进行Linux软件开发,我完全没听说过Yocto,所以还去搜索了一下是什么,大致是说Yocto是一类用于嵌入式产品开发定制化Linux系统的工具,由于我暂时想不到这个东西的用途,所以不多介绍了,感兴趣的可以到Yocto Project官网查看或者查看ug1144 PetaLinux Tools Documentation: Reference Guide.

本章小结

能发现这一章节基本没有什么内容,主要就是在讲MPSOC开发中可能会用到的各种工具,没有什么实质内容,我们直接开始讲下一章。

Chapter 4: Software Stack软件栈

这章主要介绍了两种用于MPSOC系统的软件栈,裸机软件栈和Linux软件栈,所谓软件栈我引用一段话来解释:

一个软件栈就是共同工作来保证软件的正常运行的独立组件的集合。这些相关组件,可能包含操作系统、架构层、协议、运行时环境、数据库系统、功能调用,以一个在另一个上面的架构组织在一起,像栈一样。一般来说,在该结构的底层组件是直接与硬件进行交换的,高层结构是为终端用户执行任务或者提供服务的。

4.1 Bare Metal Software Stack裸机软件栈

AMD为裸机系统提供的软件栈实际上就是我们在VITIS中使用的板级支持包(BSP),实际上也就是一堆编写好的C代码,其中有着大量能够直接调用的API,这一软件栈是像这样组织的:

image
并同时提到裸机软件栈的关键部件如下:

  • 外围设备的软件驱动程序,包括使用PS中的Arm® Cortex®A53、Arm® Cortex®-R5 F处理器以及PL中的AMD MicroBlazeTM处理器所需的核心例程。
  • 用于PS外围设备和可选PL外围设备的裸金属驱动器。
  • 标准C库:liBC和libm基于开源Newlib库,移植到Arm Cortex-A53、Arm Cortex-R5 F和MicroBlaze处理器。
  • 提供网络、文件系统和加密支持的其他中间件库。
  • 应用程序示例,包括第一阶段引导加载程序(FSBL)和测试应用程序。
    这里还额外提到了C标准库(libc)和C标准数学库(libm)以及库所对应的各种头文件及其作用,篇幅有限就不贴表格了,感兴趣可以查看第34和35页

4.2 Linux Software Stack Linux软件栈

Linux软件栈内容非常的多且复杂,由于我不是很懂,这一块我会大量使用原始翻译。这部分首先介绍了Linux软件栈的架构及组成:

Linux操作系统支持Zynq UltraScale+ MPSoC。除了Arm GPU之外,AMD为PS中的所有外围设备以及PL中的关键外围设备提供开源驱动程序。下图说明了APU中的完整软件堆栈,包括Linux和可选的虚拟机管理程序。
image
Armv8异常模型定义了异常级别EL0-EL3,其中:

  • EL0具有最低的软件执行特权。EL0处的执行称为无特权执行。
  • 异常级别从1增加到3,表明软件执行特权增加。
  • EL1在使用TEE架构时在非安全世界中运行非安全操作系统或在安全世界中运行安全操作系统。
  • EL2提供对处理器虚拟化的支持。您可以选择在软件堆栈中包括开源或商业虚拟机管理程序。
  • EL3提供对安全监控软件的支持。Cortex-A53 MPCore处理器实现所有异常级别(EL0-EL3),并支持每个异常级别的两种执行状态(AArchh64和AArchh32)。

4.2.1 Multimedia Stack Overview 多媒体软件栈

这一小节描述了多媒体软件栈,我觉得大致是描述多媒体软件栈所依赖的图像加速处理需要在硬件底层进行实现,实现的方式就是使用GPU加速器并使用ACE总线互联APU以实现缓存一致性并提供加速服务,具体翻译如下:

GPU和高性能显示端口能够加速图形应用程序。该图形处理器包括一个几何处理器(GP)和两个像素处理器(PP0和PP1),每个处理器都有一个专用的内存管理单元(MMU),为2D和3D图形提供硬件加速。APU和GPU之间的缓存一致性是通过缓存一致性互连(CCI)实现的,该互连仅支持AXI一致性扩展(ACE)。
CCI反过来将APU和GPU连接到DDR控制器,DDR控制器仲裁DDR访问。
下图显示了多媒体。
image
用于多媒体的Linux内核驱动程序使处理器上运行的应用程序能够访问硬件。

这里有一张表显示了通过中间栈的多媒体驱动程序以及中间栈使用的库和驱动,但是我不知道具体意思就不贴出来了。

4.2.2 FreeRTOS Software Stack FreeRTOS软件栈

这部分描述了FreeRTOS软件栈,如果不知道什么是FreeRTOS,那我引用一下正点原子教程中的描述:

Free即免费的, RTOS全称是Real Time Operating System, 中文就是实时操作系统。注意, RTOS不是指某一个确定的系统,而是指一类系统, 比如uC/OS, FreeRTOS, RTX, RT-Thread等这些都是RTOS类操作系统。
操作系统允许多个任务同时运行,这个叫做多任务。实际上,一个处理器核心在某一时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行哪个任务。任务调度在各个任务之间的切换非常快,就给人们造成了同一时刻有多个任务同时运行的错觉。
某些操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,比如Unix操作系统。FreeRTOS操作系统则是由用户给每个任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。
FreeRTOS是RTOS系统的一种, FreeRTOS十分的小巧,可以在资源有限的微控制器中运行,当然,FreeRTOS不仅局限于在微控制器中使用。但从文件数量上来看FreeRTOS要uC/OSIIu和C/OSIII小的多。
在嵌入式领域中, 嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、 embOS、 salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、 embOS等商业操作系统, FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行

XILINX在VITIS组件中内置了FreeRTOS作为BSP的一部分,并且中图表展示了软件栈,图表如下,这个图表不全不是我的问题,是文档PDF显示就不全:

image

小结

这两章其实内容也不多,大部分都是些介绍类的,但是我之前没有接触过操作系统,基本都是在用裸机,所以很多概念都不太熟,感觉还得再学习学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webpack配置不当导致接口信息泄露-实战复盘

声明:此次测试已经过授权,该漏洞已修复 某网站存在接口泄露,可导致任意用户密码重置、任意用户密码修改、用户信息泄露等多个问题,思路复盘 1.信息搜集和思路 由于我是得到授权直接测试某学校的一个学院网站,相当于…

海外 EOR 名义雇主服务商推荐:海外雇佣公司精选

随着全球化浪潮的推进,越来越多中国企业将目光投向海外市场。然而,海外雇佣中的合规难题、本地化管理障碍等问题,成为出海企业快速扩张的拦路虎。此时,海外名义雇主(EOR)服务商应运而生,这类服务商能帮助企业在…

Raft如何维持日志一致性

记录自己在学习Raft过程中的一些理解 相关参考: 1.MIT6.824公开课:https://www.bilibili.com/video/BV16M4m1m7YP/ 2.课程及实验:http://nil.csail.mit.edu/6.824/2020/schedule.html 3.Raft论文:http://nil.csail…

2025 年防爆灯源头厂家最新推荐榜,技术实力与市场口碑深度解析,挖掘优质货源平台防爆灯,工厂防爆灯,厂用防爆灯,粉尘防爆灯公司推荐

引言 防爆灯作为易燃易爆场所核心照明设备,其质量与供应稳定性对生产安全至关重要。近期,行业权威协会开展防爆灯厂家专项测评,通过对近百家企业的生产实力、产品认证、合作案例、市场口碑四大维度,采用加权评分法…

2025年热门的花园铝艺凉亭/小院铝艺凉亭实力厂家TOP推荐榜

2025年热门的花园铝艺凉亭/小院铝艺凉亭实力厂家TOP推荐榜行业背景与市场趋势随着人们生活品质的提升和户外生活方式的流行,庭院装饰市场迎来了快速增长期。铝艺凉亭作为庭院景观的重要组成部分,因其兼具美观性、实用…

深入解析:TDengine 字符串函数 CHAR_LENGTH 用户手册

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年高端羽绒供应商指南:鸿基羽绒领衔,从源头守护品质

2025 年高端羽绒供应商指南:鸿基羽绒领衔,从源头守护品质寒风起,羽绒制品成了保暖刚需,但不少人在选购时总被“粉尘过敏”“保暖不均”等问题困扰——归根结底,是没选对背后的羽绒供应商。高端羽绒的核心价值,藏…

完整教程:零基础入门C语言之文件操作

完整教程:零基础入门C语言之文件操作2025-12-04 11:48 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

2025年重庆建筑资质代办公司排名TOP5:重庆海湖集团实力

在重庆建筑行业,资质是企业承接项目的入场券,但复杂的审批流程、严苛的人员要求常让企业陷入困境。面对市场上鱼龙混杂的代办机构,如何选择靠谱合作伙伴?以下是2025年重庆地区5家优质建筑资质代办公司推荐,重点解…

上海打印机租赁/二手打印机怎么买靠谱/打印机维修/打印机上门维修推荐——上海博莱办公-服务覆盖上海十六个区

一、企业概况 上海博莱办公设备有限公司隶属于尚印集团旗下租赁行业品牌(简称:博莱)成立于2006年,迄今有20年,公司有较强管理能力的团队,维修人员均通过专业培训。 主要经营普通和高速的彩色黑白数码复印机、打印…

【Codeforces】【Div2】1067 (cf 2158)

A 读题即出答案 B 题意:有一个长为 $2n$ 的序列,序列中的数在 $[1,2n]$ 之间。同时 $f(a)$ 代表一个序列 $a$ 中出现次数为奇数的不同的数的个数,现在你需要将这个序列分为两个长度都为 $n$ 的序列 $p$,$q$,现在请…

2025年隔热耐火砖定制厂家权威推荐榜单:硅莫复合隔热砖‌/回转窑用耐火砖‌/弧形耐火砖‌源头厂家精选

在石化、冶金、水泥及新能源等高温工业领域,窑炉内衬的隔热与耐火性能直接决定了能源消耗、生产安全与设备寿命。隔热耐火砖作为一种兼具优良隔热性和一定耐火度的关键材料,其定制化需求日益凸显——据统计,在复杂工…

AI大模型应用-本地部署 - 努力-

AI大模型应用-本地部署AI大模型应用,本地部署大模型一、大模型部署 首先需要有一个可访问的大模型,通常有三种选择:使用开放的大模型API。 在云平台部署私有大模型。 在本地服务器部署私有大模型。使用开放大模型API…

重庆高性价比建筑总包资质代办:建筑总包资质转让企业甄选指南,

在建筑行业,资质是企业参与项目投标、开展业务的通行证。然而,资质办理流程繁琐、政策变动频繁、人员配备成本高、业绩材料难达标等痛点,让众多建筑企业陷入困境。据2024年重庆建筑行业调研数据显示,超60%的中小企…

Nginx介绍反向代理和负载均衡 - 努力-

Nginx介绍反向代理和负载均衡Nginx介绍,Nginx反向代理和Nginx负载均衡一、 Nginx介绍 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx…

【2025最新版】傲游浏览器下载安装及使用教程(资源嗅探/云同步/密码大师完整指南)

本篇文章详细介绍了 傲游浏览器(Maxthon Browser) 的下载安装步骤、核心功能亮点以及适合的使用场景,包含 Win10/Win11 平台的图文教程与常见问题解决方法。文章中提供了浏览器安装包链接。无论是需要一个启动速度更…

2025年评价高的医药试剂底托泡沫包装/空调冰箱EPS结构件包装厂家最新热销排行

2025年评价高的医药试剂底托泡沫包装/空调冰箱EPS结构件包装厂家热销排行行业背景与市场趋势随着医药冷链物流和家电制造业的快速发展,高品质的泡沫包装材料需求持续增长。医药试剂底托泡沫包装需要具备优异的缓冲性、…

用 n8n 和 LangBot 打造跨平台 AI 聊天机器人

把 n8n 的可视化工作流与 LangBot 的多平台机器人框架结合起来,可以快速部署覆盖 QQ、微信、Discord、Telegram、Slack 等多个平台的 AI 聊天机器人,无需编写代码。本文教你几分钟内完成集成。 准备工作Python 3.11+ N…

redis下载

redis下载:https://download.redis.io/releases/

告别误判:基于n8n构建你的AI输出安全测试护盾

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 当你花费数周训练的AI模型在关键时刻输出不当内容,或是你精心搭建的聊天机器人突然说出令人尴尬的回复时,那种感觉就像精心准备的宴会上打…