Intel® SoC FPGA Centro de desenvolvedores Bare-metal
Recursos para ajudá-lo a começar e conhecer o desenvolvimento bare-metal no FPGAs Intel SoC.
O desenvolvimento Bare-metal usa um ambiente de tempo de execução de software que não usa um sistema operacional (SO) ou um sistema operacional em tempo real (RTOS). Em uma configuração bare-metal, o hard processing system (HPS) do SoC FPGAs pode ser usado. A Intel oferece bibliotecas de hardware (HWLIBs) que consistem em interfaces de programação de aplicações (APIs) de alto nível e macros de baixo nível que permitem que você exerça a maioria dos periféricos de HPS.
Você pode acessar vários recursos para ajudá-lo a começar o desenvolvimento de bare-metal no SoC Intel® FPGAs a partir dos links abaixo. Se você for um usuário pela primeira vez, recomendamos que você siga os recursos linearmente.
1. Pré-requisitos
Crie sua conta My Intel
- Crie sua conta My Intel a partir da página Minha Intel (My Intel).
- Sua conta Minha Intel permite que você registre solicitações de serviço, inscreva-se para aulas, download de software, recursos de acesso, cursos de treinamento e muito mais.
Considerações de projeto
O que é Bare-metal?
- O Bare metal representa as interfaces de registro e os recursos de hardware reais do sistema do processador.
- O bare metal development usa um ambiente de tempo de execução de software que não usa um SO ou um RTOS.
- Em configurações bare-metal, o HPS do SoC FPGAs pode ser usado. A Intel oferece HWLIBs que consistem em APIs de alto nível e macros de baixo nível que permitem que você exerça a maioria dos periféricos de HPS.
Por que bare-metal?
- As vantagens de usar uma abordagem bare-metal são:
- Controle absoluto do hardware
- Maior eficiência
- Tamanho mínimo (flash e pegada de memória)
- Não há dependência de outros códigos-fonte ou bibliotecas
- Mais fácil de provar formalmente a correção e realizar análise de cobertura de código
- Outras razões para escolher o desenvolvimento de bare metal são:
- É necessário executar a criação de placa e focar em um único periférico de cada vez
- É necessário reutilização do código legado existente que já está desenvolvido como bare-metal
- Falta de experiência com um SO ou RTOS
Considerações sobre Bare-metal
Para desenvolver uma aplicação bare metal para o HPS, você deve estar familiarizado com o desenvolvimento de recursos de tempo de execução para garantir que sua aplicação faça uso eficiente dos recursos disponíveis em seu subsistema de CPU. Exemplos do que pode ser necessário são os seguintes:
- Conhecimento aprofundado da plataforma de hardware
- Desenvolvendo recursos de tempo de execução para gerenciar o processo entre o núcleo e o subsistema de cache, se você quiser utilizar plenamente o subsistema da CPU, uma vez que uma aplicação típica de bare metal usa apenas um único núcleo
- Desenvolvendo recursos para gerenciar e programar processos, lidar com comunicações entre processos e sincronizar eventos dentro de sua aplicação
Se o seu projeto programado não permitir esforços que possa levar para se familiarizar com os pontos acima, é recomendável que você considere usar uma solução comercial linux* ou RTOS.
Alternativa |
Vantagens |
Comentários |
---|---|---|
Linux | Rede, armazenamento, multitarefa, comunicação de interprocessamento, sincronização e muito mais. | Você não precisa ser um especialista em kernel Linux para utilizar Linux em seu projeto. Por exemplo, você pode escrever um aplicativo de espaço de usuário Linux e acessar os registros de propriedade intelectual (IP) do FPGA diretamente, semelhante ao modo como uma aplicação bare-metal se comportaria. |
RTOS | Processamento multicore, multitarefa, comunicação interprocessador e sincronização, dependendo do RTOS. | Usar um RTOS simples é fácil. É semelhante ao uso das bibliotecas C de funções que já foram implementadas, em vez de escrever essas funções você mesmo. |
Bootloader | Tempo de inicialização mais rápido e acesso a recursos já implementados no bootloader, como armazenamento em massa e rede | Os carregadores de inicialização disponíveis são: |
Diagrama de fluxo de projeto
O diagrama de fluxo de projeto típico para o desenvolvimento bare-metal é mostrado abaixo:
Um resumo do fluxo é o seguinte:
- Comece com um projeto de hardware, que inclui:
- Configuração do HPS: configurações de clock, multiplexação e configuração dos pinos, configurações de DDR, periféricos conectados, e assim por diante.
- FPGA conteúdo da malha: núcleos de IP instanciados na FPGA e FPGA pinos, controlador de memória e configuração de loop bloqueado por fase (PLL)
- O projeto de hardware é compilado com as ferramentas Intel® FPGA Complete Design Suite, que geram os seguintes arquivos:
- Arquivo SOF: usado para configurar a malha FPGA através de vários métodos — programador externo, flash externo, carregador de inicialização HPS ou até mesmo aplicativo HPS
- Handoff: contém informações usadas pelo Gerador de bootloader de segundo estágio para criar o bootloader que será usado no HPS
- Arquivo SOPCINFO: pode ser usado para criar automaticamente arquivos de cabeçalho com os FPGA endereços IP soft
- Arquivo SVD: contém informações sobre os FPGA registros de IP soft para que o depurador arm* Development Studio 5* (DS-5*) Intel SoC FPGA Edition possa exibi-los em um formato amigável durante a depuração
- O usuário grava código fonte personalizado, com o auxílio dos HWLIBs e, potencialmente, usando os arquivos do cabeçalho de endereço IP FPGA
- O usuário compila a aplicação bare-metal com o auxílio de compiladores bare-metal
- O usuário depura o aplicativo bare-metal usando oARM DS-5 Intel SoC FPGA Edition
2. Primeiros passos
Selecione a placa de destino
- Recomendamos iniciar seu desenvolvimento em um Kit de desenvolvimento SoC fornecido pela Intel porque os exemplos de bare metal iniciais são direcionados para serem executados nessas placas.
- Para ver as placas SoC FPGA disponíveis, acesse Intel® FPGA Placas.
Instale Intel SoC FPGA EDS
- O Intel SoC FPGA EDS oferece ferramentas essenciais necessárias para todo o desenvolvimento FPGA de SoC, incluindo bare metal. Consulte as Ferramentas e software embarcado para obter Intel® SoC FPGA para obter mais detalhes.
- Baixe o Intel® SoC FPGA Embedded Development Suite (SoC EDS) Pro Edition no Centro de download FPGA.
- Processo de instalação e instalação das ferramentas para EDS Intel SoC FPGA.
- Se a Arm DS-5 Intel SoC FPGA Edition for usada para depuração e/ou rastreamento de aplicações bare-metal, você precisará obter uma licença. A licença é geralmente incluída com a compra do kit de desenvolvimento Intel SoC FPGA. Consulte as Instruções de configuração da licença do guia do usuário Intel® SoC FPGA Embedded Development Suite (SoC EDS).
Selecione Ferramentas de Criação
- O Intel SoC FPGA EDS oferece as seguintes ferramentas de compilação bare-metal:
- Intel SoC FPGA versão do Mentor CodeSourcery — baseado em GCC, sem necessidade de licença
- Arm Compiler 5 — licença incluída com a licença Intel SoC FPGA EDS
- Outros conjuntos de ferramentas de construção destinados a plataformasARm podem ser usados — acesse o ecossistema para dispositivos de Intel® FPGA e Intel® SoC FPGA.
- Os projetos de exemplo de primeiros passos estão disponíveis para os compiladores GCC e ARMCC fornecidos como parte do Intel SoC FPGA EDS.
Selecione Ferramentas de depuração e rastreamento
- O Intel SoC FPGA EDS inclui oARM DS-5 Intel SoC FPGA Edition, que suporta totalmente a depuração e rastreamento de programas bare metal – uma licença necessária
- Os projetos de exemplo que estão sendo iniciados estão usando oARM DS-5 Intel SoC FPGA Edition para depuração e rastreamento
Exerça a aplicação Getting Started
- Uma amostra de aplicação iniciada está disponível para os dispositivos Cyclone V, Arria V e Intel® Arria® 10, compatíveis com compiladores ARMCC e GCC.
- Os exercícios de amostra de aplicativo são os seguintes
- HPS SDRAM, MMU, caches,
- Temporizadores de HPS, interrupções
- Pontes de HPS para FPGA
- IP soft FPGA: SysID
- FPGA interrupções
- Encontre a documentação e os downloads para a versão de que você precisa sobre Rocketboards.org no tópico SoCEDS e Arm Development Studio.
3. Criar seu próprio projeto
Tipos de projetos bare-metal
Há dois tipos diferentes de projetos que podem ser gerenciados pela Arm DS-5 Intel SoC FPGA Edition:
- Projetos baseados em Makefile: o projeto é gerenciado editando manualmente o makefile, e o ARM DS-5 Intel SoC FPGA Edition simplesmente chama de "fazer tudo" e "limpar" nesse makefile para construir e limpar seu projeto, respectivamente.
- Projetos baseados em plugin: OArm DS-5 Intel SoC FPGA Edition gerencia completamente seu projeto, incluindo arquivos para compilar, opções de compilador, construção e limpeza.
A vantagem de um projeto baseado em makefile é que ele pode invocar qualquer outra ferramenta, não apenas o compilador bare-metal, oferecendo assim mais flexibilidade. A única vantagem de usar um projeto baseado em plugin é que as configurações são facilmente acessíveis na interface gráfica ARM DS-5 Intel SoC FPGA Edition, em vez de editar o makefile com um editor de texto.
Método recomendado para criar seu próprio projeto
Recomendamos começar a usar o script fornecido para criar automaticamente seu projeto baseado em plugin ou baseado em makefile .
O script executa as seguintes ações:
- Criar pasta do projeto
- Crie o arquivo do projeto C, com todas as configurações de compilação necessárias
- Crie um arquivo simples main.c que simplesmente imprima uma mensagem de "hello world"
- Traga todos os arquivos HWLIBs relevantes
- Crie o arquivo system.h com os endereços básicos dos periféricos de malha FPGA (requer que o software Intel® Quartus® Prime seja instalado primeiro, caso contrário, esta etapa será ignorada)
- Crie uma configuração de depuração para depuração do aplicativo
- Crie uma configuração de depuração para executar o bootloader [opcional]
- Crie um launcher de ferramenta externa para configurar FPGA malha a partir do Arm DS-5 Intel SoC FPGA Edition [opcional]
- Crie um launcher de ferramenta externa para reinsererção do arquivo system.h quando necessário [opcional]
Observe que todos os projetos de introdução descritos na seção Getting Started foram criados usando este método.
Métodos alternativos para criar seu projeto
Você também pode criar seus próprios projetos usando as seguintes alternativas:
- Opção 1: Crie manualmente um makefile e consulte o Arm* Development Studio* para Intel® SoC FPGA Edition para encontrar insruções para criar o projeto noARM DS-5 Intel SoC FPGA Edition como um projeto baseado em makefile . A criação manual do makefile está além do escopo deste guia e requer que você se familiarize com todas as ferramentas de construção e suas opções. Se um makefile for necessário, o método recomendado é usar o script fornecido para criá-lo.
- Opção 2: Crie manualmente um projeto baseado em plugin a partir do zero. Isso consiste em reproduzir manualmente o procedimento que o script fornecido segue para criar o projeto. Observe que o script oferece mais recursos e é o método recomendado para criar o seu projeto. Essa opção está documentada apenas para referência.
- Opção 3: Comece com um projeto existente e modifique-o para atender às suas necessidades. Isso pode ser feito especialmente para testes e experimentos curtos, mas este método não é recomendado.
4. Exemplos
Primeiros passos em aplicações bare-metal
Tabela A. Direcionando para placas de desenvolvimento De SoC Intel e exercício de atividades físicas:
- HPS SDRAM
- MMU HPS e caches
- Temporizador HPS, com interrupções
- IP FPGA: SysID e PIO — botões, comutadores dip (dual in-line package) e LEDs
- FPGA interrupções
Dispositivo |
Compilador |
Exemplo |
---|---|---|
Cyclone® V |
ARMCC |
|
Cyclone® V |
GCC |
|
Arria® V |
ARMCC |
|
Arria® V |
GCC |
|
dia 10 de Intel® Arria® |
ARMCC |
|
dia 10 de Intel® Arria® |
GCC |
Exemplos de Bare-metal incluídos com o Intel SoC FPGA EDS
Tabela B. Visando as Placas de desenvolvimento SoC Intel e disponível na <SoC FPGA pasta de instalação>\embedded\examples\software\:
Nome do exemplo |
Descrição |
Dispositivo |
Compilador |
---|---|---|---|
HardwareLib-16550 |
Usa UART e APIs de interrupção para implementar uma aplicação de console. |
Cyclone V |
ARMCC |
HardwareLib-ECCL2 |
Configura as tabelas da MMU e mostra os recursos de ECC do cache L2. |
Cyclone V |
ARMCC |
HardwareLib-FPGA |
Configura FPGA HPS usando acesso direto à memória (DMA), abre as pontes H2F e comunica-se com um componente IP soft GPIO dentro da malha FPGA. |
Cyclone V |
ARMCC |
HardwareLib-SPI |
Comunica-se com um SPI EEPROM em uma placa externa. |
Cyclone V |
ARMCC |
Temporizador de hardwareLib |
Configura os timers e as interrupções. |
Cyclone V |
ARMCC |
HelloWorld-Baremetal | Exibe mensagens de "hello world" usando semihosting. | Cyclone V Arria V dia 10 de Intel Arria |
ARMCC GCC |
Exemplos adicionais de bare-metal
Tabela C. Visando placas de desenvolvimento SoC Intel e disponível na página Exemplos de projeto, todos usando o compilador GCC:
Exemplo |
Descrição |
Dispositivo (arquivo do projeto) |
Dispositivo (arquivo Readme) |
---|---|---|---|
DMA |
Inicializa o DMA, executa a memória para transferências de memória e zero para transferências de memória. |
||
ECC |
Configura a configuração e habilita o ECC para RAM no chip, SD/MMC, interface periférica serial quad (SPI), DMA e cache L2. Injeta erros de bit único/duplo e configura as interrupções para detecções de erros de bit único/duplo. |
||
GPIO |
Configura a entrada/saída de uso geral (GPIO) como portas de saída para impulsionar LEDs HPS e configurar o GPIO como portas de entrada para botões HPS. |
||
I2C |
Comunica-se através de I2C com tela LCD, memória EEPROM, bem como entre dois módulos I2C. |
||
Quad SPI |
Executa leitura e gravação no SPI quad usando o modo de E/S de bloco genérico, modo indireto e modo DMA. Também configura MMU e caches. |
||
SD/MMC |
Inicializa placa SD/MMC, leitura e gravação usando funções de E/S de bloco. |
||
Timer |
Utiliza temporizadores nos modos free-running, one-shot e watchdog. Realiza medições globais de temporizador. |
||
Semhosted | Usa UART para saída de printf em vez de semihosting. Também demonstra como inicializar um programa bare-metal a partir de uma placa SD. | ||
SPI | Comunica-se entre dois módulos SPI conectados através da malha FPGA. | ||
Pontes de HPS para FPGA | Exerce as interfaces mapeadas de memória do sistema de processador rígido (HPS) expostas à malha FPGA. Executa testes de memória escrevendo e lendo a memória do HPS usando várias portas do HPS e mede o desempenho dos movimentos de dados. | Exemplo |
Como implementar a execução em vigor (XIP) no FPGAs Cyclone V
Consulte a página de projeto de exemplo do Cyclone V QSPI XIP no Intel FPGA Wiki para obter instruções completas sobre como executar uma aplicação bare-metal a partir do flash QSPI.
Como inicializar aplicativos Bare-Metal no FPGAs Cyclone V
Consulte a Nota de Aplicação 709, capítulo Exemplos de inicialização para exemplos sobre como inicializar uma aplicação bare-metal do SoC Cyclone V de:
- SD/MMC
- QSPI
- FPGA
5. Recursos adicionais
Recursos de suporte
A ajuda está a apenas um clique! Os Recursos de Suporte fornecem recursos técnicos on-line, desde aulas de treinamento a exemplos de designs a fóruns, que o orientam em cada passo do processo de projeto.
Base de conhecimento
A base de conhecimentos oferece um vasto número de soluções de suporte, artigos de referência, mensagens de erro e guias de solução de problemas, e também é totalmente pesquisável.
Comunidade Intel
A Comunidade Intel é um site da comunidade que permite a colaboração entre usuários Intel FPGA. Confira as seções "Embedded Design Suite (EDS)" e "SoC Discussion". Use o mecanismo de pesquisa para encontrar o material relevante. Você também está encorajado a atualizar e contribuir.
Aulas de treinamento
A seguir estão as aulas de treinamento básicos que você pode fazer antes de iniciar seu desenvolvimento de bare-metal.
Recurso |
Tipo |
Habilidades desenvolvidas |
---|---|---|
Curso on-line gratuito de 27 minutos |
|
|
Curso on-line gratuito de 28 minutos |
|
|
Curso de 8 horas com instrutor/ aula virtual |
|
Guia do usuário do Learning -Intel SoC FPGA EDS
O Guia do usuário do SoC EDS é um documento fundamental que descreve todas as ferramentas e componentes Intel SoC FPGA EDS. É altamente recomendável revisar as seguintes seções relevantes para o desenvolvimento de bare metal:
Seção SoC EDS |
Descrição |
---|---|
Visão geral e o fluxo de desenvolvimento de hardware e software. |
|
Como instalar o Intel SoC FPGA EDS e o ARM DS-5 Intel SoC FPGA Edition. |
|
Opções de licenciamento para o Intel SoC FPGA EDS e como instalar a licença. |
|
Como iniciar o shell e usá-lo para acessar o resto das ferramentas Intel SoC FPGA EDS. |
|
Operações básicas, como iniciar oARM DS-5 Intel SoC FPGA Edition, gerenciamento de projeto bare-metal e depuração. |
|
Visão geral dos HWLIBs e como chegar às informações do Doxygen incluídas com a instalação do Intel SoC FPGA EDS. |
|
Visão geral dos dois compiladores bare-metal incluídos na Intel SoC FPGA EDS: ARMCC e GCC. |
Aprendizagem - Guias de primeiros passos Intel SoC FPGA EDS
Os Guias de primeiros passos do SoC EDS na Intel FPGA Wiki são um conjunto de instruções básicas fundamentais para ajudá-lo a começar facilmente com o EDS Intel SoC FPGA.
Guia |
Descrição |
---|---|
Configure a placa de desenvolvimento SoC Intel. |
|
Execute algumas das ferramentas fornecidas com o Intel SoC FPGA EDS. |
|
Importe, compile e depure o exemplo de aplicação bare-metal da Hello World fornecido. |
Documentação e recursos adicionais
Manuais técnicos de referência
Os manuais de referência técnicos contêm descrições detalhadas do hardware, incluindo o comportamento, endereços base, mapeamento de interrupção e registros de controle/status de todos os periféricos.
Páginas de documentação do SoC
As páginas de documentação do SoC convenientemente fornecem uma única localização para acessar toda a documentação SoC relevante, como manuais de referênciatecnéricos, fichas técnicas e notas de aplicação.
Recursos adicionais
Recurso |
Descrição |
---|---|
Faça o download do FPGA EDS para SoC. |
|
Veja todos os Kits de desenvolvimento FPGA disponíveis. Clique em Kits de série SoC no painel de navegação esquerdo para ver as placas compatíveis com um SoC FPGA. |
|
Acesse vários exemplos de design. Clique em Exemplos de design SoC no painel de navegação esquerdo para ver os exemplos visando um FPGA de SoC. |
|
Acesse todos os currículos do treinamento Intel FPGA. Selecione Desenvolvimento de Software no painel de navegação esquerdo e procure por "SoC" para obter cursos específicos de SoC FPGA relacionados. Ou selecione quaisquer outras áreas de interesse. |
|
Acesse todo o catálogo de treinamento Intel FPGA. Procure por "SoC" para SoC específicos FPGA cursos relacionados. Ou selecione outros cursos de interesse. |
|
Consulte uma visão geral do Intel SoC FPGA EDS, incluindo o que há de novo no lançamento mais recente, notas de versão e histórico de lançamentos. |
|
Obtenha links para vários recursos relacionados à FPGA SoC, como sistemas operacionais, ferramentas de desenvolvimento, núcleos de IP e placas. |
|
Acesse mais de 200 vídeos criados por engenheiros Intel FPGA. Alguns vídeos são genéricos, enquanto outros são relacionados a produtos de FPGA de SoC. |
|
Colabore com outros usuários Intel FPGA através desse site da comunidade. Consulte as seções de embedded Design Suite (EDS) e SoC Discussion . Use o mecanismo de pesquisa para encontrar o material relevante. Todos são incentivados a atualizar e contribuir. |
O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.