Pergunta

Pediram-me para avaliar a plataforma Android para o nosso produto e estou procurando várias opções, estou apenas arranhando a superfície agora e a única coisa que está me incomodando é que não consigo ver como compilar o código como código ARM direto (sem Thumb), sei que o Thumb roda mais devagar e precisaremos do desempenho nas principais seções do nosso código.

EU pensar deveria estar apenas configurando o -march bandeira no LOCAL_CFLAGS do Android.mk arquivo, mas não consigo fazer isso funcionar ...

Alguém pode ajudar?

Foi útil?

Solução

Especificando a seguinte bandeira para um módulo em Android.mk Compilará o código de braço reto.

LOCAL_ARM_MODE := arm

Ativar otimização também pode ajudar:

LOCAL_CFLAGS := -O3

Outras dicas

Você pode construir em ARM, Thumb ou uma mistura dos dois.

No makefile, em LOCAL_SRC_FILES, onde você listaria MyFile.c, especificamos MyFile.c.arm (não renomeie o arquivo no disco, apenas faça isso na lista de arquivos de origem).Esta convenção é usada em todo o Android para código que é crítico para o desempenho (ou apenas precisa ser ARM por algum motivo).

As notas usuais se aplicam, é claro:O código Thumb tende a exigir mais instruções para realizar algo, mas cada instrução tem metade do tamanho, então o código geralmente é um pouco mais lento, mas também um pouco menor.Em algumas situações, o tamanho menor permite um melhor ajuste aos (minúsculos) caches das CPUs ARM, podendo até ser mais rápido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top