Liste de contrôle ultime de la migration HiSilicon pour 2025
Votre migration HiSilicon réussie commence par un plan structuré. Cette liste de contrôle de la migration fournit la feuille de route de haut niveau
Votre migration HiSilicon réussie commence par un plan structuré. Cette liste de contrôle de la migration fournit la feuille de route de haut niveau pour l'ensemble de votre projet, assurant une transition en douceur et des performances supérieures.
Votre parcours de migration complet est divisé en quatre phases clés. Suivez cette liste de contrôle pour atteindre des performances optimales avec votre nouveau matériel HiSilicon.
- Phase 1: Analyse pré-migration
- Objectif: cartographier les différences matérielles et préparer le SDK et la chaîne d'outils HiSilicon.
- Phase 2: Portage du système de bas niveau
- Objectif: Adapter le chargeur de démarrage et le noyau pour le périphérique cible.
- Phase 3: Migration des pilotes et des intergiciels
- Objectif: Pilotes périphériques de port et transition vers la HiSilicon Media Processing Platform (MPP).
- Phase 4: Validation et optimisation
- Objectif: Recompiler les applications et effectuer des tests à l'échelle du système pour valider la migration.
Les clés à emporter
- Planifiez votre migration HiSilicon en quatre étapes: analyser, porter les systèmes bas niveau, déplacer les pilotes et tout tester.
- Avant de commencer, vérifiez les différences matérielles et configurez vos outils. Cela permet d'éviter les problèmes plus tard.
- Assurez-vous que le bootloader et le noyau fonctionnent sur le nouveau matériel HiSilicon. Cela permet à votre appareil de démarrer correctement.
- Mettre à jour les pilotes pour votre matériel et utiliserLe logiciel spécial de HiSiliconPour les médias. Cela rend les fonctionnalités de votre appareil fonctionnent bien.
- Testez vos applications et les rendre plus rapides. Ceci assure votreNouvel appareil HiSiliconFonctionne en douceur et de manière fiable.
PHASE 1: LA LISTE DE CONTRÔLE PRE-MIGRATION
Cette phase initiale constitue la base de tout votre projet de migration. Une analyse approfondie de la pré-migration prévient les futurs obstacles et assure une transition en douceur. Vous cartographierez les capacités matérielles et préparerez votre environnement de développement pour la nouvelle plate-forme HiSilicon.
CARTOGRAPHIE DES CARACTÉRISTIQUES DU MATÉRIEL
Votre première étape consiste à comprendre les différences architecturales entre votre plate-forme source et le SoC HiSilicon cible. Cette analyse vous aide à anticiper les défis du portage. Créez un tableau de comparaison détaillé pour mapper les ressources. Cet élément de la liste de contrôle est essentiel pour une migration réussie.
Pour une migration d'un Cortex-A7 ARM monocœur générique vers un Cortex-A7 HiSilicon ARM double cœur, votre carte pourrait ressembler à ceci:
| Caractéristique | Plate-forme source (exemple) | Plateforme HiSilicon cible | Notes sur la migration |
|---|---|---|---|
| CPU | Cortex-A7 de BRAS à un noyau | Cortex-A7 BRAS Dual-Core | Mettre à jour la configuration du noyau pour SMP. |
| GPU | Mali-400 MP1 | Mali-450 MP4 | Nécessite de nouveaux pilotes graphiques et une intégration MPP. |
| Mémoire | DDR3 @ 533MHz | DDR4 @ 800MHz | Ajustez les timings du contrôleur de mémoire dans U-Boot. |
| Périphériques | 2x UART, 1x I2C, 1x SPI | 4x UART, 2x I2C, 2x SPI | Mappez les nœuds d'arbre de périphérique à de nouvelles adresses de périphérique. |
CONFIGURATION DE LA CHAÎNE D'OUTILS ET DU SDK
Ensuite, vous devez configurer la chaîne d'outils de compilation croisée HiSilicon officielle et le kit de développement logiciel (SDK). Cet environnement est essentiel pour la construction du chargeur de démarrage, du noyau et des applications pour votre nouveau matériel ARM.
-
Installez le compilateur croisé:
# Décompressez la chaîne d'outils ARM Tar-xzf arm-himix200-linux.tgz # Ajouter le compilateur au PATH de votre système Export PATH = $(pwd)/arm-himix200-linux/bin:$ PATH -
Déballez le SDK HiSilicon:
# Décompressez le package SDK principal Tar-xzf dm
CONFIGURATION DE L'ENVIRONNEMENT DE BOOT RÉSEAU
Une configuration de démarrage réseau utilisant TFTP et NFS accélère le développement en vous permettant de tester les modifications sans faire clignoter le périphérique à chaque fois. Ceci est un élément clé de la liste de contrôle de la migration pour améliorer l'efficacité.
Configurez votre PC de développement en tant que serveur:
- Installer des serveurs:Sur Ubuntu, installez les paquets nécessaires.
Sudo apt-get install nfs-kernel-server tftpd-hpa - Configurer NFS:Créez un répertoire partagé et accordez des autorisations.
Sudo mkdir /home/${USER}/nfs Sudo chmod 777 /home/$ {UTILISATEUR}/nfs - Exporter l'annuaire:Modifier
/Etc/exportsEt ajoutez cette ligne, puis redémarrez le service./Home/<utilisateur>/nfs *(rw,sync,no_root_squash)Sudo service nfs-kernel-server redémarrage
Astuce de pro: Dépannage des délais TFTP Si vous rencontrez des délais d'attente TFTP, n'augmentez pas simplement la valeur de délai d'attente. Au lieu de cela, utilisez un renifleur de réseau comme Wireshark pour vérifier si la carte HiSilicon envoie des ACK. Vérifiez également que les règles de pare-feu de votre PC ne bloquent pas le trafic. Une mise en œuvre incorrecte du temporisateur ARM peut également entraîner l'échec des transactions réseau, ce qui a un impact sur les performances globales.Cette étape d'analyse de pré-migration garantit que votre matériel et vos logiciels fonctionnent ensemble pour des performances optimales. La migration vers une nouvelle plate-forme de Cortex-A7 ARM nécessite ce niveau de détail.
PHASE 2: PORTAGE DE SYSTÈME DE BASSE NIVEAU
Vous entrez maintenant dans la phase technique principale de la migration. L'objectif du portage système de bas niveau est de faire fonctionner le logiciel fondamental-le chargeur de démarrage et le noyau-sur votre nouveau matériel HiSilicon. Le succès de cette étape garantit que votre appareil peut démarrer et reconnaître ses composants de base. Il s'agit d'une étape critique dans votre liste de contrôle de migration.
CONFIGURATION DU BOOTLOADER (U-BOOT)
Votre première tâche dans le portage système de bas niveau est de configurer le bootloader Das U-Boot. Vous devez adapter U-Boot à la disposition spécifique de la mémoire et du stockage de votre nouvelle carte HiSilicon. Cela implique d'ajuster les timings du contrôleur de mémoire pour le nouveau type DDR et de définir la carte de partition flash.
Par exemple, vous allez définir comment le stockage eMMC est divisé pour le bootloader, le noyau et le système de fichiers racine. Vous contrôlez cette disposition directement dans les variables d'environnement U-Boot.
Vous définissez la disposition de la partition mémoire flash à l'aide du
BlkdevpartsParamètre à l'intérieur duBootargsVariable. Cela indique au noyau comment le stockage est organisé.Bootargs = console = ttyAMA0,115200 racine =/dev/mmcblk0p4 rootfstype = ext4 rootwait blkdevparts = mmcblk0:1M(fastboot),1M(bootargs),8M (noyau),128M(rootfs) (système),-Dans cet exemple pour un périphérique ARM, vous créez des partitions séparées pour
Fastboot,Noyau, EtRootfs. Vous devez vous assurer que ces définitions correspondent à votre schéma de partition réel pour éviter les échecs de démarrage.
PORTAGE DE CŒURS ET ADAPTATION DTS
Ensuite, vous adaptez le noyau Linux au système HiSilicon System-on-Chip (SoC). La partie la plus importante de ce processus consiste à modifier le fichier Device Tree Source (DTS). Le DTS est une structure de données qui décrit le matériel au noyau, en lui indiquant quels pilotes charger et quelles ressources (comme les adresses mémoire et les interruptions) ils utilisent.
Vous devez configurer correctement les nœuds d'horloge et de contrôleur de réinitialisation dans le DTS. Cela garantit que tous les périphériques reçoivent les signaux d'horloge corrects pour un fonctionnement correct. Pour un SoC HiSilicon, vous pouvez définir des fréquences d'horloge spécifiques pour différentes parties d'un périphérique. Par exemple, vous pouvezAssigner une horloge 24 MHz à l'interface SPI NOR tout en assignant une horloge 30 MHz à l'interface SPI NAND, le tout dans le même contrôleur de mémoire flash. Ce contrôle fin est essentiel pour atteindre des performances optimales.
Pour vous assurer que vos périphériques s'initialisent correctement, votre configuration DTS pour la plate-forme HiSilicon doit inclure:
- Prise en charge du pilote d'horlogeVous devez activer les pilotes d'horloge corrects pour votre SoC spécifique, qui enregistrent toutes les horloges nécessaires à partir du module CRG (Clock and Reset Generator).
- Fixations DT: Votre structure DTS doit suivre les
Dt-fixations. Ces liaisons définissent des propriétés requises telles queRegEt# Reset-cellulesPour que le matériel fonctionne. - Réinitialiser le contrôleur:Vous devez toujours utiliser le contrôleur de réinitialisation pour gérer les réinitialisations de périphériques. L'écriture directe dans les registres n'est pas une pratique fiable pour un système ARM stable.
CONSIDÉRATIONS SUR L'ARCHITECTURE DU BRAS
La dernière étape de cette phase consiste à tenir compte des différences dans l'architecture ARM. Passer d'un simple Cortex-A7 ARM mono-cœur à un SoC multi-cœur ou big.LITTLE HiSilicon présente de nouvelles opportunités d'optimisation des performances, mais nécessite également une configuration logicielle minutieuse. Le succès de votre migration dépend de la façon dont vous gérez ces nouvelles complexités.
Si votre nouveau SoC HiSilicon utilise une architecture big.LITTLE (combinant de puissants «gros» cœurs ARM avec des «petits» cœurs ARM efficaces),Vous devez configurer le planificateur du noyau. Ce planificateur décide quelles tâches s'exécutent sur quels cœurs équilibrer performances et consommation d'énergie.
- Mode IKS (In-Kernel Switcher)Ce mode présente un ensemble de cœurs virtuels au noyau. Il déplace dynamiquement les tâches entre les grands et les petits cœurs en fonction de la charge du système.
- Mode HMP (multitraitement hétérogène)Ce mode traite les grands et petits clusters de base séparément. Le planificateur attribue des tâches légères aux petits noyaux et des tâches exigeantes aux grands noyaux pour une efficacité maximale.
Au-delà du planificateur, une migration vers une architecture ARM plus récente, telle qu'ARMv7 (utilisé dans de nombreux SoC Cortex-A7) vers ARMv8, présente d'autres défis. Cette liste de contrôle vous aide à vous y préparer.
- Mettre à jour les bibliothèques et les outilsVous devrez peut-être mettre à niveau vos bibliothèques logicielles vers des versions plus récentes qui prennent en charge l'architecture ARM 64 bits.
- Gérer le support de tiers limitéCertains de vos outils existants peuvent ne pas avoir de version compatible ARM. Vous devrez peut-être trouver des alternatives ou travailler avec des fournisseurs.
- Migrer les services conteneurisésSi vous utilisez Docker, vous devez créer des images conteneur multi-architecture qui peuvent s'exécuter sur vos anciennes et nouvelles plates-formes ARM.
PHASE 3: MIGRATION DU CONDUCTEUR ET DU MIDDLEWARE
Avec le démarrage de votre appareil, vous pouvez maintenant vous concentrer sur la réalisation de ses fonctionnalités fonctionnelles. Cette phase de la migration implique le portage du logiciel qui contrôle votrePériphériques de matérielEt en intégrant le puissant middleware de HiSilicon. Votre objectif est de donner vie aux fonctionnalités uniques de votre produit sur la nouvelle plateforme ARM.
MIGRATION DU CONDUCTEUR PÉRIPHÉRIQUE
Les pilotes périphériques sont les ponts logiciels entre votre noyau Linux et le matériel physique comme I2CCapteurs, SPI flash et ports UART. Votre migration vous oblige à adapter ces pilotes pour le nouveau HiSilicon SoC. De nombreux pilotes ARM génériques peuvent fonctionner avec des modifications mineures, mais d'autres auront besoin de mises à jour importantes.
Votre première étape consiste à examiner les pilotes de votre ancienne plate-forme ARM. Vous devez identifier quels pilotes sont personnalisés et lesquels sont standard. Le SDK HiSilicon fournit souvent des pilotes prêts à l'emploi pour ses périphériques internes. Vous devriez prioriser l'utilisation de ces pilotes officiels pour la meilleure stabilité et performance.
Pour les pilotes personnalisés, vous devrez modifier le code source. Cela implique généralement la mise à jour des adresses d'E/S mappées en mémoire et des numéros d'interruption pour correspondre au nouveau matériel HiSilicon. Vous trouverez ces nouvelles valeurs dans la fiche technique du SoC.
Astuce Pro: Utilisation
RegmapPour les conducteurs plus propres Les LinuxRegmapL'API vous aide à créer des pilotes ARM plus propres et plus portables. Il fait abstraction du registre direct lit et écrit. Cela rend votre code de pilote plus facile à maintenir et à adapter pour le futur matériel ARM. En utilisantRegmapSimplifie la migration de vos pilotes.
Par exemple, vous pouvez mettre à jour la chaîne de compatibilité de l'arborescence du périphérique d'un pilote et les définitions de registre.
// Table de correspondance de l'arbre de l'ancien pilote
Structure de const statique de_device_id my_sensor_of_match[] = {
{. Compatible = "vendeur, old-soc-i2c" },
{}
};
// Nouveau driver's device tree match table pour HiSilicon
Structure de const statique de_device_id my_sensor_of_match[] = {
{. Compatible = "hisilicon,hi35xx-i2c" }, // Correspondre au contrôleur HiSilicon I2C
{}
};
Cette modification indique au noyau de charger votre pilote lorsqu'il trouve le nœud HiSilicon I2C correspondant dans l'arborescence des périphériques. Ce travail minutieux du pilote est essentiel pour un système ARM performant.
TRANSITION VERS HISILICON MPP
Un avantage majeur de l'utilisation d'un SoC HiSilicon est son dédiéPlateforme de traitement des médias(MPP). Le MPP est une bibliothèque de logiciels haute performance qui utilise des accélérateurs matériels pour l'encodage vidéo, le décodage et le traitement d'images. C'est un élément essentiel de la migration de tout produit multimédia. Passer d'une bibliothèque générique comme FFmpeg à HiSilicon MPP débloque des gains de performance massifs.
L'API MPP donne à votre application un contrôle direct sur le puissant moteur vidéo du SoC ARM. Cette transition vous permet de décharger le traitement lourd des principaux cœurs CPU ARM, les libérant pour d'autres tâches. Il en résulte une consommation d'énergie plus faible et des performances globales du système plus élevées.
Les bénéfices de performance sont significatifs. Par exemple, le HiSilicon Hi3559A ARM SoC fournit des résultats de codage H.265 impressionnants en utilisant son accélérateur matériel MPP.
- Il réalise un codage 8K (7680x4320) en temps réel à 30 images par seconde (fps).
- Il peut encoder simultanément un flux séparé 1080p à 30 fps.
- Il prend également en charge les instantanés haute résolution à 2 fps, même lors de l'encodage vidéo.
Ces capacités sont presque impossibles à réaliser avec un codage uniquement logiciel sur un processeur ARM similaire. L'intégration du HiSilicon MPP est essentielle pour créer un produit compétitif.
FILESYSTEM ET CONFIGURATION DE STOCKAGE
La dernière étape de cette phase consiste à préparer le système de fichiers racine. Le système de fichiers racine contient toutes les bibliothèques, applications et fichiers de configuration dont votre produit a besoin pour s'exécuter. Vous allez créer ce système de fichiers sur votre PC de développement, puis le flasher sur le stockage de l'appareil, comme une puce flash eMMC ou NAND.
Tout d'abord, vous devez choisir un type de système de fichiers. Pour les cartes eMMC ou SD,Ext4Est un choix fiable. Pour le flash NAND brut, un système de fichiers flash commeUBIFSEst mieux parce qu'il gère l'usure-nivellement et les mauvais blocs, prolongeant la durée de vie du stockage.
Ensuite, vous allez remplir le système de fichiers. Cela implique:
- Création d'une structure de répertoire racine (
/Bin,/Lib,/Etc.Etc.). - Copier la bibliothèque C de la chaîne d'outils ARM compilée (
Libc. donc) Et linker dynamique (Ld-linux.so) Dans le/LibRépertoire. - Installation de vos applications compilées croisées et de toutes les bibliothèques tierces requises.
- Copier les bibliothèques HiSilicon MPP (
Libmpi. donc, Etc. pour vous assurer que votre application peut accéder aux accélérateurs matériels.
Compléter cet élément de la liste de contrôle prépare votre appareil avec un environnement logiciel entièrement fonctionnel. Cette migration complète de pilotes et de middleware ouvre la voie au test et à l'optimisation des applications finales, vous rapprochant ainsi de la fin de votre liste de contrôle de migration.
PHASE 4: VALIDATION ET OPTIMISATION
Vous avez atteint la dernière étape de votre migration. Cette phase se concentre sur la validation de votre travail et libérer le plein potentiel de performance de votre nouveau matériel HiSilicon. Vous recompilerez votre logiciel, optimiserez les chemins de code critiques et effectuerez des tests rigoureux à l'échelle du système. Le succès ici garantit que votre produit est stable, fiable et rapide.
RECOMPILATION D'APPLICATION
Votre première tâche consiste à recompiler toutes vos applications et bibliothèques personnalisées. Vous devez utiliser le compilateur croisé HiSilicon que vous avez configuré dans la phase 1. Cette étape garantit que votre logiciel est conçu spécifiquement pour la nouvelle architecture de processeur ARM. Cette recompilation initiale permet à vos applications de s'exécuter sur le périphérique cible, ce qui permet d'ajuster les performances.
UTILISATION DE L'INSTRUCTION NÉON
Pour atteindre des performances maximales, vous devez tirer parti du moteur ARM NEON. NEON est une extension d'architecture SIMD (Single Instruction, Multiple Data) pour les processeurs ARM. Il permet à une instruction unique d'effectuer une opération sur plusieurs éléments de données simultanément. Ceci est extrêmement efficace pour les tâches multimédia et de traitement du signal, conduisant à une augmentation massive des performances.
Vous pouvez refactoriser les fonctions C critiques pour les performances afin d'utiliser les intrinsèques ARM NEON. Cette migration de votre code déverrouille la véritable puissance du SoC HiSilicon ARM.
- Fonction standard de C:Cette version traite un pixel à la fois.
Void AddImage8( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, largeur int, hauteur int) {} Index int = 0; Pour (int y = 0; y <hauteur; y) {} Pour (int x = 0; x <largeur; x) {} Int t = src1[index] src2[index]; Dst [index] = t> 255? 255 : t; Index; } } } - Fonction optimisée au NÉON de BRAS: Cette version ARM traite 16 pixels (octets) à la fois, Améliorant considérablement les performances.
Vide AddImage8AlignedNEON( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, largeur int, hauteur int) {} Int const vectorNumberPerRow = largeur/16; Pour (int y = 0; y <hauteur; y) {} Pour (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 ); // Effectuer l'ajout saturé sur 16 octets Vst1q _ u8( dst, r ); Src1 = 16; Src2 = 16; Dst = 16; } } }
TEST ET DÉBUGAGE DE SYSTÈME
Enfin, vous devez effectuer des tests complets du système. Cela va au-delà de vérifier si les applications s'exécutent. Vous devez valider la stabilité et les performances de l'ensemble du système sous charge. Exécutez des tests de stress pour surveiller l'utilisation du CPU, la consommation de mémoire etPerformance thermique. Ce dernier élément de la liste de contrôle de votre liste de contrôle de migration vérifie que votre appareil ARM répond à toutes les exigences fonctionnelles et de performance, concluant ainsi une migration réussie.
Vous avez terminé avec succès la liste de contrôle de la migration HiSilicon. Cette migration structurée minimise les risques et assure une transition en douceur. Vous devez traiter cette liste de contrôle comme un document vivant pour vos projets. Votre migration HiSilicon réussie débloque des performances supérieures. Vous avez accès au matériel dédié de HiSilicon pour des performances inégalées, assurant d'excellentes performances du système et des performances des applications. Cela conduit à des avantages de performance à long terme.
FAQ
Puis-je réutiliser mes anciens pilotes ARM?
Vous pouvez parfois réutiliser des pilotes génériques. Cependant, vous devez donner la priorité aux pilotes officiels HiSilicon pour les périphériques principaux. Cela garantit la meilleure stabilité et performance pour votre nouveau matériel de bras. Les pilotes personnalisés nécessiteront des mises à jour pour correspondre à la carte mémoire du nouveau SoC et interrompre les affectations.
Pourquoi la transition vers le HiSilicon MPP est-elle nécessaire?
Vous devez passer à la plate-forme de traitement des médias (MPP) pour déverrouiller l'accélération matérielle. Le MPP décharge les tâches vidéo et image de la CPU du bras principal. Cela offre des gains de performance significatifs et réduit la consommation d'énergie, ce qui est essentiel pour les produits multimédias compétitifs.
Quels sont les principaux défis lors du passage à une architecture ARM 64 bits?
Vous devez recompiler tous les logiciels avec une chaîne d'outils 64 bits. Vous devrez peut-être également trouver des versions compatibles 64 bits de bibliothèques tierces. La migration des services conteneurisés nécessite la création d'images multi-architectures pour prendre en charge la nouvelle plate-forme pendant la transition.
Quelle est l'importance du fichier Device Tree (DTS)?
L'arborescence des périphériques est essentielle pour une migration réussie. Vous l'utilisez pour décrire votre disposition matérielle au noyau Linux. La configuration correcte du DTS garantit que le système charge les bons pilotes et attribue les ressources appropriées à votre nouveau dispositif de bras.





