Centro de desenvolvedores bare-metal do processador Nios® II
A página do Centro de desenvolvedores de Bare-Metal do processador Nios II ajudará você a iniciar o desenvolvimento de bare metal sem um sistema operacional (SO) ou um sistema operacional em tempo real (RTOS).
Introdução
O desenvolvimento Bare-metal usa um ambiente de tempo de execução de software sem um sistema operacional (SO) ou um sistema operacional em tempo real (RTOS). Para oferecer suporte ao desenvolvimento bare-metal, a Intel oferece uma biblioteca de camada de abstração de hardware (HAL) para o processador Nios II na Intel® FPGAs. Você pode usar essa biblioteca como um pacote de drivers de dispositivo para os sistemas de processadores Nios II dentro do FPGA e fornecer uma interface consistente com os periféricos do seu sistema.
Os links a seguir ajudarão você a começar o desenvolvimento em bare-metal no FPGAs Intel. 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 cursos de treinamento, download de software, recursos de acesso e muito mais.
Considerações de projeto
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
- Facilidade na validação e análise de cobertura de código
Você também pode considerar o desenvolvimento de bare metal se você:
- Não exija operações multitarefa ou multi-thread
- Estão executando a criação de placa e precisam se concentrar em cada periférico individualmente
- Estão reutil utilizando um código herdado existente que já está desenvolvido como bare metal
Considerações sobre Bare-Metal
Para desenvolver uma aplicação bare-metal para o processador Nios II, 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 no 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, como uma aplicação bare metal típica 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 o esforço que pode fazer para se familiarizar com os pontos acima, é recomendável que você considere usar uma solução comercial Linux* ou RTOS.
Alternativas Bare-Metal
Levando em conta as considerações acima, muitas vezes faz sentido usar um sistema operacional para obter o desempenho máximo do processador Nios II com mínimo esforço.
A tabela a seguir mostra uma comparação básica entre um SO Linux e um RTOS.
Critérios |
SO Linux |
RTOS |
---|---|---|
Principal diferença |
A programação de tarefas no sistema operacional Linux não é baseada em prioridade, portanto, todos os threads são tratados de forma justa. Esta política de equidade permite uma alta taxa de transferência geral de computação, mas com a desvantagem da latência de despacho ilimitada. As latências de agendamento no Linux geralmente se acumulam com o número aumentado de threads para programar e executar. |
RTOS é um sistema baseado em prioridade e oferece agendamento de tarefas preventivo para garantir uma resposta oportuna e determinística a eventos ou interrupções. Threads críticos de alta prioridade e tempo são executados em preferência para threads de menor prioridade. Os threads em um RTOS têm latência limitada. Um processo ou thread é executado dentro de um prazo especificado. |
Aplicativo |
Ideal para aplicativos que exigem alta taxa de transferência geral de computação e não são críticos em termos de tempo. |
Ideal para aplicativos que exigem uma resposta muito rápida e previsível. |
Recurso |
Requer recursos significativos da CPU e um grande tamanho de memória. |
Leve e requer um espaço de memória menor. |
Prática de codificação |
Normalmente nenhuma adesão a políticas de codificação rigorosas. |
Adere a políticas de codificação rigorosas porque o código deve desempenhar continuamente um desempenho consistente. |
SO Linux
Com a introdução de uma unidade de gerenciamento de memória (MMU) para o processador Nios II, você tem uma ampla variedade de fornecedores de Linux para escolher. Do suporte comercial, líderes do setor a uma distribuição de código aberto, os parceiros de Linux embarcado da Intel oferecem o nível certo de suporte para seu projeto Linux.
- RocketBoards.org - Consulte o manual do usuário do Nios II Linux para uma distribuição Linux de código aberto suportada pela comunidade
- LinuxLink by Timesys — Selecione Intel FPGA do fabricante na guia filtro de Placas
- Wind River - Selecione Intel FPGA entre fornecedores de hardware na guia Pacotes de suporte para placas
- Soluções de nível de sistema (SLS) — selecione o Pkgs de suporte de placa desejado na aba Downloads
RTOS
Usar um RTOS simples é fácil. É semelhante ao uso de bibliotecas C de funções que já são implementadas em vez de escrever essas funções você mesmo. Alguns RTOS oferecem suporte total para todos os periféricos, enquanto outros oferecem suporte apenas para um subconjunto. Nos casos em que apenas um subconjunto dos periféricos é suportado pelo RTOS que você escolheu, o código HAL oferece o suporte adicional necessário. Para obter detalhes, consulte a página Nios II ecossistema de processadores .
Uma avaliação gratuita do MicroC/OS-II RTOS e o código fonte em ANSI C completo estão incluídos com a instalação do Nios II Embedded Design Suite (EDS). Para obter detalhes, consulte a página do sistema operacional em tempo real Micrium MicroC/OS-II .
Diagrama de fluxo de projeto
A figura abaixo ilustra o fluxo geral de desenvolvimento do sistema do processador Nios II.
O fluxo de desenvolvimento do processador Nios II consiste em três elementos da seguinte forma:
- Projeto de hardware
- Design de software
- Projeto de sistema, envolvendo hardware e software
Você inicia o desenvolvimento do processador Nios II desenvolvendo um conceito de sistema e realizando uma análise dos requisitos do sistema. Em seguida, você cria e gera o sistema no Platform Designer e produz um arquivo .sopcinfo. O Platform Designer inclui Nios II núcleos de processador, componentes padrão, instruções personalizadas e lógica periférica. Após a geração do sistema, os fluxos de hardware e software podem ser iniciados.
Para Nios II desenvolvimento de hardware do processador, você deve:
- Integre o sistema Platform Designer ao projeto de software Intel® Quartus® Prime.
- Atribua locais de pinos.
- Configure os requisitos de temporização e outras restrições de projeto.
- Após compilar o projeto do hardware, baixe o arquivo .sof para a placa de destino.
Para Nios II desenvolvimento de software do processador, você deve:
- Desenvolva seu software com as Nios II Software Build Tools (SBT) for Eclipse. O software Nios II inclui os HAL, drivers periféricos, códigos de aplicativos C/C++ do usuário e bibliotecas personalizadas.
- Baixe o arquivo .elf para o sistema do processador Nios II na placa de destino após construir o pacote de suporte de aplicativo e placa (BSP). O sistema do processador Nios II está pronto para testes e depuração.
Se você descobrir que seu software não atende às especificações durante o teste, retorne ao início do fluxo do software e verifique os códigos, drivers e BSP da aplicação para corrigir quaisquer erros e garantir que o sistema Nios II processador seja executado corretamente.
Se o hardware não atender às especificações, retorne ao sistema Platform Designer definido e passo da geração, e reinicie o fluxo de hardware e software. O arquivo principal necessário para gerar o software de aplicativo é o arquivo de informações do Platform Designer (.sopcinfo). Como este arquivo descreve componentes e conexões de hardware, você deve regenerar este arquivo se fizer uma alteração de hardware. O sistema está completo quando o software e o hardware atendem às especificações.
2. Primeiros passos
Selecione a placa de destino
Recomendamos iniciar seu desenvolvimento em um kit de avaliação ou desenvolvimento fornecido pela Intel porque a maioria dos exemplos disponíveis são direcionados para execução nessas placas.
- Nios II kits de avaliação do processador:
- Baixo custo, fácil de usar
- Cheio de exemplos de projetos, tutoriais e exemplos de software
- Muitos Nios II exemplos de projetos e softwares contribuídos pela comunidade de processadores no Intel FPGA site Wiki
- Exemplo: Intel® MAX® 10 FPGA Nios® II Embedded Evaluation Kit (NEEK)
- Intel FPGA kits de desenvolvimento:
- Todos os novos kits incluem exemplos de projeto de processadores Nios II pré-embalados chamados Portal de atualização de placa
- Introdução ao projeto de um processador e controle de acesso à mídia Ethernet (MAC) com uma aplicação de servidor web HTML
Consulte todos os kits de desenvolvimento para obter uma lista de placas disponíveis. Para ver a lista de exemplos de projetos específicos para placas que estão disponíveis na Design Store, selecione o kit de desenvolvimento desejado no menu suspenso.
Instale Nios II Embedded Design Suite (EDS)
Para instalar o Nios II Embedded Design Suite (EDS), primeiro é necessário baixar o software Intel® Quartus® Prime no Centro de download. O Intel FPGA instalação e licenciamento de software fornece instruções detalhadas para download e instalação do software Intel® Quartus® Prime, que inclui o Nios II EDS.
O Nios II EDS é um pacote de desenvolvimento abrangente para Nios II projetos de software. O Nios II EDS contém não apenas ferramentas de desenvolvimento, mas também software, drivers de dispositivos, uma biblioteca de HAL bare-metal, um software de pilha de rede de nível comercial e uma versão de avaliação de um RTOS.
Crie seu primeiro sistema com processador Nios II
O AN 717: Tutorial de desenvolvimento de hardware Nios II e manual do desenvolvedor de software Nios® II apresentam o fluxo de desenvolvimento do sistema para o processador Nios II. Usando o software Intel® Quartus® Prime e o Nios II EDS, você cria um projeto de sistema de hardware Nios II e cria um programa de software que é executado no sistema Nios II e faz interface com componentes em placas de desenvolvimento da Intel®.
3. Criar seu próprio projeto
Tipos de projetos bare-metal
Existem dois tipos diferentes de projetos que podem ser gerenciados pelo Nios II EDS.
A tabela a seguir ilustra as diferenças entre os dois tipos de projeto, além da GUI Eclipse.
Recurso |
Projeto baseado em GUI |
Projeto baseado em linha de comando |
---|---|---|
Descrição do tipo de projeto | Projeto baseado na Interface Gráfica do Usuário (GUI)
|
Projeto baseado em linha de comando
|
Gerenciamento de arquivos de origem do projeto |
Especifique fontes automaticamente, por exemplo, arrastando e caindo no projeto |
Especifique fontes manualmente usando argumentos de comando |
Depuração |
Sim |
Importação de projetos para ambientes Eclipse |
Integra-se a scripts de shell personalizados e fluxos de ferramenta |
Não |
|
Método recomendado para criar seu projeto
Escrever software para o processador Nios II é semelhante à gravação de software para qualquer outra família de microcontroladores. Modificar o código existente é uma maneira comum e fácil de aprender a escrever software em um novo ambiente. O Nios II EDS oferece muitos exemplos de projetos de software que você pode examinar, modificar e usar em seus próprios programas.
Cada Nios II exemplo do programa de processador consiste em um projeto de aplicação, projetos de biblioteca de usuários opcionais e um projeto BSP.
- Projeto de aplicação: consiste em uma coleção de código-fonte, além de um makefile. Uma característica típica de um aplicativo é que um dos arquivos de origem contém a função principal( ). Um aplicativo inclui código que chama funções em bibliotecas e BSPs. O makefile compila o código-fonte e os conecta com um BSP e uma ou mais bibliotecas opcionais para criar um arquivo .elf.
- User library project: é uma coleção de código-fonte compilado para criar um único arquivo arquivo de biblioteca (.a). As bibliotecas geralmente contêm funções reutilizáveis e de uso geral que vários projetos de aplicação podem compartilhar. Uma coleção de funções aritméticas comuns é um exemplo.
- Projeto BSP: é uma biblioteca especializada que contém código de suporte específico do sistema, como o HAL, uma biblioteca padrão Newlib C personalizada opcional, drivers de dispositivo, pacotes de software opcionais e um sistema operacional opcional em tempo real.
Siga estas etapas para criar um projeto de software com a Nios II SBT:
- Obtenha o projeto de hardware no qual o software deve ser executado. Independentemente de ser um exemplo de projeto de processador Nios II ou um projeto desenvolvido por outra pessoa, você precisa ter o arquivo de informações DE SOPC (.sopcinfo).
- Gere um arquivo de configurações BSP (settings.bsp) e, em seguida, um makefile BSP depois de definir os recursos que seu BSP requer.
- Crie uma biblioteca de usuários (opcional). Se você precisar incluir uma biblioteca de usuários de software personalizada, colete os arquivos de origem da biblioteca de usuários em um único diretório e gere um makefile da biblioteca de usuários.
- Escreva o código fonte do seu aplicativo e gere um makefile de aplicativo.
- Crie o projeto de software para produzir um arquivo .elf e executar o aplicativo na sua placa.
A Nios II SBT inclui ferramentas para criar makefiles, que são fundamentais para a construção de Nios II projetos C e C++. Não é necessário usar os makefiles gerados se você preferir escrever o seu próprio. No entanto, recomendamos que você gerencie e modifique seus filtros BSP usando a SBT.
Para saber mais, consulte o manual Nios® II desenvolvedor de software.
4. Exemplos
Exemplos de projeto
Existem muitos exemplos de projetos disponíveis na Loja de projetos da Intel para ajudá-lo a começar a usar Intel FPGA produtos. Todos os exemplos podem ser usados como ponto de partida para seus próprios projetos, e alguns exemplos são personalizados para kits de desenvolvimento específicos. Pesquise por exemplos de projeto de processadores Nios II selecionando Nios II no menu pull-down do núcleo IP. Você também pode filtrar outros critérios de pesquisa, como família de dispositivos, kit de desenvolvimento e versão de software Intel® Quartus® Prime.
Como inicializar um aplicativo do processador Nios II?
Para saber como inicializar uma aplicação do processador Nios II, consulte a seção Nios II Configuração e Soluções de inicialização no manual de projetos embarcados.
Há várias opções de inicialização ou execução de software disponíveis com o processador Nios II. Você pode configurar o processador Nios II para inicializar e executar softwares de diferentes locais da memória.
memórias de inicialização suportadas pelo processador Nios II:
- Flash de interface flash comum (CFI)
- Memória flash do usuário (UFM) em dispositivos Intel® MAX® 10 FPGA
- Dispositivo de configuração EPCQ flash serial
- Flash com interface periférica serial (QSPI) quad
- Memória em chip (OCRAM)
Nios II opções de inicialização do processador:
- Execução no local
- Copiada da memória flash para a RAM usando a copiadora de inicialização
5. Recursos adicionais
Centro de suporte
A ajuda está a apenas um clique! O Centro de suporte oferece recursos técnicos on-line, desde aulas de treinamento até exemplos de designs a fóruns que o orientam em todas as etapas 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. Ele também é totalmente pesquisável.
Comunidade Intel FPGA
A Comunidade Intel é um site da comunidade que permite a colaboração entre usuários Intel FPGA. Confira a seção Nios II Embedded Design Suite (EDS) em FPGA Developers. Use o mecanismo de pesquisa para encontrar o material relevante. Você também está incentivado a atualizar e contribuir.
Minha Intel
Sua conta My Intel permite que você apresente uma solicitação de serviço para obter ajuda sobre tópicos específicos. Você também pode usá-lo para se inscrever em aulas de treinamento e acessar outros recursos. O registro é obrigatório.
Aprendizagem fundamental - Aulas de treinamento
A tabela a seguir lista as aulas de treinamento básico que você pode fazer antes de começar a desenvolver seu projeto.
Curso |
Habilidades desenvolvidas |
---|---|
O processador Nios® II: camada de abstração de hardware (34 minutos de curso on-line) |
|
O processador Nios II: introdução ao desenvolvimento de software (30 minutos de curso on-line) |
|
Usando o processador Nios II: componentes e instruções personalizadas (11 minutos de curso on-line) |
|
Usando o processador Nios II: desenvolvimento de hardware (27 minutos de curso on-line) |
|
Documentação e recursos adicionais
A documentação a seguir serve como uma referência principal para o processador Nios II.
- O manual do desenvolvedor de software Nios II descreve as informações básicas necessárias para desenvolver software embarcado para o processador Nios II Gen2. Os capítulos neste manual descrevem o ambiente de desenvolvimento de software Nios II do processador, o Nios II ferramentas Embedded Design Suite (EDS) disponíveis e o processo para desenvolvimento de software.
- O Manual de projetos embarcados complementa a documentação principal para o desenvolvimento de sistemas embarcados. Ele descreve como usar as ferramentas com mais eficácia e recomenda estilos e práticas de design para desenvolvimento, depuração e otimização de sistemas embarcados usando ferramentas fornecidas pela Intel. O manual também introduz conceitos aos novos usuários das soluções embarcadas da Intel e ajuda a aumentar a eficiência de design de um usuário experiente.
- O Guia de referência do processador Nios II descreve o Nios II processador Gen2 a partir de uma descrição conceitual de alto nível até os detalhes de baixo nível da implementação. Os capítulos neste manual descrevem a arquitetura do processador Nios II, o modelo de programação e o conjunto de instruções.
- O Guia do usuário de periféricos IP embarcados descreve os núcleos de IP fornecidos pela Intel que funcionam perfeitamente com o processador Nios II e estão incluídos no software de projeto Intel® Quartus® Prime. Os núcleos IP são otimizados para dispositivos Intel® e podem ser implementados com facilidade para reduzir o tempo de projeto e teste.
Para uma lista completa de documentação Nios II relacionada ao processador, acesse a página de Suporte ao processador Nios II.
Vídeos de engenheiro para engenheiro
Explore o pool de vídeos "Como fazer" que são trazidos até você por engenheiros da Intel®. O Intel® FPGA Vídeos rápidos contém vídeos "tu"para ajudar você a desenvolver seus projetos FPGA.
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.