Pergunta

Como o Keil comparar com GCC para o desenvolvimento ARM7? Eu estou no processo de escolha de consultores HW para um projeto de tamanho médio e algum uso Keil e alguns usam gcc. Eu gostaria de saber os truques envolvidos em ir com uma ou outra opção ...

Foi útil?

Solução

Há muito pouca diferença entre os dois a partir de uma codificação ponto de vista / desenvolvimento. A única coisa que eu acho que você deve considerar não é específico para estes compilador. Manutenção :

  • Você será capaz de manter a software, se você não tem acesso a o compilador Keil ou ele vai ser um custo menor?
  • Também o que debughardware / JTAG é suportado e qual será o custo, se você precisa para obter algum?
  • O que será o custo se você tem que se deslocar de um compilador a outra compilador devido a ter de desenvolvedores de switch mais tarde?

A menos que você está muito custo sensível Eu acho que a verdadeira questão é quem vai fazer o melhor trabalho desde que o compilador será um problema menor.

Outras dicas

Deve ser possível estruturar seu código para usar ambos os compiladores. Atributos como "embalado" pode ser macro'd-se para que o código é feliz em ambas. Detalhes do hardware Empurre para baixo em níveis mais baixos, e hardware configure mapas em tempo de execução em vez de tempo de compilação. Se você deve ter versões separadas Kiel e do CCG de um pedaço de código, colocá-los em arquivos e configure separadas que é usado com o make gcc ou o arquivo de projeto Kiel.

Um problema que eu ainda tenho que resolver é o código assembler. usos Kiel armasm, enquanto usos gcc como. Eles parecem ter muito diferentes formatos de código fonte. Outra razão para assembler Se você pode evitar.

A vantagem de ir com GCC é que você pode segmentar plataformas não-ARM - ideal para simular a sua aplicação em uma plataforma com muito melhores ferramentas de desenvolvimento (ou seja valgrind no Linux x86). Na verdade, esta é a abordagem todas aplicativo alvo-ARM deve tomar. Desenvolver em x86 primeiro, depois da porta para ARM.

Há também o custo de se manter atualizado com Kiel. Uma vez lugar que eu conheço é preso em RVDK 2.1 (2002?), Porque o custo de atualizar para a mais recente para três desenvolvedores, é proibitivo.

Eu também gostaria de acrescentar que gcc & pedante vai sacudir avisos e erros em seu código muito melhor do que o nosso (reconhecidamente antigo) versão de Kiel vai.

Kiel pode entregar mais apertado código ARM, para mantê-lo para fazê-alvo constrói. Caso contrário, use GCC.

Se bem me lembro Kiel é agora propriedade da ARM. compiladores ARM são noite e dia melhor do que gcc para produzir bom código. Eu me lembro Keil incluindo uma versão reduzida ou livre ou o que quer de RVCT. Então, minha pergunta é ter muito mais rápido, mais limpo, melhor valor de código usando uma solução comercial quando gcc está lá fora, e bem usado? Eu iria com gcc, a menos que você está em uma situação de desempenho crise e estão dispostos a ter de traduzir mentalmente entre todas as informações com base no gcc disponível gratuitamente na rede para as suas ferramentas comerciais e de volta. Em geral indo com gcc é provavelmente o melhor caminho, concedido há provavelmente uma riqueza de informações atrás da caixa de pesquisa do Google para Kiel mas a quantidade de conhecimento e informação para o GCC soluções baseadas sombras isso.

Se os consultores estão usando uma ferramenta para fazer o trabalho braçal inicial para um projeto para você e, em seguida, no final eles entregar o trabalho longo, você provavelmente vai querer ter uma solução baseada gcc (que não diz média vxworks gcc, ou mesmo código sourcery gcc, mas uma solução gcc genérico), porque, sem dúvida, você ou alguém que você contratar vai ter que pegar essa massa e correr com ele e com gcc você é mais provável encontrar alguém disposto e capaz.

O principal benefício de uma solução comercial é o suporte para mim, se você tiver problemas com o compilador ou bibliotecas.
Open source é bom quando você estiver usando hardware corrente principal (no caso de gcc = x86). A maioria dos problemas do compilador ou as bibliotecas normalmente será corrigido em breve pela comunidade.
Se você estiver desenvolvendo em uma plataforma (talvez exótico) incorporado em breve você pode se sentir muito solitário, se você tiver quaisquer problemas com a cadeia de ferramentas.

Nós usamos a plataforma Keil e estamos muito felizes com o seu desempenho e otimização. Corri alguns benchmarks padrão de um par de anos atrás e eles foram muito bons. Outra consideração é o suporte e, até agora, Keil teve muito bons tempos de resposta e relativamente bom feedback sobre algumas questões difíceis.

FYI, se seu projeto usará o Keil RTOS e você tem alguma dúvida sobre isso, o código fonte está disponível para compra.

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