Compartilhar via


Nk.exe Boot Process

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Durante o processo inicializar, o sistema chama o kernel, Nk.exe é inicializado e então inicializado.

No processo inicializar kernel, a seguinte as chamadas são feitas na ordem mostrado:

Nk.exe

  • Inicialização
  • KernelStart ou KernelInitialize
  • <Função inicialização kernel principal>
  • OEMInitDebugSerial
  • OEMInit
  • KernelInit
  • HeapInit
  • InitMemoryPool
  • ProcInit
  • SchedInit
  • FirstSchedule
  • SystemStartupFunc
  • IOCTL_HAL_POSTINIT

A inicialização

Esta é a primeira função que é chamado durante a inicialização kernel e ele inicializa o CPU para um estado conhecido. O Inicialização função executa a seguinte tarefas:

  • Executa processador mínimo e inicialização hardware.
  • Desabilita as interrupções, caches e unidade gerenciamento de memória (MMU).
  • Após a Inicialização função inicializa o CPU, ele chama o KernelStart Ou KernelInitialize função.

O Inicialização função, em \Startup\Startup.* \Common\Src\Soc\ < identificador BSP > < Hardware Platform Name > %_WINCEROOT%\Platform\, geralmente é escrita linguagem assembly e é compartilhada com o carregador inicializar.

KernelStart ou KernelInitialize

A camada de adaptação OEM (OAL) configura quaisquer platform-ou configurações específicas da CPU que estão exigido para o kernel para acessar ROM e memória RAM. Para iniciar o sistema, ele e vai para KernelInitialize, para x plataformas hardware 86-based, OU KernelStart, para todas as outras plataformas hardware. Nesta apontar, o MMU e caches não devem ser habilitado. O KernelStart Ou KernelInitialize função executa a seguinte tarefas:

  • Inicializar globals kernel por chamado KernelRelocate a partir de seção de cópia em ROM.
  • (ARM e x 86 apenas) Inicializa a primeira-nível tabela página com base no conteúdo de OEMAddressTable.
  • (ARM e x 86 apenas) Permite a MMU e os caches.
  • Inicializa as pilhas para cada modo de operação.
  • Localiza a entrada-point of Kernel.dll usando sumário.
  • Vai para o ponto de entrada de Kernel.dll, a função inicialização kernel principal.

Para MIPS e SHx plataformas, o armazenar em cache e MMU estiver habilitado na ponto de entrada de Kernel.dll. Até que seja o MMU habilitado, os endereços simbólicos kernel são inválido e deve ser traduzido por meio de OEMAddressTable Para obter o físico correto endereços. A implementação das KernelStart e o KernelInitialize função estão sob %_WINCEROOT%\Private\Winceos\Coreos\Nk\Ldr\ <CPU>. Após KernelStart Ou KernelInitialize executou todas as suas tarefas, ele chama a função principal inicialização para o kernel que você está usando.

Função de inicialização do núcleo principal

Função de inicialização principal kernel é responsável por chamado as funções OEM-supplied inicialização. Ele também executa o seguinte tarefas:

  • Configura o NKGLOBALS estrutura
    Isso define todas as exportações kernel à camada de transporte independentes kernel (KITL) e a camada de adaptação OEM (OAL).
  • Inicializa o OEMGLOBALS estrutura.
    Isso define todos o OAL exporta para kernel e KITL.
  • Se a imagem tiver interno KITL, função inicialização kernel carrega Kitl.dll e chama a ponto de entrada de Kitl.dll.
  • Inicializa o porta serial depuração com OEMInitDebugSerial.
  • Exibe a mensagem sign-on Windows Embedded CE a porta de depuração.
  • Inicializa a plataforma hardware com OEMInit.
  • Configura memória usando o KernelFindMemory Rotina.
  • Vai para o KernelInit Rotina para completo de inicialização e vai para o primeiro segmento.

Se você tiver um kernel ARM, KernelStart Chamadas ARMInit como função de inicialização principal kernel.

OEMInitdebugSerial

OEMInitDebugSerial Inicializa o porta serial depuração no dispositivo de destino. Funções de depuração geralmente se comunicar com um serial dispositivo. Como o carregador inicializar implementa o mesmo codificar, uma implementação única pode ser compartilhada entre a OAL e o carregador inicializar. Esses são serial depuração funções que os OEMs precisa implementar:

A faixa NK é exibida após o OEMInitDebugSerial função foi concluída.

OEMInit

OEMInit é implementada por OEMs para inicializar hardware todas as interfaces de dispositivo de destino. Neste apontar no processo de inicializar kernel, as interrupções estão desativadas, e o kernel não conseguir exceções identificador. O kernel apenas serviço disponível para OEMInit é HookInterrupt. OEMInit Pode registrar interrupção serviço rotinas (ISRs) por chamado HookInterrupt. O seguinte hardware inicialização geralmente é exigido:

  • Interrupções
  • Timer do sistema
  • Interface KITL

Depending on o hardware, opcional inicialização inclui o seguinte:

  • Barramento interfaces.

Exemplo das implementações das OEMInit função estão em %_WINCEROOT%\Platform\ <Nome da plataforma de hardware> \Src\OAL\.

KernelInit

O KernelInit função encapsula a inicialização de kernel. Ele inicializa o seguinte partes de kernel a chamadas para inicialização diferentes funções:

  • Pilha
  • Pool de memória.
  • Processo de kernel.
  • Agendador.

Depois de chamar para esta função, o sistema está pronto para cronograma o primeiro segmento através de SystemStartupFunc. A implementação das KernelInit função está sob o Diretório particular.

HeapInit

HeapInit Inicializa o heap kernel.

A implementação das HeapInit função está sob o Diretório particular.

InitMemoryPool

InitMemoryPool Inicializa o pool memória kernel.

A implementação das InitMemoryPool função está sob o Diretório particular.

ProcInit

ProcInit Inicializa o processo kernel Windows Embedded CE.

A implementação das ProcInit função está sob o Diretório particular.

SchedInit

SchedInit Inicializa o Agendador de tarefas e cria o SystemStartupFunc segmento.

A implementação das SchedInit função está sob o Diretório particular.

FirstSchedule

FirstSchedule Inicia o Agendador de tarefas.

A implementação das FirstSchedule função está sob o Diretório particular.

SystemStartupFunc

SystemStartupFunc Executa IOCTL_HAL_POSTINIT. Implementação desta função pode ser manipulada por codificar OEM para o processo inicialização kernel completo. A implementação das SystemStartupFunc função está sob o Diretório particular.

See Also

Concepts

Kernel Overview

Other Resources

File System Boot Process
Bringing Up a Hardware Platform
Developing a Device Driver
Kernel Migration