Emulando sistemas Linux embarcados com QEMU

Emulando sistemas Linux embarcados com QEMU

 

1. Introdução

O desenvolvimento de software embarcado depende de dispositivos de hardware embarcados, como placas de desenvolvimento, dispositivos de módulos externos, etc., mas se o trabalho de depuração não tem nada a ver com periféricos, apenas a depuração do kernel pode ser simulada usando o QEMU sem a compra de hardware.

Está disponível para hosts Linux e Windows e destinos PowerPC, ARM, MIPS e SPARC emulados. O QEMU adota a abordagem de fornecer uma camada de tradução mínima entre o host e o processador de destino. O processador host é aquele que executa o emulador e o processador de destino é o que está sendo emulado.

A seguir, uma introdução detalhada ao processo de configuração do ambiente de desenvolvimento QEMU.

 

2. Ambiente

2.1 Ambiente usado

* Ubuntu-18.04.1

OU:

* PC: Windows10

* Máquina Virtual:VirtualBox-5.18

* SO Virtual:Ubuntu-18.04.1

* Placa de desenvolvimento simulado: vexpres

2.2 Ferramentas usadas na configuração do ambiente

* qemu-4.2.0

* linux-4.14.172 (Kernel Linux)

*u-boot-2017.05

* caixa ocupada-1.31.1

* braço-linux-gnueabi-gcc

Coloque todos os arquivos relacionados em /home/joe/qemu

3. Instale ferramentas de compilação cruzada

# sudo apt instalar gcc-brafrin-linux-gnueabi

 

Verifique se a instalação foi bem sucedida

$ arm-linux-gnueabi-gcc -v

Usando built-inspecs.

COLLECT_GCC=arm-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/7/lto-wrapper

Alvo: arm-linux-gnueabi

Configurado com: ../src/configure -v –with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04′–with-bugurl=file:///usr

Modelo de rosca: posix

gcc versão 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)

 

4. Configurar e compilar o kernel do Linux

4.1 Baixe o Kernel Linux

Baixe a versão do kernel necessária em www.kernel.org.

Aqui eu baixo a versão relativamente mais recente do kernel com suporte de longo prazo linux-4.4.157

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.157.tar.xz  para o diretório /qemu

4.2 Descompacte o kernel do Linux

# tar xvJf linux-4.4.157.tar.xz

4.3 Compilar Kernel Linux

// Digite o diretório do arquivo de origem do kernel

#cd linux-4.4.157

make CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm vexpress_defconfig

make CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm menuconfig

Se a execução do menuconfig mostrar que o pacote ncurses está ausente, basta executar o seguinte comando para instalá-lo)

$ sudo apt-get install libncurses5-dev

Entre na configuração do menu e faça as seguintes configurações

Compilar com cadeia de ferramentas cruzada

Após a compilação bem-sucedida, gere um arquivo de imagem do kernel no diretório

arch/arm/boot, zImage e dtb podem ser copiados em uma pasta separada para uso conveniente

 

5. Instale as Ferramentas QEMU

5.1 Instalar o QEMU

* wget https://download.qemu.org/qemu-4.2.0.tar.xz

* tar xvJf qemu-4.2.0.tar.xz

*cd qemu-4.2.0

5.2 Instale pacotes dependentes antes de configurar o QEMU

# apt instala zlib1g-dev
# apt instalar libglib2.0-0 libglib2.0-dev
# apt instalar libsdl1.2-dev
# apto instalar libpixman-1-dev libfdt-dev

Para evitar que os arquivos fiquem confusos após a compilação, crie o diretório do construtor como o caminho de destino intermediário para a compilação.

Configure, compile e instale o QEMU.

5.3 Configure o QEMU para suportar todas as placas sob a arquitetura do braço

# ../configure -tart-list = braço-softmmu -Audio-drv-list =

Se o pixman estiver ausente quando o prompt a seguir for exibido,

use sudo apt-get install libpixman-1-dev para instalá-lo.

5.4 Ver versão do QEMU

5.5 Ver placas de desenvolvimento suportadas pelo QEMU

5.6 Executar QEMU

# qemu-system-arm -M vexpress-a9 -m 512M -kernel ./zImage -dtb ./vexpress-v2p-ca9.dtb -nographic -append “console=ttyAMA0”

OU:

$ pwd

/home/joe/qemu

# qemu-system-arm -M vexpress-a9 -m 512M -kernel linux-.4.157/arch/arm/boot/zImage -dtb linux-4.4.157/arch/arm/boot/dts/vexpress-v2p-ca9. dtb -nographic -append “console=ttyAMA0”

Para testar melhor e iniciar o qemu, você pode criar o script de inicialização start.sh e dar permissão ao script para executar chmod +x start.sh

 

#! / Bin / bash

 

braço do sistema qemu \

-M vexpress-a9 \

-m 512M\

-kernel /home/joe/jemu/linux-4.4.157/arch/arm/boot/zImage\

-dtb /home/joe/jemu/linux-4.4.157/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \

-nográfico \

-acrescentar “console=ttyAMA0”

 

6. Crie um sistema de arquivos raiz

Use o busybox para criar um sistema de arquivos raiz simples.

6.1 Baixe a ferramenta busybox

Baixe o busybox em https://busybox.net/downloads/

# wget https://busybox.net/downloads/busybox-1.31.1.tar.bz2

# tar xjvf busybox-1.31.1.tar.bz2

#cd busybox-1.31.1

# faz defconfig

# make CROSS_COMPILE=arm-linux-gnueabi-

# make install CROSS_COMPILE=arm-linux-gnueabi-

As informações a seguir são solicitadas, indicando que a instalação foi bem-sucedida.

Após a conclusão da instalação, o arquivo de destino gerado assume como padrão o diretório ./_install.

 

6.2 Gerar sistema de arquivos raiz

6.2.1 compilar e instalar o busybox

#mkdir rootfs

# sudo cp -r _install/* rootfs/

6.2.2 Adicionar biblioteca glibc, adicionar carregador e biblioteca dinâmica no sistema de arquivos raiz

# sudo cp -r _install/* rootfs/

# sudo cp -p /usr/arm-linux-gnueabi/lib/* rootfs/lib/

6.2.3 Crie 4 dispositivos terminais tty (c significa dispositivo de caractere, 4 é o número do dispositivo principal e 1~4 são os números do dispositivo secundário, respectivamente)

 

6.3 Faça a imagem do sistema de arquivos do cartão SD

6.3.1 Gerar uma imagem de cartão SD vazia

# dd if=/dev/zero of=rootfs.ext3 bs=1M contagem=32

6.3.2 Formatar cartão SD como sistema de arquivos exts

#mkfs.ext3 rootfs.ext3

6.3.3 Gravar rootfs no cartão SD

# sudo mount -t ext3 rootfs.ext3 /mnt -o loop

# sudo cp -rf rootfs/* /mnt/

# sudoumount /mnt

 

7. Verifique

7.1 Iniciar Qemu

Execute o seguinte comando para testar, verifique se o kernel compilado pode ser executado com sucesso

# sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel ~/qemu/zImage –dtb ~/qemu/vexpress-v2p-ca9.dtb -nographic -append “console=ttyAMA0”

Ou usando o script:

 

No teste acima, o kernel reportará pânico, sugerindo que não temos o sistema de arquivos raiz.

O problema acima é devido à ferramenta busybox gerada no ambiente x86.

Usamos make install ao instalar o busybox, então você deve usar

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install

 

A ferramenta de compilação gera a ferramenta busybox usada pela plataforma arm

# arquivo rootfs/bin/busybox

rootfs/bin/busybox: executável LSB de 32 bits ELF, ARM, EABI5 versão 1 (SYSV), vinculado dinamicamente, interpretador /lib/ld-, para GNU/Linux 3.2.0, BuildID[sha1]=cbcd33b8d6c946cb19408a5e8e714de554c87f52, removido

 

7.2 Verifique novamente

Agora, o Qemu iniciou o kernel Linux e montou o sistema de arquivos com sucesso, podendo interagir com o sistema com funções simples através do terminal serial. O problema de não poder rodar /etc/init.d/rcS no processo de impressão, você só precisa adicionar o arquivo /etc/init.d/rcS. O conteúdo do arquivo pode ser uma instrução de prompt.

 

7.3 Sair do QEMU

Duas maneiras de sair do qemu

* Em outra entrada de terminal: mate todos os qemu-system-arm

* Na entrada do Qemu: Ctrl+A; X

QEMU: Terminado

 

8. Inicie o kernel Linux através do u-boot

Os sistemas embarcados geralmente incluem: u-boot, kernel, rootfs e appfs. A relação posicional dessas peças na placa de desenvolvimento ARM mostrada na figura abaixo

 

Carregador de inicialização Parâmetros de inicialização Núcleo rootfs Aplicativos

 

Rootfs pode ser executado em placa ou PC

 

8.1 Preparar o U-boot

8.1.1 Baixar u-boot

http://ftp.denx.de/pub/u-boot/, usamos: u-boot-2021.01.tar.bz2

# tar -jxvf u-boot-2018.09.tar.bz2

8.1.2 Compilar u-boot

# vim Makefile

CROSS_COMPILE = arm-linux-gnueabi-

#vimconfig.mk

ARCO = braço

# make vexpress_ca9x4_defconfig, erro

Necessidade: sudo apt install bison

sudo apt instalar flex

então: # make -j4 error

Necessário: export CROSS_COMPILE=arm-linux-gnueabi-

exportar ARCH = arm

novamente: # make vexpress_ca9x4_defconfig

# make -j4

 

 8.1.3 Teste, inicie o u-boot

$ sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot-2021.01/u-boot –nográfico

 

8.2 Compilação da configuração do kernel

Use u-boot para inicializar a imagem do kernel:

Precisa compilar o kernel no formato uImage,

Precisa especificar o endereço de carregamento de uImage na memória

Especifique ao compilar o kernel: make LOADADDR=? uImagem -j4

 

# cd /home/joe/qemu/linux-4.4.157

#faça LOADADDR=0x60003000 uImage -j4

 

Após a conclusão da compilação do u-boot, um arquivo mkimage será gerado na pasta de ferramentas, copie este arquivo para a pasta bin no diretório do compilador cruzado.

$cdqemu/linux-4.4.157

Erro:

$ sudo apt instalar u-boot-tools

Obter uImage

9. Configurações de função de rede QEMU

Quando a máquina virtual Qemu inicia no u-boot, o uImage precisa ser carregado na memória e o uImage pode ser baixado para o endereço especificado na memória através do servidor TFTP.

9.1 Verifique se o kernel do host suporta o módulo tun/tap

// Instala as duas ferramentas das quais a rede em ponte depende

# sudo apt install uml-utilities bridge-utils

Criar arquivo de dispositivo tun: /dev/net/tun (geralmente criado automaticamente)

Modifique o /etc/network/interfaces (configure a rede, reinicie para entrar em vigor)

# sudo vim /etc/network/interfaces

auto loiface lo inet loopbackauto enp0s3 // nome da placa de rede virtualauto br0iface br0 inet dhcpbridge_ports enp0s3

 

NUNCA Reinicie

# reinicializar

Em seguida, verifique o ambiente de rede do Qemu

A porta de rede virtual br0 é a porta de rede para a comunicação entre a máquina virtual Qemu e o host Linux.

 

10. Instale o servidor TFTP

Crie um servidor TFTP para baixar o uImage para a memória ao iniciar o uImage para a placa de desenvolvimento de simulação Qemu

 

10.1 Instale a ferramenta tftp

 

$ apt-get install tftp-hpa tftpd-hpa xinetd

 

10.2 Modifique o arquivo de configuração e defina o diretório do servidor TFTP

# sudo vim /etc/default/tftpd-hpa

......

TFTP_DIRECTORY =”/home/joe/tftpboot”

......

10.3 Crie um diretório tftp no host Linux

# mkdir /home/joe/tftpboot

#chmod 777 /home/joe/tftpboot

 

10.4 Reinicie o serviço tftp

# sudo /etc/init.d/tftpd-hpa reiniciar

 

10.5 Definir parâmetros de inicialização do kernel no u-boot

copie uImage e cexpress-v2p-ca9.dtb para tftpboot

Inicie o Qemu para verificar

 

$ sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot-2021.01/u-boot –nographic -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 -sd rootfs. ramal3

 

Agora, o diretório rootfs é um sistema de arquivos raiz simples, que pode ser transformado em um arquivo espelho, e o arquivo espelho pode ser gravado na placa de desenvolvimento, ou o kernel Linux pode ser iniciado pelo u-boot no Qemu e montado no arquivo espelho. Ele também pode ser configurado para inicializar via sistema de arquivos de rede NFS.

 

11. Monte o sistema de arquivos NFS

11.1 Instalar e configurar o serviço NFS

NUNCA instale

$ sudo apt instalar servidor nfs-kernel

 

11.1.2 Configuração

$ sudo mkdir /home/joe/qemu/rootfs

$ sudo chown none:nogroup /home/joe/qemu/rootfs

$ sudo chmod 777 /home/joe/qemu/rootfs

$ sudo nano /etc/exportações

Adicione: /home/joe/qemu/rootfs *(rw,sync,no_root_squash)

 

Reinicie o servidor nfs:

$ sudo /etc/init.d/nfs-kernel-server restart

Ou: $systemctl restart nfs-kernel-server

 

Verifique se o diretório compartilhado NFS foi criado

$ sudo showmount –e

Ao usar o sistema de arquivos de rede NFS, o host Linux precisa fechar o firewall do sistema, caso contrário, ocorrerão anormalidades quando o sistema estiver em execução.

 

Conclusão

Espero que, com a ajuda deste blog, você saiba mais sobre o QEMU. Todas as técnicas demonstradas acima foram usadas em várias submissões ao nosso programa. Não há uma maneira única e fixa de emular com o QEMU. Explore diferentes técnicas e veja o que funciona para você. Familiarize-se com o conhecimento e você ficará surpreso em como ele pode ajudá-lo de maneiras inesperadas.

Introdução ao projeto integrado de exibição oriental

Introdução ao projeto integrado de exibição oriental

Orient Display é um dos principais monitores do mundo Fabricantes de monitores LCD que foi fundada em 1996 por executivos com mais de 25 anos de experiência em P&D e produção. Além da exibição, a Orient Display também se concentrou em tecnologias embarcadas que incluem arquitetura ARM e acumulou uma rica experiência em produtos incorporados.

Agora os Serviços Técnicos da Orient Display incluem hardware, software e consultoria.

 

NOSSO Equipe de hardware faça protótipos no menor tempo possível de acordo com suas ideias e requisitos de design. Nós nos especializamos no projeto de placas econômicas ou complexas de alto desempenho para atender às suas necessidades de alta confiabilidade em um curto ciclo de desenvolvimento.

– Projeto Esquemático

– Disposição da placa de circuito impresso

– Personalização de produtos da indústria

 

NOSSO Equipe de software é especialista em Linux Designs ARM®Processador PowerPC e x86, para citar alguns. Como fornecedor de soluções completas para Linux, Android e WinCE em sistemas embarcados, podemos resolver os problemas relacionados ao sistema de ponta a ponta de seus produtos.

– Migração, otimização e customização do sistema

– Impulsionar o desenvolvimento

– Adaptação do Kernel

- Portando LINUX KERNEL para ARM, PPC ou placa x86

– Desenvolvimento de APP (aplicativo, Linux QT, Linux C/++)

 

NOSSO FAE Profissionais também oferece uma gama completa de tecnologias para seus produtos ou produtos semiacabados.

– Prestamos consultoria sobre recursos de software e hardware de nossos produtos;

– Resolvemos problemas encontrados durante o uso de manuais de software e hardware de nossos produtos;

– Suporte técnico pós-venda OEM e ODM;

- Manutenção e atualização de dados;

– Os produtos Orient Display são apoiados por nossos Garantia de preço mais baixo.

 

Sequência de Desenvolvimento

 

1. Análise de Requisitos do Sistema

* Tarefas de design, objetivos, especificações

– Isso fornecido por nossos clientes

*Requisito funcional e não funcional

– Incluir desempenho do sistema, custo, consumo de energia, volume, peso e outros fatores

 

2. Projeto de Arquitetura

Uma boa arquitetura é a chave para o sucesso do projeto. Nesta etapa, muitas vezes é necessário fazer as seguintes coisas:

  • Selecione o chip principal:

— ARM Cortex A, R ou M, ou PowerPc ou ColdFire

  • Determine o RTOS:

- Linux, uClinux, Vxworks, freeRTOS, WinCE

  • Selecione Exibir:

- Painel TFT, TFT legível à luz solar, Painéis de vidro LCD, LCD gráfico,  Tela OLED, Painéis de toque, Visor LCD embutido or Exibição feita sob encomenda by Orientar exibição

  • Linguagem de programação:

- c/c++, python, Java

  • Ferramentas de desenvolvimento:

u-boot, busybox, QT, Ubuntu, stm32CubeIde, visual studio, android studio, keil uVision, RT-Tread studio

 

3. Co-design de Hardware e Software

Para encurtar o ciclo de desenvolvimento do produto:

Hardware:  Normalmente começamos o projeto a partir da placa de avaliação, como a tela do oriente AIY-A002M, AIY-A003M e AIY-A005M. mais tarde vai a placa customizada para caber no projeto, descarte as peças que não precisa.

Sequência de Desenvolvimento de Software:

  • Normalmente escolhemos o u-boot como Bootloader, ele 1) init cpu para o estado conhecido 2) init memória 3) init interrupt 4) init clock 5) carregar kernel para o endereço de execução
  • Configure o kernel:

1) configurar o sistema do kernel: * gerenciamento de memória, * sistemas de arquivos, * driver de dispositivo, * pilha de rede, * Sistemas de E / S

2) escrever driver de dispositivo de E/S *driver de dispositivo char, *driver de dispositivo de bloco, *driver de dispositivo de rede

  • Selecione os aplicativos:

* Selecione uma biblioteca de usuário * Construa um aplicativo de usuário * Configure o processo de inicialização * Construa FS raiz

 

4. SIntegração do sistema

Integre o software do sistema, hardware e dispositivos de execução juntos, depure, encontre e melhore os erros no processo de projeto da unidade.

 

5. Teste do Sistema

Teste o sistema projetado para ver se ele atende aos requisitos funcionais fornecidos na especificação. A maior característica do modelo de desenvolvimento de sistema embarcado é o desenvolvimento abrangente de software e hardware.

 

Conclusão

A Orient Display tem uma equipe incrível de especialistas talentosos com experiência e recursos para criar um módulo de exibição integrado desde o conceito até a produção.

Se você tiver alguma dúvida, entre em contato com nossos engenheiros em: tech@orientdisplay. com.

Como selecionar processadores ARM

Como selecionar processadores ARM

Introdução

A mais ampla gama de microprocessador núcleos para quase todos os mercados de aplicativos. Explorar ARM. Requisitos de desempenho, energia e custo para quase todos os mercados de aplicativos e processadores são cruciais. O desempenho do sistema depende muito de seu hardware; este artigo irá guiá-lo no estudo do processador ARM e será de grande ajuda na sua tomada de decisão.

 

Uma breve introdução ao ARM

Figura 1. Roteiro dos processadores ARM

 

Antes de 2003, havia processadores ARM clássicos, incluindo ARM7 (Arquitetura ARMv4), ARM9 (Arquitetura ARMv5), ARM11 (Arquitetura ARMv6). ARM7 não tem MMU (unidade de gerenciamento de memória), não pode executar sistemas multiusuário e multiprocessos, como Linux e WinCE. Só pode executar sistemas como ucOS e ucLinux que não precisam de MMU. ARM9 e ARM11 são CPUs embutidas com MMU, que podem rodar Linux.

Depois de 2003, quando se tratava da arquitetura ARMv7, ela recebeu o nome de Cortex e foi dividida em três séries: Cortex-A, Cortex-R e Cortex-M.

  • Cortex-A — núcleos de processador de aplicativos para sistemas de alto desempenho
  • Córtex-R - núcleos de alto desempenho para aplicativos em tempo real
  • Córtex-M - núcleos de microcontroladores para uma ampla gama de aplicativos incorporados

Simplificando, Cortex-A As séries são adequadas para aplicativos que possuem altos requisitos de computação, executam sistemas operacionais sofisticados e fornecem mídia interativa e experiência gráfica. Córtex-R são adequados para que exigem confiabilidade, alta disponibilidade, tolerância a falhas, manutenibilidade e resposta em tempo real. Córtex-M series destinam-se a MCUs sensíveis ao custo e à energia e aplicações finais.

 

Cortex-A versus Cortex-R versus Cortex-M

Cortex-A

A categoria de processadores Cortex-A é dedicada a dispositivos Linux e Android. Quaisquer dispositivos – a partir de smartwatches e tablets e continuando com equipamentos de rede – podem ser suportados por processadores Cortex-A.

  • Processadores Cortex-A (A5, A7, A8, A9, A12, A15 e A17) é baseado na arquitetura ARMv7-A
  • O conjunto de recursos comuns para processadores A inclui um mecanismo de processamento de mídia (NEON), uma ferramenta para fins de segurança (Trustzone) e vários conjuntos de instruções compatíveis (ARM, Thumb, DSP etc.)
  • Os principais recursos dos processadores Cortex-A são desempenho superior e eficiência de energia brilhante, agrupados para fornecer aos usuários o melhor serviço possível

As principais características do processador Cortex-A:

Cortex-A5: O Cortex A5 é o membro menor e de menor potência da série Cortex A, mas ainda pode demonstrar desempenho multicore, é compatível com os processadores A9 e A15.

Cortex-A7: O consumo de energia do A7 é quase o mesmo do A5, mas o desempenho fornecido pelo A7 é 20% superior ao do A5, bem como compatibilidade arquitetônica total com Cortex-A15 e Cortex-A17. O Cortex-A7 é a escolha ideal para implementações de smartphones e tablets sensíveis ao custo.

Contrex-A15: O Cortex-A15 é o membro de maior desempenho desta série, oferecendo o dobro do desempenho do A9. O A15 encontra sua aplicação em dispositivos de última geração, servidores de baixo consumo de energia e infraestrutura sem fio. Este é o primeiro suporte de processador para soluções de gerenciamento de dados e ambiente virtual.

Contrex-A17: O Cortex-A17 demonstra um desempenho 60% superior ao do A9. O objetivo principal é satisfazer as necessidades dos dispositivos de classe premium.

Contrex-A50: Contrex-A50, série mais recente, é construído na arquitetura ARMv8 e traz suporte para Arch64-bit, um sistema com eficiência energética. Uma razão óbvia para a mudança para 64 bits é o suporte de mais de 4 GB de memória física, que já é alcançado no Cortex-A15 e Cortex-A7.

 

Córtex-R

Os processadores Cortex-R visam aplicações em tempo real de alto desempenho, como controladores de disco rígido, reprodutores de mídia de equipamentos de rede e outros dispositivos semelhantes.

Córtex-R4:  Cortex-R4 é adequado para aplicações automotivas. Ele pode ter clock de até 600 MHz, possui um pipeline de 8 estágios com emissão dupla, pré-busca e um sistema de interrupção de baixa latência, tornando-o ideal para sistemas críticos de segurança.

Córtex-R5: O Cortex-R5 estende os recursos oferecidos pelo R4 e adiciona maior eficiência, confiabilidade e melhora o gerenciamento de erros. A implementação dual-core torna possível construir sistemas muito poderosos e flexíveis com respostas em tempo real.

Córtex-R7: O Cortex-R7 aumenta significativamente o desempenho. Eles apresentam um pipeline de 11 estágios e permitem a execução fora de ordem e a previsão de ramificação de alto nível. As ferramentas podem ser implementadas para multiprocessamento de passo de bloqueio, simétrico e assimétrico. O controlador de interrupção genérico é outro recurso significativo que deve ser mencionado.

 

Córtex-M

Cortex-M projetado especificamente para atingir o mercado de MCU. A série Cortex-M é construída na arquitetura ARMv7-M (usada para Cortex-M3 e Cortex-M4), e a menor Cortex-M0+ é construída na arquitetura ARMv6-M. É seguro dizer que o Cortex-M se tornou para o mundo de 32 bits o que o 8051 é para o de 8 bits – um núcleo padrão da indústria fornecido por muitos fornecedores. A série Cortex-M pode ser implementada como soft core em um FPGA, por exemplo, mas é muito mais comum encontrá-las implementadas como MCU com memórias, clocks e periféricos integrados. Alguns são otimizados para eficiência energética, alguns para alto desempenho e alguns são adaptados a um segmento de mercado específico, como medição inteligente

Para aplicativos que são particularmente sensíveis ao custo ou estão migrando de 8 bits para 32 bits, o menor membro da série Cortex-M pode ser a melhor escolha.

Córtex-M0: O Cortex-M0+ usa o conjunto de instruções Thumb-2 e possui um pipeline de 2 estágios. Recursos significativos são o barramento para GPIO de ciclo único e o buffer de micro trace.

Cortex-M3 e M4:  O Cortex-M3 e o Cortex-M4 são núcleos muito semelhantes. Cada um oferece um pipeline de 3 estágios, vários barramentos de 32 bits, velocidades de clock de até 200 MHz e opções de depuração muito eficientes. A diferença significativa é a capacidade do núcleo Cortex-M4 para DSP. O Cortex-M3 e o Cortex-M4 compartilham a mesma arquitetura e conjunto de instruções (Thumb-2). Se sua aplicação requer matemática de ponto flutuante, você fará isso consideravelmente mais rápido em um Cortex-M4 do que em um Cortex-M3. Dito isso, para um aplicativo que não está usando os recursos DSP ou FPU do Cortex-M4, você verá o mesmo nível de desempenho e consumo de energia em um Cortex-M3. Em outras palavras, se você precisa da funcionalidade DSP, escolha um Cortex-M4. Caso contrário, o Cortex-M3 fará o trabalho.

 

Conclusão

Figura 2. Visão geral do Cortex

 

Os processadores ARM oferecem uma variedade de recursos para diferentes propósitos. Com um pouco de reflexão e investigação, você poderá encontrar o processador certo que atende às necessidades de sua aplicação. seja para um tablet de última geração ou um nó de sensor sem fio de custo ultrabaixo.

É um desafio fazer a escolha certa do núcleo Cortex e transformar a ideia em realidade. Mas uma equipe de profissionais experientes pode cuidar de todas as questões e implementar conceitos de qualquer complexidade.

A Orient Display se concentrou em tecnologias relacionadas ao processador ARM por muitos anos e acumulou uma rica experiência no desenvolvimento e implementação de produtos de arquitetura ARM. Ao mesmo tempo em que lança continuamente plataformas de desenvolvimento e placas principais que atendem às necessidades gerais do mercado, também atende às necessidades de projetos individuais dos clientes. Fornecer serviços personalizados.

Nossa equipe de hardware pode produzir protótipos no menor tempo possível de acordo com suas idéias e necessidades de design. Nossa equipe de software pode ajudá-lo a personalizar todas as funções da camada do driver de corte.

Para entrar em contato conosco: e ajudaremos a fazer seus planos desde a ideia inicial até o produto final.