Guia de metodologia de projeto incorporado UltraFast™
Este guia é organizado em torno de áreas funcionais importantes que são mapeadas para conjuntos de habilidades específicas dentro das equipes de desenvolvimento.
O ecossistema de software incorporado da AMD capacita os desenvolvedores a acelerar sua jornada desde a ideia até sistemas incorporados prontos para o mercado. Com um conjunto abrangente de ferramentas, tempos de execução e ambientes, esse ecossistema foi projetado para aproveitar perfeitamente os recursos do portfólio de produtos incorporados da AMD, incluindo os SoCs AMD Zynq™ 7000, os MPSoCs Zynq UltraScale+™, os SoCs adaptativos Versal™ e os núcleos de processador MicroBlaze™ e MicroBlaze V. Nossa oferta tem como base recursos avançados, que incluem drivers de software de segurança e virtualização pioneiros, intrinsecamente no DNA dos dispositivos Zynq e Versal. Esta sinergia desbloqueia o potencial para criar sistemas engenhosos, interconectados e distintos que atendam às demandas de aplicativos incorporados modernos.
O Linux® é o sistema operacional mais predominante usado pelos produtos AMD. A AMD fornece o sistema operacional EDF Linux e o Embedded Development Framework (EDF), um ambiente baseado no Yocto Project™ e distribuição Linux, que inclui código-fonte e arquivos de receitas Yocto do nosso repositório GIT, permitindo o suporte Linux para chips AMD por meio de sistemas de compilação internos ou ferramentas de terceiros. O sistema operacional EDF Linux é um projeto de desenvolvimento Linux personalizado e não comercial, projetado para desenvolvimento em SoCs adaptativos AMD Versal™, MPSoCs Zynq™ UltraScale™, SoCs Zynq 7000 e processadores MicroBlaze™.
O suporte ao kernel do Linux nas versões AMD EDF rastreia o kernel LTS.
Atualmente, a AMD oferece duas ferramentas para compilar e implantar soluções Linux incorporadas. A primeira é AMD EDF, construída sobre o Yocto Project™ de código aberto, e a segunda é PetaLinux, que está sendo substituída pelo AMD EDF. Ambas ferramentas fornecem uma maneira rápida de criar uma imagem Linux incorporada, sendo que o EDF também oferece suporte a casos de uso mais avançados.
Fluxos Linux de código aberto da AMD:
A plataforma de software unificada AMD Vitis™, o Kit de desenvolvimento de software (SDK) e as ferramentas dos parceiros do ecossistema oferecem uma ampla variedade de ambientes de desenvolvimento que permitem a programação C/C++ semelhante ao SoC das plataformas Zynq e Versal.
RTOS, hipervisores e bare-metal
O projeto Zephyr é um sistema operacional dimensionável em tempo real (RTOS) que suporta várias arquiteturas de hardware, otimizado para dispositivos com recursos limitados e criado com a segurança em mente.
O sistema operacional Zephyr é baseado em um kernel de tamanho reduzido, projetado para uso em sistemas com recursos limitados: desde simples sensores ambientais incorporados e dispositivos vestíveis com LED até sofisticados relógios inteligentes e gateways sem fio para IoT.
Mais informações sobre o Projeto Zephyr podem ser encontradas em: https://www.zephyrproject.org/
O repositório Projeto do Zephyr da AMD pode ser encontrado em: https://github.com/Xilinx/zephyr-amd
O FreeRTOS é um RTOS líder de mercado da Amazon Web Services que oferece suporte a mais de 35 arquiteturas e foi baixado uma vez a cada 3 minutos durante 2017. Desenvolvido profissionalmente, com rigoroso controle de qualidade, robusto, com suporte, e pode ser incorporado gratuitamente em produtos comerciais sem qualquer requisito para expor seu código-fonte proprietário (referência: https://www.freertos.org/RTOS.html).
Mais informações sobre o FreeRTOS podem ser encontradas em https://www.freertos.org/RTOS.html.
Mais informações e recursos de suporte para FreeRTOS em produtos AMD podem ser encontrados em AMD FreeRTOS
| Processador | Dispositivo |
|---|---|
| Unidade de processador de aplicativos (APU) Arm® Cortex®-A72 de 64 bits e unidade de processador em tempo real (RPU) Cortex-R5 de 32 bits | SoCs adaptativos Versal |
| Unidade de processador de aplicativos (APU) Arm Cortex-A53 de 64 bits e unidade de processador em tempo real (RPU) Cortex-R5 de 32 bits | MPSoCs Zynq UltraScale+ e SOMs Kria™ |
| Unidade de processador de aplicativos (APU) Arm Cortex-A9 de 32 bits | Dispositivos SoC Zynq 7000 |
| Processador MicroBlaze de 32 bits | Todas as famílias de dispositivos AMD |
| Fornecedor | Produto | SoC Zynq 7000 | MPSoC Zynq UltraScale+ | SoC adaptativo Versal | MicroBlaze | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Cortex-A9 | Cortex-A53 | Cortex-R5 | VCU | Mali-400 | Cortex-A72 | Cortex-R5F | AIE | |||
| AMD | Bare-Metal | S | S1 | S | S | S | S | S | S | S |
| AMD | FreeRTOS | S | S1 | S | N | N | S | S | S | S |
| AMD | Zephyr6 | N | S4 | S4 | S4 | S4 | ||||
| BlackBerry | QNX Neutrino | S | S | N | S | S | S | N | N | N |
| QNX OS for Safety | S | S | N | S | S | S | N | N | N | |
| Wind River | VxWorks | S | S | S | N | S | S | S | N | N |
| Green Hills | INTEGRITY-178 | N | S | N | N | N | S | N | N | N |
| INTEGRITY | S | S | N | N | N | S | N | N | N | |
| u-velOsity | N | N | S | N | N | N | S3 | N | N | |
| Siemens | Nucleus | S | S | S | N | N | N | S4 | N | N |
| PX5 | PX5 RTOS | N | S | S | N | N | N | N | N | S |
| Microsoft | Azure RTOS | S | S | S | N | N | N | N | N | S |
| ETAS | ETAS RTA-OS | S | S | S | N | N | N | N | N | N |
| Sysgo | PikeOS | S | S | N | N | N | N | N | N | N |
| PikeOS for MPU | N | N | S | N | N | N | N | N | N | |
| Lynx | LynxOS-178 | N | S | N | N | N | N | N | N | N |
| Weston Embedded | Cesium Cs/OS2, OS3 | S | S | S | N | N | N | N | N | N |
| DDC-I | Deos | S | S | N |
N | N | N | N | N | N |
| RTEMS | RTEMS | S | S | S | N | N | S | S | N | S |
| eForce | uC3 | S1 | S1 | N |
N | N | N | N | N | N |
| ENEA | OSE | S | S | N |
N | N | N | N | N | N |
| eSOL | eT-kernel | S | S | N | N | N | N | N | N | N |
| Silicon Labs | Micrium uc/OS-II / OS-III5 | S | S1 | S | N | N | N | N | N | N |
| Sciopta | Sciopta RTOS | S1 | S1 | S | N | N | N | N | N | N |
| Wittenstein | SafeRTOS | S1 | N | N | N | N | N | N | N | N |
| Segger | emBOS | S1 | N | N | N | N | N | N | N | N |
A maioria dos RTOS oferece algum nível de certificação para diferentes normas de segurança. Consulte o fornecedor do sistema operacional para determinar se ele atende às suas necessidades específicas.
Para obter mais informações e recursos de suporte, consulte o Wiki da AMD: Ecossistema de software incorporado.
A AMD fornece a seus clientes e parceiros tecnologias, documentação e suporte essenciais para habilitar projetos avançados com vários sistemas operacionais em nossos produtos. As ofertas disponíveis em nosso ecossistema incluem:
| Fornecedor | Produto | SoC adaptativo Versal | MPSoC Zynq UltraScale+ | SoC Zynq 7000 |
|---|---|---|---|---|
| AMD | Hipervisor Xen | S | S | N |
| BlackBerry | QNX Hypervisor | S | S | N |
| Wind River | Helix Virtualization Platform | S | S | N |
| Sysgo | PikeOS Hypervisor | N | S | S |
| Green Hills | Integrity Multivisor | S1 | S1 | N |
| Lynx | LynxSecure Separation Kernel Hypervisor | S | S | N |
| Dornerworks | SEL4 | S | S | N |
| Siemens | Nucleus Hypervisor | N | S | S |
| General Dynamics Mission Systems | OKL4 Microvisor | N | S | N |
Para obter mais informações e recursos de suporte, consulte o Wiki da AMD: Ecossistema de software incorporado.
A AMD fornece bibliotecas adicionais e drivers bare-metal. Essas bibliotecas são desenvolvidas especificamente para dispositivos AMD.
Mais informações e recursos de suporte para bibliotecas e drivers bare-metal podem ser encontrados no Wiki da AMD em: Bare-metal e bibliotecas.
O Linux de código aberto é o sistema operacional mais popular para execução em hardware incorporado, e a AMD oferece suporte para Linux em seus dispositivos FPGA e SoC adaptativo desde a introdução da FPGA AMD Virtex™ II Pro em 2001. Além dos ambientes de criação do PetaLinux e Yocto, a AMD fornece suporte comercial para direcionar dispositivos AMD de vários fornecedores terceirizados, incluindo o certificado Ubuntu® da Canonical Ltd.
Como o Yocto Project afirma: "O Yocto Project é um projeto de colaboração de código aberto que auxilia os desenvolvedores a criar sistemas personalizados baseados em Linux para produtos incorporados, independentemente da arquitetura do hardware. O projeto fornece um conjunto flexível de ferramentas e um espaço onde desenvolvedores incorporados em todo o mundo podem compartilhar tecnologias, pilhas de software, configurações e práticas recomendadas que podem ser usadas para criar imagens personalizadas do Linux para dispositivos incorporados." O AMD Embedded Development Framework é baseado no Yocto Project. Saiba mais sobre a AMD EDF.
Ambos os fluxos oferecem tudo o que é necessário para personalizar, construir e avaliar soluções Linux incorporadas em sistemas de processamento AMD. Adaptada para acelerar a produtividade do projeto, a solução funciona com as ferramentas de projeto de hardware AMD para facilitar o desenvolvimento de sistemas Linux para SoCs adaptativos Versal, MPSoCs Zynq UltraScale+, SoCs Zynq 7000 e processadores MicroBlaze. No entanto, as ferramentas PetaLinux agora foram substituídas pela AMD EDF. Consulte a página Ferramentas do AMD PetaLinux para obter mais informações:
| Fornecedor | Produto | Distribuição | SoC adaptativo Versal | MPSoC Zynq UltraScale+ | SoC Zynq 7000 | MicroBlaze |
|---|---|---|---|---|---|---|
| AMD | AMD EDF | Yocto | S | S | S | Y* *Apenas MicroBlaze V |
| PetaLinux | Yocto | S | S | S | S | |
| Yocto | Yocto | S | S | S | S | |
| Canonical | Ubuntu | Debian | S1 | S | N | N |
| Wind River | Wind River Linux | Yocto | S | S | S | N |
| Foundies.io | FoundriesFactory | Yocto | S | S | N | N |
| Siemens | Sokol Flex OS | Yocto | N | S | S | N |
| Sokol Omni OS | Debian | N | S | N | N | |
| TimeSys | Linux Services | Yocto | S | S | S | N |
| MontaVista | CGX/CGE | Yocto | N | S | S | N |
| ArchLinuxARM | ArchLinuxARM | N/A | N | N | S | N |
Para obter mais informações e recursos de suporte, consulte o Wiki da AMD: Ecossistema de software incorporado.
O QEMU (Quick EMUlator) é um emulador de sistema multiplataforma de código aberto. É um executável que é roda em um sistema operacional Linux x86. O QEMU pode emular um sistema completo (comumente chamado de convidado), como uma placa ZCU102 ou VCK190 da AMD.
A emulação inclui os processadores, periféricos e outros hardwares na placa de desenvolvimento, permitindo que você inicie um sistema operacional ou outros aplicativos no hardware virtualizado.
O QEMU também pode interagir com a máquina host por meio de interfaces, como CAN, Ethernet e USB, permitindo que dados do mundo real do host sejam usados na máquina convidada em tempo real.
O Xen é um hipervisor Tipo 1 definido, mantido e fornecido à comunidade de código aberto pelo Projeto Xen. O Xen permite que várias instâncias de sistemas operacionais ou aplicativos bare-metal sejam executadas em MPSoCs AMD Zynq UltraScale+. Informações adicionais sobre o hipervisor Xen podem ser encontradas na página Introdução ao projeto Xen.
O U-Boot é um carregador de inicialização universal de código aberto frequentemente usado na comunidade Linux. A AMD fornece uma árvore GIT localizada em https://github.com/Xilinx/u-boot-xlnx, que inclui um U-Boot para execução em placas AMD.
O Arm Trusted Firmware fornece uma referência para software seguro para a arquitetura ARMv8-A, bem como implementações de vários padrões de interface, como PSCI (Interface de coordenação de estado de energia) e código de monitor seguro para interface com software do mundo normal. A porta AMD Arm Trusted Firmware foi lançada e está disponível em https://github.com/Xilinx/arm-trusted-firmware.