Core OS Best Practices
9/8/2008
Este tópico descreve as práticas recomendadas para trabalhar com os microprocessadores ARMv4 e ARMv5.
ARMv4 e ARMv5 práticas recomendadas
Processadores ARM com versão 4 ou versão 5 arquitetura ter índice praticamente ou praticamente marcados caches. Portanto, colisões de linha armazenar em cache ou serrilhado problemas podem ocorrer. Para evitar esses problemas o kernel uncaches todas as páginas que podem causar esse problema. Ele também usa cópia-na/cópia-out para todos os parâmetros ponteiro nas chamadas sistema modo de usuário e todas as chamadas para CeAllocAsyncBuffer.
Para obter mais informações sobre CEAllocAsyncBuffer, consulte AsynchronousBuffer_t.
A seguinte lista mostra as práticas recomendadas para trabalhar com microprocessadores ARMv4 e ARMv5:
- Evite serrilhado.
- Evite chamado CeMapCallerPtr diretamente, a menos que seja inevitável.
- Use auxiliar empacotar APIs para permitir que o sistema operacional para determinar o apontar equilibrar entre serrilhado e Copy-in/copy-Out.
- Uso CeFlushAsyncBuffer Para liberado assíncrono buffers para o chamador se você precisar o chamador para ver a alteração imediatamente. Para obter mais informações sobre CeFlushAsyncBuffer, consulte AsynchronousBuffer_t.
- Não crie aliases com VirtualCopy.
- Chamar VirtualCopy Somente com o fdwProtect parâmetro definido como PAGE_PHYSICAL.
- Evite sobrepor modos de exibição para o mesmo arquivo mapa (n.); mapear (v.).
- Acessar causar sobreposto modos de exibição para o arquivo mapa (n.); mapear (v.) ser uncached.
For Windows Mobile:
As funções somente que controlar os aliases são CeMapCallerPtr e as funções auxiliar empacotar.
For Windows Embedded CE:
As funções somente que controlar os aliases são CeMapCallerPtr, as funções auxiliar empacotar e a função VirtualAllocCopyEx. Para obter mais informações sobre as funções auxiliar empacotar, consulte Kernel Buffer Marshaling Reference.
ARMv6 e ARMv7 práticas recomendadas
Não use modo rápida interrupção em microprocessadores ARMv6 e ARMv7. Para obter detalhes, consulte Fast Interrupt Mode on ARMv6 and ARMv7 Microprocessors Not Supported.