O Checklist Migração Ultimate HiSilicon para 2025

Sua migração HiSilicon bem-sucedida começa com um plano estruturado. Esta lista de migração fornece o roteiro de alto nível

O

Sua migração HiSilicon bem-sucedida começa com um plano estruturado. Essa lista de verificação de migração fornece o roteiro de alto nível para todo o projeto, garantindo uma transição suave e desempenho superior.

Sua jornada de migração completa é dividida em quatro fases principais. Siga esta lista para alcançar o máximo desempenho com seu novo hardware HiSilicon.

  1. Fase 1: Análise Pré-Migração
    • Objetivo: Mapear as diferenças do hardware e preparar o HiSilicon SDK e o toolchain.
  2. Fase 2: Portagem do sistema de baixo nível
    • Objetivo: Adaptar o bootloader e o kernel para o dispositivo alvo.
  3. Fase 3: Migração do Driver e do Middleware
    • Objetivo: Portar drivers periféricos e transição para a HiSilicon Media Processing Platform (MPP).
  4. Fase 4: Validação e Otimização
    • Objetivo: Recompilar aplicativos e realizar testes em todo o sistema para validar a migração.

Principais Takeaways

  • Planeje sua migração HiSilicon em quatro etapas: analisar, portar sistemas de baixo nível, mover drivers e testar tudo.
  • Antes de começar, verifique as diferenças de hardware e configure suas ferramentas. Isso ajuda a evitar problemas mais tarde.
  • Verifique se o bootloader e o kernel funcionam no novo hardware HiSilicon. Isso permite que seu dispositivo inicie corretamente.
  • Atualizar drivers para o hardware e usarSoftware especial da HiSiliconPara a mídia. Isso faz com que os recursos do seu dispositivo funcionem bem.
  • Teste seus aplicativos e torne-os mais rápidos. Isso garante o seuNovo dispositivo HiSiliconFunciona sem problemas e confiável.

FASE 1: O PRE-MIGRATION CHECKLIST

Essa fase inicial é a base de todo o seu projeto migratório. Uma análise completa pré-migração evita obstáculos futuros e garante uma transição suave. Você mapeará os recursos do hardware e preparará seu ambiente de desenvolvimento para a nova plataforma HiSilicon.

CARACTERÍSTICAS DE HARDWARE MAPEAMENTO

Seu primeiro passo é entender as diferenças arquitetônicas entre sua plataforma de origem e o HiSilicon SoC alvo. Esta análise ajuda você a antecipar portar desafios. Crie uma tabela comparativa detalhada para mapear recursos. Esse item do checklist é fundamental para uma migração bem-sucedida.

Para uma migração de um ARM de núcleo único genérico Cortex-A7 para um HiSilicon ARM de núcleo duplo Cortex-A7, seu mapa pode ficar assim:

CaracterísticaPlataforma Fonte (Exemplo)Alvo Plataforma HiSiliconNotas Migração
CPUBRAÇO do Único-núcleo Cortex-A7BRAÇO do Duplo-núcleoAtualize a configuração do kernel para o SMP.
GPUMali 400 MP1Mali MP4 450Requer novos drivers gráficos e integração MPP.
MemóriaDDR3 @ 533MHzDDR4 @ 800MHzAjuste os tempos do controlador de memória no U-Boot.
Periféricos2x UART, 1x I2C, 1x SPI4x UART, 2x I2C, 2x SPIMapear dispositivos árvore nós para novos endereços periféricos.

INSTALAÇÃO DE FERRAMENTAS E SDK

Em seguida, você deve configurar a cadeia de ferramentas de compilação cruzada HiSilicon oficial e o Software Development Kit (SDK). Este ambiente é essencial para a construção do bootloader, kernel e aplicações para o seu novo hardware ARM.

  1. Instale o Cross-Compiler:

    # Descompacte o toolchain ARM
    Tar-xzf arm-himix200-linux.tgz
    # Adicione o compilador ao PATH do seu sistema
    Exportação PATH = $(pwd)/arm-himix200-linux/bin:$ PATH
    
  2. Descompacte o HiSilicon SDK:

    # Descompacte o pacote principal do SDK
    Tar-xzf Hi35XX_SDK_V2.0.X.X.tgz
    

REDE BOOT INSTALAÇÃO AMBIENTE

Uma configuração de inicialização de rede usando TFTP e NFS acelera o desenvolvimento permitindo que você teste alterações sem piscar o dispositivo a cada vez. Esta é uma parte fundamental da lista de migração para melhorar a eficiência.

Configure seu PC de desenvolvimento como servidor:

  1. Instalar Servidores:No Ubuntu, instale os pacotes necessários.
    Sudo apt-get install nfs-kernel-server tftpd-hpa
    
  2. Configurar o NFS:Crie um diretório compartilhado e conceda permissões.
    Sudo mkdir /home/$ {USUÁRIO}/nfs
    Sudo chmod 777 /home/$ {USUÁRIO}/nfs
    
  3. Exportar o diretório:Editar/Etc/exportaçõesE adicione esta linha, então reinicie o serviço.
    /Home/<user>/nfs *(rw,sync,no_root_squash)
    

    Sudo service nfs-kernel-reinicialização do servidor

Dica Pro: Solução do TFTP Timeouts Se você encontrar timeouts TFTP, não aumente apenas o valor do timeout. Em vez disso, use um sniffer de rede como o Wireshark para verificar se a placa HiSilicon está enviando ACKs. Além disso, verifique se as regras do firewall do seu PC não estão bloqueando o tráfego. Uma implementação incorreta do temporizador ARM também pode causar falhas nas transações de rede, afetando o desempenho geral.Essa etapa de análise pré-migração garante que seu hardware e software trabalhem juntos para um desempenho ideal. A migração para uma nova plataforma ARM Cortex-A7 requer esse nível de detalhe.

FASE 2: PORTAÇÃO DO SISTEMA DE BAIXO NÍVEL

FASE

Agora você está entrando na fase técnica principal da migração. O objetivo da portabilidade de sistemas de baixo nível é fazer com que o software fundamental-o bootloader e o kernel-seja executado em seu novo hardware HiSilicon. O sucesso neste estágio garante que seu dispositivo possa inicializar e reconhecer seus principais componentes. Este é um passo crítico na sua lista de migração.

BOOTLOADER (U-BOOT) CONFIGURAÇÃO

Sua primeira tarefa na portabilidade de sistema de baixo nível é configurar o bootloader Das U-Boot. Você deve adaptar o U-Boot ao layout específico de memória e armazenamento da sua nova placa HiSilicon. Isso envolve ajustar os tempos do controlador de memória para o novo tipo DDR e definir o mapa de partição flash.

Por exemplo, você definirá como o armazenamento eMMC é dividido para o gerenciador de inicialização, kernel e sistema de arquivos raiz. Você controla esse layout diretamente nas variáveis de ambiente U-Boot.

Você define o layout da partição memória flash usandoBlkdevpartsParâmetro dentro doBootargsVariável. Isso diz ao kernel como o armazenamento é organizado.

Bootargs = console = ttyAMA0,115200 root =/dev/mmcblk0p4 rootfstype = ext4 rootwait blkdevparts = mmcblk0:1M(fastboot),1M(bootargs),8M(kernel),128M(rootfs),-(sistema)

Neste exemplo, para um dispositivo ARM, você cria partições separadas paraFastbootPor exemplo,Kernel, ERaízes-A. Você deve garantir que essas definições correspondam ao seu esquema de partição real para evitar falhas.

PORTAÇÃO DE QUERNEL E ADAPTAÇÃO DTS

Em seguida, você irá adaptar o kernel Linux para o HiSilicon System-on-Chip (SoC). A parte mais importante desse processo é modificar o arquivo Device Tree Source (DTS). O DTS é uma estrutura de dados que descreve o hardware do kernel, informando quais drivers carregar e quais recursos (como endereços de memória e interrupções) eles usam.

Você deve configurar corretamente o relógio e redefinir os nós do controlador no DTS. Isso garante que todos os periféricos recebam os sinais do relógio corretos para operação adequada. Para um HiSilicon SoC, você pode definir freqüências de clock específicas para diferentes partes de um periférico. Por exemplo, você podeAtribua um relógio de 24 MHz à interface SPI NOR enquanto atribui um relógio de 30 MHz à interface SPI NAND, tudo dentro do mesmo controlador de memória Flash-A. Este controle de granulação fina é fundamental para alcançar o desempenho ideal.

Para garantir que seus periféricos inicializem corretamente, sua configuração DTS para a plataforma HiSilicon deve incluir:

ARM ARQUITECTURA CONSIDERAÇÕES

O passo final nesta fase é dar conta das diferenças na arquitetura do ARM. Movendo-se de um simples single-core ARM Cortex-A7 para um multi-core ou big.LITTLE HiSilicon SoC introduz novas oportunidades para otimização de desempenho, mas também requer configuração de software cuidadosa. O sucesso de sua migração depende de quão bem você gerencia essas novas complexidades.

Se o seu novo HiSilicon SoC usa uma arquitetura big.LITTLE (combinando poderosos núcleos ARM "grandes" com núcleos ARM "pequenos" eficientes),Você deve configurar o agendador do kernel. Esse agendador decide quais tarefas são executadas em quais núcleos para equilibrar o desempenho e o consumo de energia.

  • Modo IKS (Switcher no Kernel): Este modo apresenta um conjunto de núcleos virtuais para o kernel. Ele move dinamicamente tarefas entre núcleos grandes e pequenos com base na carga do sistema.
  • Modo HMP (Multi-processamento heterogêneo): Este modo trata os núcleos grandes e pequenos separadamente. O programador atribui tarefas leves para os núcleos pequenos e tarefas exigentes para os núcleos grandes para a máxima eficiência.

Além do scheduler, uma migração para uma arquitetura ARM mais recente, como do ARMv7 (usado em muitos Cortex-A7 SoCs) para o ARMv8, apresenta outros desafios. Esta lista ajuda você a se preparar para eles.

  • Atualizar bibliotecas e ferramentas: Talvez seja necessário atualizar suas bibliotecas de software para versões mais recentes que suportem a arquitetura ARM de 64 bits.
  • Lidar com suporte limitado de terceiros: Algumas de suas ferramentas existentes podem não ter uma versão compatível com ARM. Talvez você precise encontrar alternativas ou trabalhar com fornecedores.
  • Migrar serviços contentorizados: Se você usa o Docker, deve criar imagens de contêiner de várias arquiteturas que podem ser executadas nas plataformas ARM antiga e nova.

FASE 3: MIGRAÇÃO DE MOTORISTA E MIDDLEWARE

Com a inicialização do dispositivo, agora você pode se concentrar em tornar seus recursos funcionais. Esta fase da migração envolve a portabilidade do software que controla oPeriféricos hardwareE integrando o poderoso middleware da HiSilicon. Seu objetivo é dar vida aos recursos exclusivos do seu produto na nova plataforma ARM.

MIGRAÇÃO DE MOTORISTA PERIFERAL

Drivers periféricos são pontes de software entre o kernel Linux e hardware físico como o I2CSensores, SPI flash, e portas UART. Sua migração exige que você adapte esses drivers para o novo HiSilicon SoC. Muitos drivers ARM genéricos podem funcionar com pequenas alterações, mas outros precisarão de atualizações significativas.

Seu primeiro passo é revisar os drivers da sua antiga plataforma ARM. Você deve identificar quais drivers são personalizados e quais são padrão. O HiSilicon SDK geralmente fornece drivers prontos para uso para seus periféricos internos. Você deve priorizar o uso desses drivers oficiais para a melhor estabilidade e desempenho.

Para drivers personalizados, você precisará modificar o código-fonte. Isso geralmente envolve atualizar endereços de E/S mapeados na memória e números de interrupção para corresponder ao novo hardware HiSilicon. Você encontra esses novos valores na folha de dados do SoC.

Dica Pro: UseRegmapPara Drivers Cleaner O LinuxRegmapA API ajuda você a criar drivers ARM mais limpos e portáteis. Ele abstrai registro direto longe lê e escreve. Isso torna o código do driver mais fácil de manter e adaptar para o futuro hardware ARM. UsandoRegmapSimplifica a migração do driver.

Por exemplo, você pode atualizar a string de compatibilidade da árvore de dispositivos do driver e registrar as definições.

// Tabela de correspondência árvore dispositivo do motorista antigo
Static const struct of_device_id my_sensor_of_match[] = {
{. Compatível = "vendor,old-soc-i2c" },
{}
};

// Nova tabela de correspondência de árvore de driver para HiSilicon
Static const struct of_device_id my_sensor_of_match[] = {
{. Compatível = "hisilicon,hi35xx-i2c" }, // Combine o controlador HiSilicon I2C
{}
};

Essa alteração diz ao kernel para carregar seu driver quando encontrar o nó HiSilicon I2C correspondente na árvore de dispositivos. Este trabalho cuidadoso do driver é essencial para um sistema ARM bem sucedido.

TRANSIÇÃO PARA HISILICONE MPP

Uma grande vantagem de usar um HiSilicon SoC é a sua dedicadaPlataforma Processamento Mídia(MPP). O MPP é uma biblioteca de software de alto desempenho que usa aceleradores de hardware para codificação de vídeo, decodificação e processamento de imagem. Esta é uma parte crítica da migração para qualquer produto multimídia. Movendo-se de uma biblioteca genérica como FFmpeg para o HiSilicon MPP desbloqueia enormes ganhos de desempenho.

A API MPP dá ao seu aplicativo controle direto sobre o poderoso mecanismo de vídeo no SoC ARM. Essa transição permite descarregar o processamento pesado dos núcleos principais da CPU ARM, liberando-os para outras tarefas. O resultado é menor consumo energético e maior desempenho geral do sistema.

Os benefícios do desempenho são significativos. Por exemplo, o HiSilicon Hi3559A ARM SoC oferece impressionantes resultados de codificação H.265 usando seu acelerador de hardware MPP.

  • Ele consegue em tempo real 8K (7680x4320) codificação a 30 quadros por segundo (fps).
  • Ele pode codificar simultaneamente um fluxo 1080p separado a 30 fps.
  • Ele também suporta instantâneos de alta resolução a 2 fps mesmo enquanto codifica vídeo.

Esses recursos são quase impossíveis de alcançar com codificação somente de software em um processador ARM similar. Integrar o HiSilicon MPP é fundamental para construir um produto competitivo.

INSTALAÇÃO DE FILESISTEMA E ARMAZENAMENTO

O passo final nesta fase é preparar o sistema de arquivos raiz. O sistema de arquivos raiz contém todas as bibliotecas, aplicativos e arquivos de configuração que seu produto precisa executar. Você criará esse sistema de arquivos no seu PC de desenvolvimento e o exibirá para o armazenamento do dispositivo, como um chip flash eMMC ou NAND.

Primeiro, você deve escolher um tipo filesystem. Para eMMC ou cartões SD,Ext4É uma escolha confiável. Para flash NAND bruto, um sistema de arquivos flash comoUBIFSÉ melhor porque gerencia o desgaste-nivelamento e os blocos maus, estendendo a vida do armazenamento.

Em seguida, você preencherá o sistema de arquivos. Isto envolve:

  1. Criando uma estrutura do diretório raiz (/CaixaPor exemplo,/LibPor exemplo,/Etc, Etc.).
  2. Copiando a biblioteca C da cadeia de ferramentas ARM compilada (Libc. então) E vinculador dinâmico (Ld-linux.so) Para o/LibDiretório.
  3. Instalando seus aplicativos de compilação cruzada e quaisquer bibliotecas de terceiros necessárias.
  4. Copiando as bibliotecas MPP HiSilicon (Libmpi. Então, Etc.) para garantir que seu aplicativo possa acessar os aceleradores de hardware.

A conclusão deste item do checklist prepara o seu dispositivo com um ambiente totalmente funcional. Essa migração abrangente de drivers e middleware prepara o terreno para o teste final e a otimização do aplicativo, aproximando você de concluir sua lista de migração.

FASE 4: VALIDAÇÃO E OTIMIZAÇÃO

FASE

Você chegou ao estágio final de sua migração. Esta fase se concentra em validar seu trabalho e desbloquear todo o potencial de desempenho do seu novo hardware HiSilicon. Você vai recompilar seu software, otimizar caminhos de código críticos e realizar testes rigorosos em todo o sistema. O sucesso aqui garante que seu produto seja estável, confiável e rápido.

RECOMPILAÇÃO DE APLICAÇÃO

Sua primeira tarefa é recompilar todos os seus aplicativos e bibliotecas personalizadas. Você deve usar o compilador cruzado HiSilicon que você configurou na Fase 1. Esta etapa garante que seu software seja construído especificamente para a nova arquitetura do processador ARM. Essa recompilação inicial coloca seus aplicativos em execução no dispositivo de destino, preparando o cenário para o ajuste de desempenho.

UTILIZAÇÃO DE INSTRUÇÃO DE NEON

Para alcançar o máximo desempenho, você deve aproveitar o motor ARM NEON. NEON é uma extensão de arquitetura SIMD (Single Instruction, Multiple Data) para processadores ARM. Ele permite que uma única instrução execute uma operação em várias partes de dados simultaneamente. Isto é extremamente eficaz para tarefas multimídia e processamento de sinal, levando a um enorme aumento do desempenho.

Você pode refatorar funções C críticas de desempenho para usar os intrinsics ARM NEON. Essa migração do seu código desbloqueia o verdadeiro poder do SoC HiSilicon ARM.

  • Função padrão C:Esta versão processa um pixel de cada vez.
    Void AddImage8( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, int largura, int altura)
    {
    Int índice = 0;
    For (int y = 0; y <altura; y)
    {
    For (int x = 0; x <largura; x)
    {
    Int t = src1 [índice] src2 [índice];
    Dst [index] = t> 255? 255 : t;
    Índice;
    }
    }
    }
    
  • BRAÇO NEON função otimizada: Esta versão ARM processa 16 pixels (bytes) de uma vez, Melhorando drasticamente o desempenho.
    Void AddImage8AlignedNEON( uint8 _ t * dst, uint8 _ t const * src1, uint8 _ t const * src2, int largura, int altura)
    {
    Int const vectorNumberPerRow = width / 16;
    For (int y = 0; y <altura; y)
    {
    For (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 ); // Executa adição saturada em 16 bytes
    Vst1q _ u8( dst, r );
    Src1 = 16;
    Src2 = 16;
    Dst = 16;
    }
    }
    }
    

ENSAIO E DEBUGGING DE SISTEMAS

Finalmente, você deve realizar testes abrangentes do sistema. Isso vai além verificar se os aplicativos são executados. Você precisa validar a estabilidade e o desempenho de todo o sistema sob carga. Execute testes de estresse para monitorar o uso da CPU,Desempenho térmico-A. Este item final do checklist de migração verifica se o dispositivo ARM atende a todos os requisitos funcionais e de desempenho, concluindo uma migração bem-sucedida.


Você concluiu com êxito a checklist migração HiSilicon. Essa migração estruturada minimiza os riscos e garante uma transição suave. Você deve tratar esta lista como um documento vivo para seus projetos. Sua migração HiSilicon bem sucedida desbloqueia desempenho superior. Você obtém acesso ao hardware dedicado da HiSilicon para desempenho incomparável, garantindo excelente desempenho do sistema e desempenho do aplicativo. Isso leva a benefícios de desempenho a longo prazo.

FAQ

Posso reutilizar meus drivers ARM antigos?

Às vezes você pode reutilizar drivers genéricos. No entanto, você deve priorizar os drivers oficiais HiSilicon para periféricos centrais. Isso garante a melhor estabilidade e desempenho para o seu novo braço hardware. Drivers personalizados exigirão atualizações para corresponder ao mapa de memória do novo SoC e interromper as atribuições.

Por que a transição para o HiSilicon MPP é necessária?

Você deve fazer a transição para o Media Processing Platform (MPP) para desbloquear a aceleração do hardware. O MPP descarrega tarefas de vídeo e imagem da CPU do braço principal. Isso proporciona ganhos significativos de desempenho e reduz o consumo de energia, o que é crítico para produtos multimídia competitivos.

Quais são os principais desafios ao mudar para uma arquitetura ARM de 64 bits?

Você deve recompilar todo o software com um toolchain de 64 bits. Talvez você também precise encontrar versões compatíveis de 64 bits de bibliotecas de terceiros. Migrar serviços conteinerizados requer a criação de imagens multi-arquitetura para suportar a nova plataforma braço durante a transição.

Qual é a importância do arquivo Device Tree (DTS)?

A Device Tree é essencial para uma migração bem-sucedida. Você o usa para descrever o layout do seu hardware para o kernel Linux. A configuração correta do DTS garante que o sistema carregue os drivers certos e atribua os recursos adequados para o seu novo dispositivo de braço.

Related Articles