嵌入式软件架构

为嵌入式开发者提供必要的组件

概述

AMD 及其联盟成员提供嵌入式工具与运行时环境,可帮助您高效快速地将概念转化为生产。我们可为您提供使用 AMD Zynq™ SoC 和 Zynq™ UltraScale+™ MPSoC 器件、MicroBlaze™ 处理器内核和 Arm® Cortex® M1/M3 微控制器创建嵌入式系统所需的所有组件,包括开源操作系统和裸机驱动程序、多运行时和多操作系统环境、高级集成型开发环境、编译器、调试器和分析工具等。

针对在我们独特的 Zynq SoC 和 Zynq UltraScale+ MPSoC 器件上构建的高级特性(如安全性和虚拟化软件驱动程序)提供的创造性支持,可帮助您开发更智能、互联的差异化系统。
 

embedded-components


 

构建及开发工具

Linux

AMD Linux 是 AMD 产品使用的最普遍的操作系统。AMD 不仅针对简化的 Linux 开发流程提供 PetaLinux 工具,而且还从我们的 GIT 存储库提供源代码和 Yocto Recipe 文件,以便本地构建系统或第三方工具能够支持 AMD 芯片的 Linux 支持。AMD Linux 项目是一个定制的非商业 Linux 开发项目,主要针对在 Versal™ ACAPZynq™ SoC 和 {MicroBlaze 上进行的开发。

AMD 发布版本的 Linux 内核支持如下:

  • 2017.x:4.9  
  • 2018.x:4.14  
  • 2019.x:4.19 

开发工具

Vitis™ 统一软件平台 - AMD 软件开发套件 (SDK) 和生态系统合作伙伴工具可提供广泛的开发环境选择,其可为 Zynq 和 MPSoC 平台带来类似 SOC 的 C/C++ 编程体验。

AMD 软件环境
  • Vitis 统一软件平台 – 面向 AMD Zynq、MPSoC、RFSoC 和 ACAP 器件的嵌入式软件开发
  • 软件开发套件 (SDK) - 面向 Zynq SoC、MPSoCs 和 Microblaze 的设计和调试
    (注:截止到 2019.1,它被归为原有工具,将不再更新。)
行业生态系统软件开发与工具

构建工具

AMD 提供两款工具来构建和部署嵌入式 Linux 解决方案。这些工具有 AMD 的 PetaLinuxYocto 的开源项目。PetaLinux 为用户提供一个 GUI 来快速构建嵌入式 Linux,经验更丰富的用户可使用 Yocto 为其电路板定制基于 Linux 的操作系统。

AMD 产品由一系列完整的开源资源提供支持,可为 AMD SoC 或仿真平台开发、引导、运行、调试和维护基于 Linux 的应用。我们提供范例应用、内核配置、Yocto 配方、多处理与实时解决方案以及器件驱动程序,Linux 开源开发人员将找到熟悉的源代码、工具和支持论坛学习开发,并与其他有类似兴趣、需求和热情的人士进行互动交流。

RTOS & 库合作伙伴

RTOS

“实时操作系统 (RTOS) 是一种旨在在实时应用处理数据传入时为其提供服务的操作系统 (OS),通常没有缓冲延迟。(wikipedia.org)”

RTOS 的关键因素是保持简单和轻量级。其它因素有最低的中断时延和接触线程切换时延。RTOS 的价值更多在于它的响应速度和确定性,而不是它所能处理的复杂性。

FreeRTOS

FreeRTOS 内核最初由 Richard Barry 在大约 2003 年开发,后来由 Richard 的公司实时工程师公司开发维护。

FreeRTOS 获得了巨大的成功,2017 年实时工程师公司将 FreeRTOS 项目的管理权移交给了亚马逊网络服务 (AWS)。Richard 作为 AWS 团队的一员,继续致力于 FreeRTOS 的开发。

FreeRTOS™ 是亚马逊网络服务的一款市场领先的 RTOS,支持 35 个以上的架构,2017 年每 3 分钟就会下载一次。它经过专业开发,进行了严格的质量控制,非常稳健,得到了广泛的支持,而且无需公开您的专有源代码,便可免费嵌入到商业产品中。(参考: https://www.freertos.org/RTOS.html

freertos-logo

请参考:https://www.freertos.org/RTOS.html,了解更多详情。

FreeRTOS 内核端口针对以下 AMD 处理器提供:

处理器 器件
64 位 Cortex-A53 应用处理器 (APU) 和 32 位 Cortex-R5 实时处理器 (RPU) ZynqUS+ SoC 器件
32 位 Cortex-A9 应用处理器 (APU) Zynq 7000 SoC 器件
32 位 MicroBlaze 处理器 所有

如欲进一步了解有关 AMD 产品上的 FreeRTOS,请访问:AMD FreeRTOS

AMD 还提供其它库和裸机驱动程序。这些库专门针对 AMD 器件开发。

  • wip — 网络 TCP/IP 协议栈
  • xilisf — 闪存
  • 独立 BSP — 电路板支持包
  • xilffs — FAT 文件系统
  • xilfpga — PL/FPGA 管理(比特流加载)
  • xilskey — 安全
  • xilsecure — 安全
  • xilrsa — 安全

如需了解有关裸机驱动程序和库的更多详情,请访问 AMD Wiki:裸机与库

RTOS 和裸机

操作系统 安全认证 支持 Zynq 7000 支持 Zynq UltraScale+ APU 支持 Zynq UltraScale+ RPU 支持 MicroBlaze
AMD 独立(裸机)环境AMD 软件开发套件 (SDK)   
DDC-I DEOS    
eSol eT-kernel    
eCOS    
eForce    
ENEA OSE    联系合作伙伴  
Etas RTA-OS    
Green Hills Software INTEGRITY    
LynxOS 7.0 联系合作伙伴 联系合作伙伴    
Mentor Nucleus 联系合作伙伴
Micrium uC/OS-II
Micrium uC/OS-III   
RTEMS    
Sciopta   
Segger embOS    
Wittenstein OpenRTOS    联系合作伙伴 联系合作伙伴 联系合作伙伴
Wittenstein SafeRTOS 联系合作伙伴 联系合作伙伴
Sysgo PikeOS   

AMP 和 Multi-OS 解决方案

AMD 为其客户与合作伙伴提供关键技术、文档和技术支持,在产品上实现高级、多操作系统设计。Ecosystem 的产品包括:

软件 支持 Zynq 7000 支持 Zynq UltraScale+
Bora 板上的 Dave Embedded FreeRTOS/Linux   
General Dynamics Mission Systems OKL4   
Green Hills INTEGRITY Multivisor   
Lynx Secure Separation Kernel Hypervisor   
Mentor Hypervisor
Mentor 可信执行环境
QNX Hypervisor   
Wind River Hypervisor 联系合作伙伴 联系合作伙伴

此外,AMD 还支持开源项目开放式非对称多处理 (OpenAMP)。OpenAMP 是一个框架,所提供的软件组件可充分满足针对非对称多处理 (AMP) 系统开发软件应用的需球。查看开源(将链接放在另一个选项卡上),了解更多详情。

培训

AMD 针对设计人员的 Zynq™ and MPSoC 应用为他们提供了一整套培训和支持选项,包括设计方法、视频教程、开发人员论坛、Wiki、在线支持、设计服务、常见问题与博客等,可确保您的应用及时上市。

设计服务合作伙伴

软处理器内核

软处理器内核

MicroBlaze™ 是基于 AMD FPGA 的 32 位 / 64 位 RISC Harvard 架构软处理器。它支持各种高级架构选项,如 AXI 接口、内存管理单元 (MMU)、指令与数据端缓存、可配置流水线深度以及浮点单元 (FPU)。

AMD 软件工具包含该软处理器内核,其为用户提供以下三个预置:


点击放大

微控制器预置 (多达 200 个 DMIP)

  • 32 位处理器内核
  • JTAG 调试接口
  • 紧密耦合的本地存储器
  • SPI 控制器
  • I2C 控制器
  • UART
  • 中断控制器
  • 定时器
  • GPIO

点击放大
实时处理器预置(多达 200 个 DMIP)
  • 所有微控制器预置模块
  • 指令高速缓存
  • 内存保护单元
  • 数据高速缓存
  • DDR 内存控制器

点击放大
应用处理器预置(多达 180 个 DMIP)
  • 所有实时处理器预置模块
  • 内存管理单元
  • 以太网控制器

Cortex-M1 和 Cortex-M3 处理器是 32 位处理器,针对低功耗、低逻辑资源以及低中断时延性能精心设计。Cortex-M1 主要针对受限应用设计,这些应用需要通信、控制和管理,而 M3 则旨在满足广泛的嵌入式及物联网应用需求。为支持向前兼容性,Cortex-M1 实现了 Cortex-M3 指令集及特性的子集。

嵌入式 Linux

AMD 及其联盟成员提供嵌入式工具与运行时环境,可帮助您高效快速地将概念转化为生产。我们可为您提供使用 AMD Zynq™ SoC 和 Zynq™ UltraScale+™ MPSoC 器件、MicroBlaze™ 处理器内核和 Arm® Cortex®-M1/M3 微控制器创建嵌入式系统所需的所有组件,包括开源操作系统和裸机驱动程序、多运行时和多操作系统环境、高级集成型开发环境、编译器、调试器和分析工具等。

Linux

支持 Zynq 7000 SoC 支持 Zynq UltraScale+ APU 支持 Zynq UltraScale+ RPU 支持 MicroBlaze
非商业  
Linux、uBoot 等 (AMD GIT)   
Yocto/OpenEmbedded 支持   
PetaLinux 工具   
Arch Linux ARM    
Ubuntu Linux    认证的 Ubuntu,面向 AMD 器件    
Android    
商业解决方案   
Enea Linux    
Mentor Embedded Linux    
Suse Linux    
Sysgo ELinOS    
开源项目

开源项目

AMD 不仅相信开源社区,而且还积极参与开源社区。主要重点及项目如下。您还可在 Hackster 社区门户 查看其他设计和信息。

自从 AMD 在其器件中发布处理器以来,就一直使用开源 Linux。第一款是 2001 年的 Virtex-II Pro。从那时起,AMD 一直使用开源 Linux,并从 2007 年起开始使用上游补丁做贡献。AMD 发布 Zynq™ 7000,在 Linux 社区立足。他们现在是 Linux Uboot 项目的主要贡献者之一。

Linaro 是一个开源项目,在整个 Arm 生态系统中开发软件。Linaro 与 ARM 合作,共同维护 ARM 生态系统。

正如 96boards 页面所述,“96boards 是 Linaro 创建的一系列硬件规范,用于以合理的成本向开发人员提供基于 ARM 的处理器。96Board 是开放平台规范,为开发平台定义了一个标准电路板布局,可供软件应用程序、硬件设备、内核和其他系统软件开发者使用。“

配备 AMD 器件的 96Board 是一款由 Avnet 销售的 Ultra96。Ultra96 上有 Avnet、AMD 和 Linaro 社区的开发。了解更多信息,请访问http://zedboard.org/product/ultra96-v2-development-board

OpenAMP 是 Linaro 社区项目,旨在通过开源解决方案在异构嵌入式系统中为操作环境之间的互动实现标准化。OpenAMP 初始化包括以下项目

  • OpenAMP 是一个开放的 AMP 框架,涉及两项工作:
    • 一种使用 AMP 的标准化方法
    • 一个超净工作室的开源实现方案/项目
  • OpenAMP 当前包括以下组件:
    • 生命周期操作 - 例如启动/停止另一个环境
    • 消息收发 — 发送和接收消息
    • 低层次抽象 — 共享内存,处理器间中断……
    • 代理操作 — 远程访问服务,例如文件系统
    • 正在开发:使用系统设备树进行资源配置
  • 建立在现有开源项目/标准之上
    • RemoteProc、rpmsg、Virtio、设备树
  • 通过在开源环境执行任务加速采用
    • Linux 和 RTOS 实现

正如 Yocto 项目所述:“Yocto 项目是一个开源协作项目,可帮助开发人员在不考虑硬件架构的情况下,为嵌入式产品创建基于 Linux 的自定义系统。该项目提供一系列灵活的工具和一个全球嵌入式开发人员可共享技术、软件堆栈、配置和最佳实践的空间,这些可用来为嵌入式设备创建定制 Linux 映像。”