Emulación de sistemas Linux integrados con QEMU

Emulación de sistemas Linux integrados con QEMU

 

1. Introducción

El desarrollo de software integrado se basa en dispositivos de hardware integrados, como placas de desarrollo, dispositivos de módulos externos, etc., pero si el trabajo de depuración no tiene nada que ver con los periféricos, solo se puede simular la depuración del kernel utilizando QEMU sin comprar hardware.

Está disponible para hosts Linux y Windows y para destinos PowerPC, ARM, MIPS y SPARC emulados. QEMU adopta el enfoque de proporcionar una capa de traducción mínima entre el host y el procesador de destino. El procesador host es el que ejecuta el emulador y el procesador de destino es el que se está emulando.

La siguiente es una introducción detallada al proceso de configuración del entorno de desarrollo QEMU.

 

2. Medio Ambiente

2.1 Entorno utilizado

*Ubuntu-18.04.1

O:

* PC: Windows10

* Máquina virtual: VirtualBox-5.18

* Sistema operativo virtual: Ubuntu-18.04.1

* Tablero de desarrollo simulado: vexpres

2.2 Herramientas utilizadas al configurar el entorno

* qemu-4.2.0

* linux-4.14.172 (núcleo de Linux)

* u-boot-2017.05

* caja ocupada-1.31.1

* brazo-linux-gnueabi-gcc

Coloque todos los archivos relacionados en /home/joe/qemu

3. Instalar herramientas de compilación cruzada

# sudo apt install gcc-arm-linux-gnueabi

 

Verifique si la instalación es exitosa

$ brazo-linux-gnueabi-gcc -v

Utilizando inspecs incorporados.

COLLECT_GCC = arm-linux-gnueabi-gcc

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

Destino: arm-linux-gnueabi

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

Modelo de hilo: posix

gcc versión 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)

 

4. Configurar y compilar el kernel de Linux

4.1 Descargar el núcleo de Linux

Descargue la versión del kernel requerida de www.kernel.org.

Aquí descargo la versión de kernel compatible a largo plazo relativamente más reciente linux-4.4.157

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.157.tar.xz  al directorio /qemu

4.2 Descomprime el kernel de Linux

# tar xvJf linux-4.4.157.tar.xz

4.3 Compilar el kernel de Linux

// Ingrese el directorio del archivo fuente del kernel

#cdlinux-4.4.157

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

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

Si ejecutar menuconfig muestra que falta el paquete ncurses, simplemente ejecute el siguiente comando para instalarlo)

$ sudo apt-get install libncurses5-dev

Ingrese al menú de configuración y realice los siguientes ajustes

Compilar con cadena de herramientas cruzada

Después de una compilación exitosa, genere un archivo de imagen del kernel en el directorio

arch/arm/boot, zImage y dtb se pueden copiar en una carpeta separada para un uso conveniente

 

5. Instalar herramientas QEMU

5.1 Instalar 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 Instalar paquetes dependientes antes de configurar QEMU

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

Para evitar que los archivos se desordenen después de la compilación, cree el directorio del generador como la ruta de destino intermedia para la compilación.

Configurar, compilar e instalar QEMU.

5.3 Configure QEMU para admitir todas las placas bajo la arquitectura del brazo

# ../configure –target-list=arm-softmmu –audio-drv-list=

Si falta pixman cuando aparece el siguiente mensaje,

use sudo apt-get install libpixman-1-dev para instalarlo.

5.4 Ver versión QEMU

5.5 Ver placas de desarrollo compatibles con QEMU

5.6 Ejecutar QEMU

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

O:

$ pwd

/inicio/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 “consola=ttyAMA0”

Para realizar mejores pruebas e iniciar qemu, puede crear el script de inicio start.sh y otorgar permiso al script para ejecutar chmod +x start.sh

 

#! / Bin / bash

 

qemu-sistema-brazo \

-M vexpreso-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 \

-agregar "consola = ttyAMA0"

 

6. Cree un sistema de archivos raíz

Use busybox para crear un sistema de archivos raíz simple.

6.1 Descargar la herramienta busybox

Descarga busybox desde https://busybox.net/downloads/

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

# tar xjvf ocupadobox-1.31.1.tar.bz2

# cd caja ocupada-1.31.1

# hacer defconfig

# hacer CROSS_COMPILE=arm-linux-gnueabi-

# hacer instalar CROSS_COMPILE=arm-linux-gnueabi-

Se solicita la siguiente información, lo que indica que la instalación se realizó correctamente.

Una vez completada la instalación, el archivo de destino generado se establece de manera predeterminada en el directorio ./_install.

 

6.2 Generar sistema de archivos raíz

6.2.1 compilar e instalar busybox

# mkdir rootfs

# sudo cp -r _install/* rootfs/

6.2.2 Agregar biblioteca glibc, agregar cargador y biblioteca dinámica en el sistema de archivos raíz

# sudo cp -r _install/* rootfs/

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

6.2.3 Cree 4 dispositivos de terminal tty (c significa dispositivo de caracteres, 4 es el número de dispositivo principal y 1~4 son los números de dispositivo menor, respectivamente)

 

6.3 Hacer una imagen del sistema de archivos de la tarjeta SD

6.3.1 Generar una imagen de tarjeta SD vacía

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

6.3.2 Formatear la tarjeta SD como sistema de archivos exts

# mkfs.ext3 raízfs.ext3

6.3.3 Grabar rootfs en la tarjeta SD

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

# sudo cp -rf rootfs/* /mnt/

# sudo cantidad /mnt

 

7. Verificar

7.1 Iniciar Qemu

Ejecute el siguiente comando para probar, verifique si el kernel compilado se puede ejecutar correctamente

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

O usando Script:

 

En la prueba anterior, el kernel informará pánico, lo que sugiere que carecemos del sistema de archivos raíz.

El problema anterior se debe a la herramienta busybox generada en el entorno x86.

Usamos make install cuando instalamos busybox, por lo que debe usar

hacer ARCH=armar CROSS_COMPILE=armar-linux-gnueabi-instalar

 

La herramienta de compilación genera la herramienta busybox utilizada por la plataforma arm

# archivo rootfs/bin/busybox

rootfs/bin/busybox: ELF ejecutable LSB de 32 bits, ARM, EABI5 versión 1 (SYSV), enlazado dinámicamente, intérprete /lib/ld-, para GNU/Linux 3.2.0, BuildID[sha1]=cbcd33b8d6c946cb19408a5e8e714de554c87f52, eliminado

 

7.2 Verificar de nuevo

Ahora, Qemu inició el kernel de Linux y montó el sistema de archivos con éxito, y puede interactuar con el sistema con funciones simples a través de la terminal serial. El problema de no poder ejecutar /etc/init.d/rcS en el proceso de impresión, solo necesita agregar el archivo /etc/init.d/rcS. El contenido del archivo puede ser una pronta declaración.

 

7.3 Salir de QEMU

Dos formas de salir de qemu

* En otra entrada de terminal: matar a todos qemu-system-arm

* En la entrada de Qemu: Ctrl+ A; X

QEMU: Terminado

 

8. Inicie el kernel de Linux a través de u-boot

El sistema integrado generalmente incluye: u-boot, kernel, rootfs y appfs. La relación de posición de estas piezas en la placa de desarrollo ARM que se muestra en la siguiente figura

 

Cargador de arranque Parámetros de arranque Núcleo raíces aplicaciones

 

Rootfs puede ejecutarse en placa o PC

 

8.1 Preparar arranque en U

8.1.1 Descargar uboot

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 = brazo

# hacer vexpress_ca9x4_defconfig, error

Necesidad: sudo apt install bisonte

sudo apt instalar flex

entonces: # make -j4 error

Necesita: exportar CROSS_COMPILE = arm-linux-gnueabi-

exportar ARCH = armar

de nuevo: # hacer vexpress_ca9x4_defconfig

# hacer -j4

 

 8.1.3 Prueba, iniciar u-boot

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

 

8.2 Compilación de la configuración del kernel

Use u-boot para iniciar la imagen del kernel:

Necesita compilar el kernel en formato uImage,

Necesidad de especificar la dirección de carga de uImage en la memoria

Especifique al compilar el kernel: make LOADADDR =? uImage -j4

 

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

# hacer LOADADDR=0x60003000 uImage -j4

 

Una vez finalizada la compilación de u-boot, se generará un archivo mkimage en la carpeta de herramientas, copie este archivo en la carpeta bin en el directorio del compilador cruzado.

$cdqemu/linux-4.4.157

Error:

$ sudo apt install u-boot-herramientas

Obtener uImagen

9. Configuración de la función de red QEMU

Cuando la máquina virtual Qemu se inicia en u-boot, uImage debe cargarse en la memoria y uImage puede descargarse a la dirección especificada en la memoria a través del servidor TFTP.

9.1 Comprobar si el kernel del host es compatible con el módulo tun/tap

// Instale las dos herramientas de las que depende la red puenteada

# sudo apt install uml-utilities bridge-utils

Crear archivo de dispositivo tun: /dev/net/tun (generalmente se crea automáticamente)

Modifique /etc/network/interfaces (configure la red, reinicie para que surta efecto)

# sudo vim /etc/network/interfaces

auto loiface lo inet loopbackauto enp0s3 // nombre de la tarjeta de red virtualauto br0iface br0 inet dhcpbridge_ports enp0s3

 

NUNCA reiniciar

# reiniciar

Luego verifique el entorno de red de Qemu

El puerto de red virtual br0 es el puerto de red para la comunicación entre la máquina virtual Qemu y el host Linux.

 

10. Instalar servidor TFTP

Cree un servidor TFTP para descargar uImage a la memoria al iniciar uImage para la placa de desarrollo de simulación Qemu

 

10.1 Instalar la herramienta tftp

 

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

 

10.2 Modificar el archivo de configuración y configurar el directorio del servidor TFTP

# sudo vim /etc/default/tftpd-hpa

......

TFTP_DIRECTORY=”/inicio/joe/tftpboot”

......

10.3 Crear un directorio tftp en el host Linux

# mkdir / inicio / joe / tftpboot

# chmod 777 / home / joe / tftpboot

 

10.4 Reinicie el servicio tftp

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

 

10.5 Establecer los parámetros de inicio del kernel en u-boot

copie uImage y cexpress-v2p-ca9.dtb a tftpboot

Inicie 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. ext3

 

Ahora, el directorio rootfs es un sistema de archivos raíz simple, que se puede convertir en un archivo espejo, y el archivo espejo se puede grabar en la placa de desarrollo, o el kernel de Linux puede iniciarse mediante u-boot en Qemu y montarse en el archivo espejo. También se puede configurar para que arranque a través del sistema de archivos de red NFS.

 

11. Monte el sistema de archivos NFS

11.1 Instalar y configurar el servicio NFS

Instalación de 11.1.1

$ sudo apt install nfs-kernel-servidor

 

11.1.2 Configuración

$ sudo mkdir /home/joe/qemu/rootfs

$ sudo chown nadie: ningún grupo /home/joe/qemu/rootfs

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

$ sudo nano /etc/exportaciones

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

 

Reinicie el servidor nfs:

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

O: $systemctl reiniciar nfs-kernel-server

 

Compruebe si se crea el directorio compartido NFS

$sudo showmount –e

Cuando se utiliza el sistema de archivos de red NFS, el host de Linux debe cerrar el firewall del sistema; de lo contrario, se producirán anomalías cuando el sistema se esté ejecutando.

 

Conclusión

Con suerte, con la ayuda de este blog, conocerá más sobre QEMU. Todas las técnicas demostradas anteriormente se utilizaron en varias presentaciones a nuestro programa. No hay una forma única y fija de emular con QEMU. Explore diferentes técnicas y vea qué funciona para usted. Familiarícese con el conocimiento y se sorprenderá de cómo puede ayudarle de formas inesperadas.

Introducción a Orient Display Embedded Project

Introducción a Orient Display Embedded Project

Orient Display es una de las pantallas líderes en el mundo Fabricantes de pantallas LCD que fue fundada en 1996 por ejecutivos de más de 25 años de experiencia en I + D y producción. Además de la visualización, Orient Display también se centró en tecnologías integradas que incluyen la arquitectura ARM y ha acumulado una rica experiencia en productos integrados.

Ahora, los servicios técnicos de Orient Display incluyen hardware, software y consultoría.

 

Nuestros  equipo de hardware Realice prototipos en el menor tiempo posible de acuerdo con sus ideas y requisitos de diseño. Nos especializamos en el diseño de placas rentables o complejas de alto rendimiento para cumplir con sus requisitos de alta confiabilidad en un ciclo de desarrollo corto.

- Diseño esquemático

– Diseño de placa de circuito impreso

– Personalización de productos de la industria

 

Nuestros  Equipo de software se especializa en Linux diseños ARM®Procesador PowerPC y x86, por nombrar algunos. Como proveedor de soluciones completas para Linux, Android y WinCE en sistemas integrados, podemos resolver los problemas relacionados con el sistema de extremo a extremo de sus productos.

– Migración, optimización y personalización del sistema

– Impulsar el desarrollo

– Adaptación del núcleo

- Portar LINUX KERNEL a ARM, PPC o placa x86

– Desarrollo de APP (aplicación, Linux QT, Linux C/++)

 

Nuestros FAE equipo también le proporcionamos una gama completa de tecnologías para sus productos o productos semiacabados.

– Ofrecemos consultas sobre los recursos de software y hardware de nuestros productos;

– Solucionamos los problemas encontrados durante el uso de los manuales de software y hardware de nuestros productos;

– Soporte técnico posventa OEM y ODM;

– Mantenimiento y actualización de datos;

– Los productos de Orient Display están respaldados por nuestra Garantía del precio más bajo.

 

Secuencia de desarrollo

 

1. Análisis de requisitos del sistema

* Tareas de diseño, metas, especificaciones

- Esta proporcionada por nuestros clientes

* Requisito funcional y no funcional

– Incluya el rendimiento del sistema, el costo, el consumo de energía, el volumen, el peso y otros factores

 

2. Diseño de Arquitectura

Una buena arquitectura es la clave del éxito del diseño. En este paso, a menudo es necesario hacer lo siguiente:

  • Seleccione el chip principal:

- ARM Cortex A, R o M, o PowerPc o ColdFire

  • Determinar el RTOS:

—Linux, uClinux, Vxworks, freeRTOS, WinCE

  • Seleccionar pantalla:

- Panel TFT, TFT legible a la luz del sol, Paneles de vidrio LCD, LCD gráfico,  pantalla OLED, Los paneles táctiles, Pantalla LCD integrada or Pantalla hecha a medida by Orientar pantalla

  • Lenguaje de programación:

— c/c++, pitón, Java

  • Herramientas de desarrollo:

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

 

3. Co-diseño de hardware y software

Para acortar el ciclo de desarrollo del producto:

hardware:  Por lo general, comenzamos el proyecto desde el tablero de evaluación, como la pantalla de orientación. AIY-A002M, AIY-A003M y AIY-A005M. Más tarde se personalizará el tablero para adaptarse al proyecto, descartar las partes que no necesite.

Secuencia de desarrollo de software:

  • Por lo general, elegimos u-boot como Bootloader, 1) init cpu al estado conocido 2) init memory 3) init interrupt 4) init clock 5) load kernel to running address
  • Configurar el kernel:

1) configurar el sistema kernel: *administración de memoria, *sistemas de archivos, *controlador de dispositivo, *pila de red, *Sistemas de E/S

2) escribir controlador de dispositivo de E/S *controlador de dispositivo char, *controlador de dispositivo de bloque, *controlador de dispositivo de red

  • Seleccionar aplicaciones:

*Seleccione una biblioteca de usuario *Construya una aplicación de usuario *Configure el proceso de inicialización *Construya un FS raíz

 

4. SIntegración del sistema

Integre el software, el hardware y los dispositivos de ejecución del sistema, depure, encuentre y mejore los errores en el proceso de diseño de la unidad.

 

5. Prueba del sistema

Pruebe el sistema diseñado para ver si cumple con los requisitos funcionales dados en la especificación. La característica más importante del modelo de desarrollo de sistemas integrados es el desarrollo integral de software y hardware.

 

En conclusión

Orient Display cuenta con un increíble equipo de expertos talentosos con la experiencia y las capacidades para crear un módulo de visualización integrado desde el concepto hasta la producción.

Si tiene alguna pregunta, comuníquese con nuestros ingenieros en: tech@orientdisplay.com.

Cómo seleccionar procesadores ARM

Cómo seleccionar procesadores ARM

Introducción

La más amplia gama de microprocesador núcleos para casi todos los mercados de aplicaciones. Explorar ARM. Los requisitos de rendimiento, energía y costo para casi todos los mercados de aplicaciones, los procesadores son cruciales. El rendimiento del sistema depende en gran medida de su hardware; este artículo lo guiará a través de un estudio del procesador ARM y será de gran ayuda en su toma de decisiones.

 

Una breve introducción a ARM

Figura 1. Hoja de ruta de los procesadores ARM

 

Antes de 2003, existen procesadores ARM clásicos que incluyen ARM7 (Arquitectura ARMv4), ARM9 (Arquitectura ARMv5), ARM11 (Arquitectura ARMv6). ARM7 no tiene MMU (unidad de gestión de memoria), no puede ejecutar un sistema multiproceso multiusuario como Linux y WinCE. Solo se pueden ejecutar sistemas como ucOS y ucLinux que no necesitan MMU. ARM9 y ARM11 son CPU integradas con MMU, que pueden ejecutar Linux.

Después de 2003, en lo que respecta a la arquitectura ARMv7, recibió el nombre de Cortex y se dividió en tres series: Cortex-A, Cortex-R y Cortex-M.

  • Cortex-A — núcleos de procesador de aplicaciones para sistemas intensivos en rendimiento
  • Corteza-R – núcleos de alto rendimiento para aplicaciones en tiempo real
  • Corteza-M – núcleos de microcontrolador para una amplia gama de aplicaciones integradas

En pocas palabras, Cortex-A La serie es adecuada para aplicaciones que tienen altos requisitos informáticos, ejecutan sistemas operativos ricos y brindan una experiencia gráfica y de medios interactivos. Corteza-R son adecuados para los que requieren confiabilidad, alta disponibilidad, tolerancia a fallas, mantenibilidad y respuesta en tiempo real. Corteza-M Las series están dirigidas a MCU y aplicaciones finales sensibles al costo y la potencia.

 

Cortex-A VS Cortex-R VS Cortex-M

Cortex-A

La categoría de procesadores Cortex-A está dedicada a dispositivos Linux y Android. Cualquier dispositivo, desde relojes inteligentes y tabletas hasta equipos de red, puede ser compatible con los procesadores Cortex-A.

  • Los procesadores Cortex-A (A5, A7, A8, A9, A12, A15 y A17) se basan en la arquitectura ARMv7-A
  • El conjunto de características comunes para los procesadores A incluye un motor de procesamiento de medios (NEON), una herramienta con fines de seguridad (Trustzone) y varios conjuntos de instrucciones compatibles (ARM, Thumb, DSP, etc.)
  • Las características principales de los procesadores Cortex-A son el máximo rendimiento y la brillante eficiencia energética, todo ello combinado estrechamente para proporcionar a los usuarios el mejor servicio posible.

Las principales características del procesador Cortex-A:

Cortex-A5: El Cortex A5 es el miembro más pequeño y de menor potencia de la serie Cortex A, pero aún puede demostrar un rendimiento multinúcleo, es compatible con los procesadores A9 y A15.

Cortex-A7: El consumo de energía de A7 es casi el mismo que el de A5, pero el rendimiento proporcionado por A7 es un 20 % más alto que el de A5, así como una compatibilidad arquitectónica total con Cortex-A15 y Cortex-A17. El Cortex-A7 es una opción ideal para implementaciones de tabletas y teléfonos inteligentes sensibles al costo.

Contrex-A15: El Cortex-A15 es el miembro de mayor rendimiento de esta serie, brindando el doble de rendimiento que el A9. A15 encuentra su aplicación en dispositivos de gama alta, servidores de bajo consumo e infraestructura inalámbrica. Este es el primer soporte de procesador para gestión de datos y soluciones de entorno virtual.

Contrex-A17: El Cortex-A17 demuestra un rendimiento un 60 % superior al del A9. El objetivo principal es satisfacer las necesidades de los dispositivos de primera clase.

Contrex-A50: Contrex-A50, la última serie, se basa en la arquitectura ARMv8 y trae consigo soporte para Arch64-bit un sistema de eficiencia energética. Una razón obvia para el cambio a 64 bits es la compatibilidad con más de 4 GB de memoria física, que ya se logra en Cortex-A15 y Cortex-A7.

 

Corteza-R

Los procesadores Cortex-R están destinados a aplicaciones en tiempo real de alto rendimiento, como controladores de disco duro, reproductores multimedia de equipos de red y otros dispositivos similares. Además, también son un gran soporte para la industria automotriz, como bolsas de aire, sistemas de frenado y gestión del motor.

Corteza-R4:  Cortex-R4 es muy adecuado para aplicaciones automotrices. Se puede sincronizar hasta 600 MHz, tiene una canalización de 8 etapas con emisión dual, búsqueda previa y un sistema de interrupción de baja latencia, lo que lo hace ideal para sistemas críticos de seguridad.

Corteza-R5: Cortex-R5 amplía las funciones que ofrece R4 y agrega mayor eficiencia, confiabilidad y mejora la gestión de errores. La implementación de doble núcleo permite construir sistemas muy potentes y flexibles con respuestas en tiempo real.

Corteza-R7: El Cortex-R7 amplía significativamente el rendimiento. Cuentan con una canalización de 11 etapas y permiten tanto la ejecución desordenada como la predicción de bifurcaciones de alto nivel. Las herramientas se pueden implementar para el multiprocesamiento simétrico y asimétrico. El controlador de interrupción genérico es otra característica importante que debe mencionarse.

 

Corteza-M

Cortex-M diseñado específicamente para apuntar al mercado de MCU. La serie Cortex-M está construida sobre la arquitectura ARMv7-M (usada para Cortex-M3 y Cortex-M4), y la Cortex-M0 + más pequeña está construida sobre la arquitectura ARMv6-M. Es seguro decir que el Cortex-M se ha convertido para el mundo de 32 bits en lo que el 8051 es para el de 8 bits: un núcleo estándar de la industria suministrado por muchos proveedores. La serie Cortex-M se puede implementar como soft core en una FPGA, por ejemplo, pero es mucho más común encontrarlos implementados como MCU con memorias, relojes y periféricos integrados. Algunos están optimizados para la eficiencia energética, otros para un alto rendimiento y algunos se adaptan a un segmento de mercado específico, como la medición inteligente.

Para aplicaciones que son particularmente sensibles a los costos o que están migrando de 8 bits a 32 bits, el miembro más pequeño de la serie Cortex-M podría ser la mejor opción.

Corteza-M0: El Cortex-M0+ usa el conjunto de instrucciones Thumb-2 y tiene una canalización de 2 etapas. Las características significativas son el bus para GPIO de ciclo único y el búfer de microtraza.

Corteza-M3 y M4:  El Cortex-M3 y el Cortex-M4 son núcleos muy similares. Cada uno ofrece una tubería de 3 etapas, múltiples buses de 32 bits, velocidades de reloj de hasta 200 MHz y opciones de depuración muy eficientes. La diferencia significativa es la capacidad del núcleo Cortex-M4 para DSP. Cortex-M3 y Cortex-M4 comparten la misma arquitectura y conjunto de instrucciones (Thumb-2). Si su aplicación requiere matemáticas de punto flotante, lo hará considerablemente más rápido en un Cortex-M4 que en un Cortex-M3. Dicho esto, para una aplicación que no utiliza las capacidades DSP o FPU del Cortex-M4, verá el mismo nivel de rendimiento y consumo de energía en un Cortex-M3. En otras palabras, si necesita la funcionalidad DSP, elija un Cortex-M4. De lo contrario, el Cortex-M3 hará el trabajo.

 

Conclusión

Figura 2. Descripción general de la corteza

 

Los procesadores ARM ofrecen una variedad de capacidades para diferentes propósitos. Con un poco de reflexión e investigación, podrá encontrar el procesador adecuado que se adapte a las necesidades de su aplicación. ya sea para una tableta de alta gama o un nodo de sensor inalámbrico de costo ultra bajo.

Es un desafío tomar la decisión correcta del núcleo de Cortex y convertir la idea en realidad. Pero un equipo de profesionales experimentados puede ocuparse de todos los problemas e implementar conceptos de cualquier complejidad.

Orient Display se ha centrado en las tecnologías relacionadas con el procesador ARM durante muchos años y ha acumulado una rica experiencia en el desarrollo e implementación de productos de arquitectura ARM. Mientras lanza continuamente plataformas de desarrollo y placas base que satisfacen las necesidades generales del mercado, también aborda las necesidades de proyectos individuales de los clientes. Proporcionar servicios personalizados.

Nuestro equipo de hardware puede producir prototipos en el menor tiempo posible de acuerdo con sus ideas y necesidades de diseño. Nuestro equipo de software puede ayudarlo a personalizar todas las funciones de la capa del controlador de corte.

Contáctanos y le ayudaremos a hacer sus planes desde la idea inicial hasta el producto final.