La mejor lista de verificación de migración de HiSilicon para 2025
Su migración exitosa de HiSilicon comienza con un plan estructurado. Esta lista de verificación de la migración proporciona la hoja de ruta de alto nivel
Su migración exitosa de HiSilicon comienza con un plan estructurado. Esta lista de verificación de migración proporciona la hoja de ruta de alto nivel para todo su proyecto, lo que garantiza una transición sin problemas y un rendimiento superior.
Su viaje completo de migración se divide en cuatro fases clave. Siga esta lista de verificación para lograr el máximo rendimiento con su nuevo hardware HiSilicon.
- Fase 1: Análisis previo a la migración
- Objetivo: Asigne las diferencias de hardware y prepare el SDK de HiSilicon y la cadena de herramientas.
- Fase 2: Porte de sistema de bajo nivel
- Objetivo: Adaptar el gestor de arranque y el kernel para el dispositivo de destino.
- Fase 3: Migración de controladores y middleware
- Objetivo: controladores de periféricos de puerto y transición a la plataforma de procesamiento de medios HiSilicon (MPP).
- Fase 4: Validación y optimización
- Objetivo: Recompilar aplicaciones y realizar pruebas en todo el sistema para validar la migración.
Puntos clave
- Planifique su migración de HiSilicon en cuatro pasos: analizar, portar sistemas de bajo nivel, mover controladores y probar todo.
- Antes de empezar, compruebe las diferencias de hardware y configure sus herramientas. Esto ayuda a evitar problemas más adelante.
- Asegúrese de que el gestor de arranque y el kernel funcionen en el nuevo hardware de HiSilicon. Esto permite que su dispositivo se inicie correctamente.
- Actualice los controladores para su hardware y usoSoftware especial de HiSiliconPara los medios de comunicación. Esto hace que las características de su dispositivo funcionen bien.
- Pruebe sus aplicaciones y hágalos más rápidos. Esto asegura suNuevo dispositivo HiSiliconFunciona de forma fluida y fiable.
FASE 1: LA LISTA DE COMPROBACIÓN PRE-MIGRATION
Esta fase inicial es la base de todo su proyecto de migración. Un análisis exhaustivo previo a la migración evita futuros obstáculos y garantiza una transición sin problemas. Usted mapeará las capacidades de hardware y preparará su entorno de desarrollo para la nueva plataforma HiSilicon.
MAPEO DE CARACTERÍSTICAS DE HARDWARE
Su primer paso es comprender las diferencias arquitectónicas entre su plataforma fuente y el SoC HiSilicon objetivo. Este análisis le ayuda a anticipar los desafíos de portabilidad. Cree una tabla de comparación detallada para asignar recursos. Este elemento de la lista de comprobación es fundamental para una migración satisfactoria.
Para una migración de un Cortex-A7 ARM genérico de un solo núcleo a un Cortex-A7 ARM HiSilicon de doble núcleo, su mapa podría verse así:
| Característica | Plataforma de origen (ejemplo) | Target Plataforma HiSilicon | Notas de migración |
|---|---|---|---|
| CPU | Cortex-A7 de brazo de un solo núcleo | Cortex-A7 ARM de doble núcleo | Actualizar la configuración del kernel para SMP. |
| GPU | Malí-400 MP1 | Malí-450 MP4 | Requiere nuevos controladores de gráficos e integración MPP. |
| Memoria | DDR3 @ 533MHz | DDR4 @ 800MHz | Ajuste los tiempos del controlador de memoria en U-Boot. |
| Periféricos | 2x UART, 1x I2C, 1x SPI | 4x UART, 2x I2C, 2x SPI | Asigne nodos de árbol de dispositivos a nuevas direcciones periféricas. |
CADENA DE HERRAMIENTAS Y CONFIGURACIÓN DE SDK
A continuación, debe configurar la cadena de herramientas de compilación cruzada oficial de HiSilicon y el Kit de desarrollo de software (SDK). Este entorno es esencial para construir el gestor de arranque, el núcleo y las aplicaciones para su nuevo hardware ARM.
-
Instalar el compilador cruzado:
# Desempaquetar la cadena de herramientas ARM Tar-xzf arm-himix200-linux.tgz # Añade el compilador al PATH de tu sistema Exportar PATH = $(pwd)/arm-himix200-linux/bin:$ PATH -
Desempaquetar el SDK HiSilicon:
# Desempaquetar el paquete principal SDK Tar-xzf sd
CONFIGURACIÓN DEL ENTORNO DE ARRANQUE DE RED
Una configuración de arranque de red utilizando TFTP y NFS acelera el desarrollo al permitirle probar los cambios sin parpadear el dispositivo cada vez. Esta es una parte clave de la lista de verificación de la migración para mejorar la eficiencia.
Configure su PC de desarrollo como servidor:
- Instalar servidores:En Ubuntu, instala los paquetes necesarios.
Sudo apt-get install nfs-kernel-server tftpd-hpa - Configurar NFS:Crear un directorio compartido y conceder permisos.
Sudo mkdir /home/${USER}/nfs Sudo chmod 777 /home/${USER}/nfs - Exportar el directorio:Editar
/Etc/exportacionesY agregue esta línea, luego reinicie el servicio./Home/<usuario>/nfs *(rw,sync,no_root_squash)Sudo service nfs-reinicio del servidor del kernel
Consejo profesional: Solución de problemas de tiempos de espera de TFTP Si se encuentra con tiempos de espera de TFTP, no sólo aumente el valor de tiempo de espera. En su lugar, use un sniffer de red como Wir Shark para verificar si la placa HiSilicon está enviando ACKs. Además, verifique que las reglas del firewall de su PC no estén bloqueando el tráfico. Una implementación incorrecta del temporizador ARM también puede causar que las transacciones de red fallen, lo que afecta el rendimiento general.Este paso de análisis previo a la migración garantiza que su hardware y software trabajen juntos para obtener un rendimiento óptimo. La migración a una nueva plataforma de Cortex-A7 ARM requiere este nivel de detalle.
FASE 2: PORTACIÓN DE SISTEMA DE BAJO NIVEL
Ahora está entrando en la fase técnica central de la migración. El objetivo de la portación de sistemas de bajo nivel es hacer que el software fundamental-el gestor de arranque y el kernel-se ejecute en su nuevo hardware HiSilicon. El éxito en esta etapa garantiza que su dispositivo pueda arrancar y reconocer sus componentes principales. Este es un paso crítico en su lista de verificación de migración.
CONFIGURACIÓN DE BOOTLOADER (U-BOOT)
Su primera tarea en la portabilidad del sistema de bajo nivel es configurar el gestor de arranque Das U-Boot. Debe adaptar U-Boot a la memoria específica y al diseño de almacenamiento de su nueva placa HiSilicon. Esto implica ajustar los tiempos del controlador de memoria para el nuevo tipo de DDR y definir el mapa de partición flash.
Por ejemplo, definirá cómo se divide el almacenamiento eMMC para el gestor de arranque, el núcleo y el sistema de archivos raíz. Este diseño se controla directamente dentro de las variables de entorno U-Boot.
Defina el diseño de partición de memoria flash utilizando el
Por blkdevpartsParámetro dentro delPor bootargsVariable. Esto le dice al kernel cómo está organizado el almacenamiento.Bootargs = console = ttyAMA0,115200 root =/dev/mmcblk0p4 rootfstype = ext4 rootwait blkdevparts = mmcblk0:1M (arranque rápido),1M(bootargs),8M(kernel),128M (sistema)En este ejemplo para un dispositivo ARM, se crean particiones separadas para
Fastboot,Kernel, YRootfs. Debe asegurarse de que estas definiciones coincidan con su esquema de partición real para evitar errores de arranque.
PORTACIÓN DEL KERNEL Y ADAPTACIÓN DE DTS
A continuación, adaptará el kernel de Linux al HiSilicon System-on-Chip (SoC). La parte más importante de este proceso es la modificación del archivo de origen del árbol de dispositivos (DTS). El DTS es una estructura de datos que describe el hardware al kernel, diciéndole qué controladores cargar y qué recursos (como direcciones de memoria e interrupciones) utilizan.
Debe configurar correctamente el reloj y restablecer los nodos del controlador en el DTS. Esto garantiza que todos los periféricos reciban las señales de reloj correctas para un funcionamiento adecuado. Para un HiSilicon SoC, puede establecer frecuencias de reloj específicas para diferentes partes de un periférico. Por ejemplo, usted puedeAsignar un reloj de 24 MHz a la interfaz SPI NOR mientras se asigna un reloj de 30 MHz a la interfaz SPI NAND, todo dentro del mismo controlador de memoria flash. Este control de grano fino es clave para lograr un rendimiento óptimo.
Para garantizar que los periféricos se inicialicen correctamente, la configuración de DTS para la plataforma HiSilicon debe incluir:
- Soporte técnico de Clock DriverNecesita habilitar los controladores de reloj correctos para su SoC específico, que registran todos los relojes necesarios del módulo Generador de reloj y reinicio (CRG).
- DT Bindings (enlace): Su estructura DTS debe seguir el
Dt-bindings. Estos bindings definen propiedades requeridas comoRegY# Reset-célulasPara que el hardware funcione. - Restablecer el controlador:Siempre debe usar el controlador de reinicio para administrar los reinicios de periféricos. Escribir directamente a los registros no es una práctica confiable para un sistema ARM estable.
CONSIDERACIONES DE ARQUITECTURA DE ARM
El paso final en esta fase es tener en cuenta las diferencias en la arquitectura ARM. Pasar de un Cortex-A7 ARM de un solo núcleo simple a un SoC multi-core o grande. LITTLE HiSilicon presenta nuevas oportunidades para la optimización del rendimiento, pero también requiere una configuración de software cuidadosa. El éxito de la migración depende de lo bien que administre estas nuevas complejidades.
Si su nuevo SoC HiSilicon utiliza una arquitectura big.LITTLE (combinando potentes núcleos ARM "grandes" con eficientes núcleos ARM "pequeños"),Debe configurar el programador del kernel. Este programador decide qué tareas se ejecutan en qué núcleos equilibrar el rendimiento y el consumo de energía.
- Modo IKS (conmutador en el núcleo)Este modo presenta un conjunto de núcleos virtuales al kernel. Se mueve dinámicamente las tareas entre los núcleos grandes y pequeños en función de la carga del sistema.
- Modo HMP (multiprocesamiento heterogéneo): Este modo trata a los grandes y pequeños núcleos por separado. El programador asigna tareas ligeras a los núcleos pequeños y tareas exigentes a los núcleos grandes para obtener la máxima eficiencia.
Más allá del programador, una migración a una arquitectura ARM más nueva, como de ARMv7 (utilizado en muchos SoC Cortex-A7) a ARMv8, presenta otros desafíos. Esta lista de verificación le ayuda a prepararse para ellos.
- Actualizar bibliotecas y herramientasEs posible que necesite actualizar las bibliotecas de software a versiones más recientes que admita la arquitectura ARM de 64 bits.
- Manejar soporte limitado de tercerosEs posible que algunas de sus herramientas existentes no tengan una versión compatible con ARM. Es posible que necesite encontrar alternativas o trabajar con proveedores.
- Migrar servicios en contenedoresSi usa Docker, debe crear imágenes de contenedor de arquitectura múltiple que puedan ejecutarse en sus plataformas ARM antiguas y nuevas.
FASE 3: MIGRACIÓN DE DRIVER Y MIDDLEWARE
Con el arranque de su dispositivo, ahora puede concentrarse en hacer que sus características sean funcionales. Esta fase de la migración implica portar el software que controla suPeriféricos de hardwareE integrando el poderoso middleware de HiSilicon. Su objetivo es dar vida a las características únicas de su producto en la nueva plataforma ARM.
MIGRACIÓN DE CONTROLADOR PERIFÉRICO
Los controladores periféricos son los puentes de software entre el kernel de Linux y el hardware físico como I2CSensoresFlash SPI y puertos UART. Su migración requiere que adapte estos controladores para el nuevo HiSilicon SoC. Muchos controladores ARM genéricos pueden funcionar con cambios menores, pero otros necesitarán actualizaciones significativas.
Su primer paso es revisar los controladores de su antigua plataforma ARM. Debe identificar qué controladores son personalizados y cuáles son estándar. El SDK de HiSilicon a menudo proporciona controladores listos para usar para sus periféricos internos. Debe priorizar el uso de estos controladores oficiales para obtener la mejor estabilidad y rendimiento.
Para los controladores personalizados, deberá modificar el código fuente. Esto generalmente implica actualizar las direcciones de E/S asignadas en memoria y los números de interrupción para que coincidan con el nuevo hardware de HiSilicon. Encontrará estos nuevos valores en la hoja de datos del SoC.
Pro Tip: Uso
Mapa RegmapPara controladores más limpios El LinuxMapa RegmapAPI le ayuda a crear controladores ARM más limpios y portátiles. Se abstrae de distancia registro directo lee y escribe. Esto hace que su código de controlador sea más fácil de mantener y adaptar para el futuro hardware de ARM. UsandoMapa RegmapSimplifica la migración de controladores.
Por ejemplo, puede actualizar la cadena de compatibilidad del árbol de dispositivos de un controlador y las definiciones de registro.
// Tabla de coincidencia de árbol de dispositivo de controlador antiguo
Static const struct of_device_id my_sensor_of_match[] = {
[.] Compatible = "proveedor, old-soc-i2c" },
{}
};
// Tabla de coincidencia de árbol de dispositivo de nuevo controlador para HiSilicon
Static const struct of_device_id my_sensor_of_match[] = {
[.] Compatible = "hisilicon,hi35xx-i2c" }, // Match the HiSilicon I2C controller
{}
};
Este cambio le indica al kernel que cargue su controlador cuando encuentre el nodo HiSilicon I2C correspondiente en el árbol de dispositivos. Este trabajo cuidadoso del conductor es esencial para un sistema ARM exitoso.
TRANSICIÓN A HISILICON MPP
Una gran ventaja de usar un SoC HiSilicon es su dedicadoPlataforma de procesamiento de medios(MPP). MPP es una biblioteca de software de alto rendimiento que utiliza aceleradores de hardware para la codificación de vídeo, decodificación y procesamiento de imágenes. Esta es una parte crítica de la migración para cualquier producto multimedia. Pasar de una biblioteca genérica como FFmpegal al HiSilicon MPP desbloquea ganancias masivas de rendimiento.
La API de MPP le da a su aplicación control directo sobre el potente motor de video en el SoC de ARM. Esta transición le permite descargar el procesamiento pesado de los núcleos principales de la CPU ARM, liberándolos para otras tareas. El resultado es un menor consumo de energía y un mayor rendimiento general del sistema.
Los beneficios de rendimiento son significativos. Por ejemplo, el SoC HiSilicon Hi3559A ARM ofrece impresionantes resultados de codificación H.265 utilizando su acelerador de hardware MPP.
- Logra una codificación 8K en tiempo real (7680x4320) a 30 cuadros por segundo (fps).
- Puede codificar simultáneamente un flujo separado de 1080p a 30 fps.
- También admite instantáneas de alta resolución a 2 fps incluso mientras codifica video.
Estas capacidades son casi imposibles de lograr con codificación de solo software en un procesador ARM similar. La integración del HiSilicon MPP es clave para construir un producto competitivo.
FILESYSTEM Y CONFIGURACIÓN DE ALMACENAMIENTO
El paso final en esta fase es preparar el sistema de archivos raíz. El sistema de archivos raíz contiene todas las bibliotecas, aplicaciones y archivos de configuración que su producto necesita para ejecutarse. Creará este sistema de archivos en su PC de desarrollo y luego lo flash al almacenamiento del dispositivo, como un chip flash eMMC o NAND.
En primer lugar, debe elegir un tipo de sistema de archivos. Para eMMC o tarjetas SD,Ext4Es una opción fiable. Para flash NAND raw, un sistema de archivos flash-aware comoUBIFSEs mejor porque maneja la nivelación de desgaste y los bloques defectuosos, extendiendo la vida útil del almacenamiento.
A continuación, rellenará el sistema de archivos. Esto implica:
- Crear una estructura de directorio raíz ()
/Bin,/Lib (en inglés),/Etc., Etc.). - Copiando la biblioteca C de la cadena de herramientas ARM compilada de forma cruzada ()
Libc. así queY enlazador dinámico (dynamic linker)Ld-linux.so) En el/Lib (en inglés)Directorio. - Instalación de sus aplicaciones de compilación cruzada y cualquier biblioteca de terceros requerida.
- Copiar las bibliotecas de HiSilicon MPP (en inglés)
Por libmpi.so, Etc.) para garantizar que su aplicación pueda acceder a los aceleradores de hardware.
Completar este elemento de la lista de comprobación prepara el dispositivo con un entorno de software totalmente funcional. Esta migración integral de controladores y middleware establece el escenario para la optimización y las pruebas finales de la aplicación, lo que le acerca a la finalización de su lista de verificación de migración.
FASE 4: VALIDACIÓN Y OPTIMIZACIÓN
Has llegado a la etapa final de tu migración. Esta fase se enfoca en validar su trabajo y desbloquear todo el potencial de rendimiento de su nuevo hardware HiSilicon. Recompilará su software, optimizará rutas de código críticas y realizará pruebas rigurosas en todo el sistema. El éxito aquí garantiza que su producto sea estable, confiable y rápido.
RECOMPILACIÓN DE APLICACIONES
Su primera tarea es recompilar todas sus aplicaciones y bibliotecas personalizadas. Debe usar el compilador cruzado HiSilicon que configuró en la Fase 1. Este paso garantiza que su software esté diseñado específicamente para la nueva arquitectura de procesador ARM. Esta recompilación inicial hace que sus aplicaciones se ejecuten en el dispositivo de destino, preparando el escenario para el ajuste del rendimiento.
UTILIZACIÓN DE LA INSTRUCCIÓN DE NEÓN
Para lograr el máximo rendimiento, debe aprovechar el motor ARM NEON. NEON es una extensión de arquitectura SIMD (instrucción única, datos múltiples) para procesadores ARM. Permite que una sola instrucción realice una operación en múltiples piezas de datos simultáneamente. Esto es extremadamente efectivo para tareas multimedia y de procesamiento de señales, lo que lleva a un aumento masivo del rendimiento.
Puede refactorizar funciones de rendimiento crítico de C para usar intrínsecos de ARM NEON. Esta migración de su código desbloquea el verdadero poder del SoC HiSilicon ARM.
- Función estándar de C:Esta versión procesa un píxel a la vez.
Void AddImage8( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, int width, int height) { Índice int = 0; Para (int y = 0; y <altura; y) { Para (int x = 0; x <ancho; x) { Int t = src1 [índice] src2 [índice]; ¿Dst [índice] = t> 255? 255 : t; Índice; } } } - Función optimizada NEON del BRAZO: Esta versión ARM procesa 16 píxeles (bytes) a la vez, Mejorando dramáticamente el rendimiento.
Void AddImage8AlignedNEON( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, ancho int, altura int) { Int const vectorNumberPerRow = ancho/16; Para (int y = 0; y <altura; y) { Para (int i = 0; i < vectorNumberPerRow; i) { Uint8x16 _ t a = vld1q _ u8( src1 ); Uint8x16 _ t b = vld1q _ u8( src2 ); Uint8x16 _ t r = vqaddq _ u8( a, b ); // Realizar adición saturada en 16 bytes Vst1q _ u8( dst, r ); Src1 = 16; Src2 = 16; Dst = 16; } } }
PRUEBA Y DEBUGACIÓN DEL SISTEMA
Finalmente, debe realizar pruebas exhaustivas del sistema. Esto va más allá de comprobar si las aplicaciones se ejecutan. Debe validar la estabilidad y el rendimiento de todo el sistema bajo carga. Ejecute pruebas de estrés para supervisar el uso de la CPU, el consumo de memoria yRendimiento térmico. Este último elemento de la lista de verificación de su lista de verificación de migración verifica que su dispositivo ARM cumpla con todos los requisitos funcionales y de rendimiento, concluyendo una migración exitosa.
Ha completado con éxito la lista de verificación de migración de HiSilicon. Esta migración estructurada minimiza los riesgos y garantiza una transición sin problemas. Debe tratar esta lista de verificación como un documento vivo para sus proyectos. Su migración exitosa de HiSilicon desbloquea un rendimiento superior. Obtiene acceso al hardware dedicado de HiSilicon para obtener un rendimiento inigualable, lo que garantiza un excelente rendimiento del sistema y de las aplicaciones. Esto conduce a beneficios de rendimiento a largo plazo.
Preguntas frecuentes
¿Puedo reutilizar mis antiguos controladores de ARM?
A veces puede reutilizar controladores genéricos. Sin embargo, debe priorizar los controladores oficiales de HiSilicon para los periféricos centrales. Esto garantiza la mejor estabilidad y rendimiento para su nuevo hardware de brazo. Los controladores personalizados requerirán actualizaciones para que coincidan con el mapa de memoria del nuevo SoC y las asignaciones de interrupciones.
¿Por qué es necesaria la transición al HiSilicon MPP?
Debe realizar la transición a Media Processing Platform (MPP) para desbloquear la aceleración de hardware. El MPP descarga las tareas de vídeo e imagen de la CPU del brazo principal. Esto proporciona importantes ganancias de rendimiento y reduce el consumo de energía, que es fundamental para los productos multimedia competitivos.
¿Cuáles son los principales desafíos al pasar a una arquitectura ARM de 64 bits?
Debe recompilar todo el software con una cadena de herramientas de 64 bits. Es posible que también necesite encontrar versiones compatibles de 64 bits de bibliotecas de terceros. La migración de servicios en contenedores requiere la creación de imágenes de arquitectura múltiple para admitir la nueva plataforma de brazo durante la transición.
¿Qué importancia tiene el archivo de árbol de dispositivos (DTS)?
El árbol de dispositivos es esencial para una migración exitosa. Lo usa para describir su diseño de hardware al kernel de Linux. Configurar correctamente el DTS garantiza que el sistema cargue los controladores correctos y asigne los recursos adecuados para su nuevo dispositivo de brazo.





