Pergunta

Estamos começando um novo projeto baseado um PIC18F252 microchip. Qual é a melhor 'c' compilador para uso?

Foi útil?

Solução

tecnologia PICC tem sido sempre confiável para mim e teve muitos anos de desenvolvimento.

Outras dicas

  1. Microchip C18 compilador : realmente a melhor e mais fácil de usar. Perfeito para uso profissional.
  2. HI-TECH : Usado quando Microchip não trabalho (ele foi para um PIC16).
  3. CCS
  4. SourceBoost

PS: Eu próprio trabalhei sobre a família PIC18F25XX e PIC18F45xx, então eu sei uma pequena pouco sobre isso. ;)

PS2: Em caso de erro de compilação (que aconteceu para nós), a equipe Microchip é muito reativo e novas versões são lançadas muito rapidamente. Tente encontrar um revendedor local, que tem contato com Microchip, em seguida, participar de um evento com eles e obter contactos directos. Inestimável.

Eu fiz uma extensa pesquisa sobre o compilador Hitech PICC18 eo compilador Microchip C18 há alguns anos.

Eu acho que a maioria das pessoas que decidem ir com o compilador Microchip C18 só porque eles vêem isso quando eles vão para o site do microchip e já estão familiarizados com Mplab de fazer montagem (que é um terrível IDE IMHO).

A solução da HiTech é muito mais perto de ANSI C (daí código é muito mais portátil). Com C18 você tem adicionar todos os tipos de palavras-chave do compilador específico e seu forçados a gerenciar a memória muito mais.

  1. Você tem que especificar qual banco ram para alocar variáveis ??a.
  2. Para ter const string ser alocado para o espaço Programa (em vez de ram) você tem que usar a palavra-chave rom.
  3. Você não pode alocar variáveis ??que são maiores, em seguida, 256 bytes sem editar um script vinculador.

Um excelente relação que vai muito mais em profundidade pode ser encontrada aqui: http: //www.xargs.com/pic/picc18-vs-c18.html

Além do compilador você também precisa levar em consideração o IDE. Eu sou um fã ávido eclipse e por isso eu realmente gostei HiTide da HiTech por este motivo. No entanto, desde Microchip comprou HiTech ... parece que eles já não estão apoiando HiTide. Eu não acho que este é oficial ... mas da minha experiência com o apoio HiTech ... eles não estão consertando bugs mais que é uma verdadeira vergonha.


Eu também tentei seus compiladores pro. Eu realmente gosto da idéia. Mas, meu projeto ultrapassou as exigências do bloco auto param e foi incapaz de usá-lo. Ele também parecia ter um verrrryyy tempo para compilar, mas poderia ter sido b / c da complexidade do programa.

Eu não usei o compilador Microchip, mas têm vindo a utilizar produtos de alta tecnologia por anos. Eu geralmente gostei de seu compilador PIC16, mas encontrar o seu compilador PIC18 um pouco frustrante. Embora eu não gostar de ter a mão-lugar todas as variáveis ??nos bancos, as regras utilizadas pelo compilador da HiTech são irritantes, bizarro, e pateta. Breve histórico: o chip tem 16 bancos de 256 bytes de variáveis ??(* nem todos os 256 bytes estão disponíveis em todos os bancos) e um ponteiro banco. acesso directo a uma variável exige que o banco adequada ser selecionada; mudando bancos leva uma instrução.

globais e estáticos ints e estruturas, e matrizes dos mesmos, cujas cadeias de tamanho de 2-255 bytes cada serão atribuídos em psects sobre uma base por módulo; psect de cada módulo deve caber em uma página de 256 bytes. Matrizes de bytes, assim como bytes individuais, ir em uma psect "grande", onde cada byte é assumida como possivelmente residem em uma página diferente.

Todas as variáveis ??automáticas e parâmetros de todo o programa deve caber em uma página de 256 bytes (eles são alocados estaticamente em tempo de link). O vinculador faz variáveis ??de sobreposição que nunca são ao vivo simultaneamente, mas assume qualquer chamada para um ponteiro de função com uma assinatura particular pode chamar qualquer função cujo endereço é tomada e que tem essa assinatura.

É possível declarar até 128 bytes' no valor de variáveis ??globais e estáticas para ser 'próximo'. Estes podem ser acessados ??sem banco de comutação. Não é possível designar que as variáveis ??automáticas ou parâmetros ser colocado 'perto'.

As regras de comutação bancárias utilizadas pela HiTech significam que muitas funções, mesmo que nunca utilizar quaisquer variáveis ??fora do seu próprio módulo, será polvilhado com movlb (switch-bancários) instruções.

Eu não quero "geração de código onisciente". Eu quero a capacidade de adicionar algumas dicas para colocar as coisas de forma sensata, definindo palavras-chave ou macros para psects personalizados, permitindo variáveis ??automáticas e locais para psects share com outras variáveis ??(sobrepondo variáveis ??Auto / parâmetros na medida do possível, dadas as restrições bancárias especificadas). Se um fornecedor compilador realmente quer ser legal, permitir ponteiros para aceitar eliminatórias bancários, de modo que um ponteiro que apenas iria apontar para as coisas de uma certa psect poderia ser armazenada em 8 bits. Da mesma forma, permitir eliminatórias bancárias sobre as funções e ponteiros de função para especificar que certas chamadas indiretas só pode trabalhar com determinadas funções. Em vez de fazer função ponteiros de 24 bits ou de ter de trabalho para assegurar funções indirectos chamado acabar na primeira 64K, colocar uma GOTO automática no primeiro 64K assim ponteiros de função pode ser 16-bits. Ou melhor ainda, se uma função 'classe' tem menos de 64 funções diferentes, use um ponteiro de 8-bit.

Am I pedir demais?

CCS e é muito bom. Muito lento, mas funciona bem. De qualquer forma, eu não tenho qualquer comparação com outros compiladores, então pode haver melhores escolhas.

Eu não fiz como CCS, que era muito peculiar.

SourceBoost não é ruim e muito barato, cerca de £ 40.

O compilador Microchip C18 é o melhor IMO, mas muito caro. Há uma edição demo gratuita / aluno, no entanto.

Eu uso atualmente CCS e odiá-lo. É por isso não-padrão e tanto de um subconjunto de C, que é uma droga. Estou pensando em mudar em breve. Eu vou tentar compilador Microchip C18 primeiro e depois eu vou engolir em seco e obter HighTech que parece bastante sólido a partir da revisão da versão de teste e amostras.

IAR Sistema tem um compilador PIC18 / IDE:. IAR Embedded Workbench para PIC18

Eu tenho usado o CCS por muitos anos. Eu encontrei alguns bugs, mas não apoio é grande e eu posso desenvolver mais rápido e mais fácil com CCS do que com C18 ou HiTec

Insisto em que você usa o compilador C18. É extremamente robusto e muito fácil de usar. É um deve ter para o desenvolvimento profissional. Ela realmente depende do tamanho do projeto que você está trabalhando.

Comece com a edição gratuita / aluno e você terá uma boa sensação para usá-lo. Se o seu projeto for pequeno, que pode ser tudo o que você precisa. Acabei de terminar um projeto dev grande ish tamanho em um PIC 18F e eu estava extremamente satisfeito com o compilador C18.

MPLAB C18 - Student

Eu tenho usado SourceBoost por um ano ou assim, e eu não estou totalmente emocionado, mas tem sido bem. No entanto, apenas completaram um teste de código de tamanho entre SourceBoost 7, MCC18 e Hi-Tech C. Os resultados foram notáveis.

Para um pequeno programa de amostra (que estruturas incuded, matrizes, ponteiros de função, ponteiros estrutura, carboniza e ints) o código produzido kit SB7 que era cerca de 2/3 do tamanho do MCC18 e HTC. Eu queria detemine quanto do que foi inicialização e tempo de execução em cima, então eu adicionei coisas mais aleatório para o programa de amostra, eo delta tamanho mostrou que SB ainda 2/3 foi o tamanho dos outros. HTC foi ligeiramente menor do que MCC18, mas não significativamente. Todas as otimizações estão em em todos os ambientes.

As coisas que eu não gosto sobre SB são:

  • limitado assembler in-line
  • lento para compilar e ligação
  • O IDE é apenas um pouco melhor do que MPLAB.

As coisas que eu gosto sobre isso são:

  • Bem, o tamanho do código certeza parece menor do que a concorrência.
  • Algumas extensões para a linguagem (por exemplo referências). Mata portabilidade, no entanto.
  • O preço.
  • Suporte através dos fóruns é realmente muito bom. Os autores muitas vezes postam.
  • eliminação automática de código não utilizado (acho que esse recurso diminui a compilação e link)

Desde que eu não gosto da SB IDE, eu uso Fonte Insight for um editor e rocks! O utilitário SB "make" é impossível bem, então eu uso GnuWin32 marca, que é absolutamente o negócio real, e livre.

Então, tudo em tudo o que eu estou me sentindo um pouco melhor sobre a minha escolha de ferramentas.

De qualquer forma, espero que isso ajude alguém lá fora.

MPLAB C-18 é bom, e eles têm uma versão do estudante, que é livre. Ele tem uma interface de usuário bem que é bastante simples que não faz utilizadores confundem. É o que eu uso.

Se você pode fugir com ela (minha preferência seria) usar o PIC18 Assembler com MPLAB. Tem a vantagem de ser livre e relativly bem documentado junto com o fato de que tem hardwars decentes / suporte depurador. Seu pequeno conjunto de instruções e simplicidade levou-se a fácil e rápida codificação.

Se você está determinado a c entanto:

CCS é um bom compilador para uso, um buggy pouco e muito caro, mas também tem boas capacidades de depuração.

Microsoft incorporado Studio (ou algo parecido) é excelente se você já está acostumado com o Studio 6 metodologia Visual de escrever código c. Novamente bom suporte a hardware e excelente depurador.

Eu acredito que se você está procurando uma solução gratuita que você pode realmente obter c compiladores para MPLAB, embora Ive pessoalmente nunca usei qualquer julgamento, então não posso passar.

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