Estou planejando migrar para a arquitetura NXP Cortex M3 e estou um pouco perdido entre as ferramentas de desenvolvimento existentes.
Keil é caro e não sei se vale a pena. Quem já tentou algum compilador pode dar algum conselho?
Eu encontrei este compilador http://www.code-red-tech.com/red-suite-2.php parece bom e não é caro. Quem já experimentou ou sabe sobre isso pode me dar mais informações?
Respostas:
Ultimamente, tenho jogado com um STM32 (também Cortex M3) e usando a distribuição CodeSourcery do GCC, que funcionou muito bem.
Um colega que trabalhou com micros ARM profissionalmente no passado me disse que estava satisfeito com a cadeia de ferramentas IAR, embora eu não saiba qual é o custo ou como é o suporte ao Cortex.
fonte
Uso os compiladores cruzados CodeSourcery (Lite) para Linux para programar os microcontroladores TI Stellaris . Eles trabalham com qualquer Cortex-M3. Eles são totalmente gratuitos, com binários para Windows e Linux.
Aqui está uma receita curta (Debian / Ubuntu) para instalar:
Faça o download do conjunto de ferramentas (qualquer versão serve, mas eu uso este)
Instale o Java Runtime Environment (para o instalador danificado)
Instalar
Adicione o diretório bin do compilador cruzado ao seu PATH
Para carregar o código e depurar, você precisará do OpenOCD e do gdb ou de uma das GUIs.
Você também precisará de um adaptador JTAG .
fonte
Comecei a usar uma delas (placa do desenvolvedor do MBED). Os grandes pontos de venda para mim foram o fato de eu poder codificar em C ou C ++, conexão direta com USB e um ambiente de desenvolvimento on-line sofisticado (nenhuma instalação de ferramenta local é necessária!).
http://mbed.org/
Cinco minutos depois da caixa de abertura, eu tinha um exemplo de programa intermitente (o 'olá mundo' do mundo incorporado) executando o seguinte:
É isso aí! Acima está o programa completo!
Baseia-se no ARM Cortex M3, rápido e com bastante memória para projetos incorporados (100 mhz, 256k flash e 32k ram). As ferramentas de desenvolvimento online têm uma biblioteca muito boa e muitos exemplos, além de um fórum muito ativo. Muita ajuda para conectar dispositivos ao MBED, etc.
Embora eu tenha muita experiência com sistemas embarcados (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC, etc.), ainda achei um sistema refrescante e fácil de entender, apesar de ter uma capacidade séria.
Depois de brincar inicialmente com ele em uma tábua de pão básica, comprei uma placa de base desses caras: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207. Isso tem uma pilha de dispositivos de E / S (incluindo um OLED miniture e um acelerômetro de 3 eixos). No mesmo site, também comprei uma das placas de processador LCPExpresso que são baratas, menos energia / memória que o MBED, mas perfeitas para trabalhos menores (ainda prejudicam muito os processadores PIC / Atmega). A placa base suporta o LCPExpresso e o MBED. A compra da placa do processador LCPExpress também me trouxe um depurador JTAG conectado e um ambiente de desenvolvimento offline (kit de desenvolvimento baseado em código GCC / Eclipse do Code Red). Isso é muito mais complexo que o ambiente de desenvolvimento MBED on-line, mas é uma progressão lógica depois que você ganha experiência com o MBED.
Com referência ao meu ponto original noite, o controlador MBED é muito mais capaz do que o controlador LPCExpresso, MAS é muito mais simples de usar e aprender.
fonte
O código fonte lite é bom ou use o emdebian. ou crie o seu próprio, é bem fácil, a menos que você precise de uma biblioteca C ou gcc completa, ainda é possível, mas um pouco mais difícil. No início, você não precisará de um compilador compatível com o thumb2, o polegar fará o que você procura por uma cadeia de ferramentas que desejar.
O llvm é outro bom (use clang, não llvm-gcc !!), eu sei que o lado do braço está melhorando o tempo todo, a versão 27 produzia um código mais rápido que o atual gcc para um teste específico. Encontrei um bug no lado do polegar ao trabalhar no meu emulador de polegar (thumbulator.blogspot.com), que foi prontamente corrigido. A melhor parte do llvm é que, por padrão, é um compilador cruzado, sem necessidade de trabalho extra ou experiência de construção. Nos próximos anos, eu os vejo se aprofundando no gcc e passando o gcc para compilação / incorporação cruzada.
Eu tentei a ferramenta code-red uma vez com a placa lpcxpresso, o resultado final é que definitivamente nunca estou usando code-red e estou debatendo se também devo colocar na lista negra o lpc. ymmv. Se você tiver que usar uma ferramenta paga, eu usaria o keil apenas porque eles foram comprados pelo braço e parte do pacote é o compilador rvct. É claro que o código fonte também é uma casa paga, se você não atender às limitações de lite ou optar por obter suporte, sendo o gcc, ele tem o melhor suporte de todos os compiladores. Há pouco tempo, quando eu era capaz de experimentá-los, as ferramentas do braço explodiram o gcc na qualidade do código produzido. O gcc está subindo e descendo algumas versões do 3.x produzem código melhor que o 4.x, elas não parecem estar melhorando a cada lançamento, mas sim ou talvez codificaram o sourcery adicionado o suporte thumb2 há pouco tempo, o que as versões 3.x Eu não vou ter.
fonte
If you have to use a pay for tool I would go with keil only because they were bought by arm
- Você já experimentou os compiladores Keil? Não fiquei impressionado com as ferramentas Keil 8051 pelo menos. Eles se sentem como dinossauros em comparação com a concorrência baseada no GCC ou a suíte LLVM / Clang, IMHO.Eu uso o software Rowley para desenvolvimento de ARM e MSP430:
http://www.rowley.co.uk
É excelente. Cortex-M3 é suportado.
fonte
Eu uso o depurador Yagarto + Eclipse + J-link edu. (Gnu toolchain)
http://www.yagarto.de/
fonte
Eu tive um sucesso muito bom usando cadeias de compilador / depuração IAR para o meu desenvolvimento ARM. Eles oferecem ferramentas de desenvolvimento relativamente estáveis, completas com um ambiente Embedded C ++ (o que parece um tanto raro). - Dependendo do tamanho da sua base de código, eles também oferecem ótimos "KickStart Kits" de hardware / software com versões limitadas em tamanho de código de suas ferramentas.
fonte
O IAR é excelente e, se você estiver executando pequenos projetos, há uma edição kickstart limitada em tamanho de código de 32K. As atualizações de tamanho são, no entanto, um pouco caras, acredito. Eles também vêm com vários bons exemplos de projetos, geralmente vários para cada família de processadores.
fonte
Passei os últimos dias configurando totalmente a cadeia de ferramentas CodeSourcery GNU para o EFM32G micro no OS X. Valeu a pena. Comparado a muitos dos depuradores baseados em GUI que eu tentei (principalmente baseados em Eclipse); Makefiles, GCC e GDB são um sonho tornado realidade; Além disso, tudo funciona no meu terminal Linux ou Mac.
A única parte que é péssima é o adaptador J-Link embutido na placa. O programa GDBServer para Windows e Linux da J-Link é de código fechado. Pior ainda, a versão Linux está muito mais atrasada. Portanto, para que o GDB funcione, tenho que executar uma imagem do Windows VMWare cujo único objetivo é executar o GDBServer (porque o Linux está quebrado).
Ah, além de não funcionar corretamente, o servidor GDB baseado em Linux da J-Link se liga a 127.0.0.1 e ouve APENAS pacotes com isso como dest; portanto, é necessário mexer com o iptables e o encaminhamento para conectar-se a partir de uma máquina remota. Ridículo; Segger precisa agir juntos.
fonte
Eu uso o QtCreator e o GNU Tools ARM Embedded. Funciona bem.
Vantagens:
Desvantagens:
Quando tudo estiver configurado corretamente, posso clicar para criar um ponto de interrupção no meu código e clicar no botão "depurar". Ele irá compilar, piscar, executar e pausar no ponto de interrupção em cerca de 5 segundos (e, simultaneamente, irritar você se precisar voltar ao "IDE" do Arduino).
Estou trabalhando em um tutorial sobre como configurar isso com outro chip ARM - o nRF51822, baseado no Cortex-M0.
fonte
Eu uso as ferramentas CooCox, é excelente, mas livre de usar, não qualquer tamanho de código limitado. http://www.coocox.org/
fonte
Uso arm-eabi-gcc e o conjunto de ferramentas que o acompanha instalado através do script convocar arm toolchain . O script configura o ambiente para o trabalho bare metal no ARM. Seu código-fonte aberto e gratuito e tudo isso funcionaram de forma confiável para mim. Eu também usei o IAR para isso, e certamente é melhor, pois permite que você faça uma depuração muito mais amigável e faça as coisas da maneira IDE, mas, no geral, me sinto mais confortável com o gcc, por nenhuma outra razão, porque eu não precisa justificar a despesa para ninguém.
(Eu nunca descobri como usar o gdb para nada, mas nunca me acostumei a usar um depurador ou a disponibilizá-lo de qualquer maneira, por isso não tenho certeza se estou qualificado para julgar isso.)
fonte
Eu uso o Emprog ThunderBench . É excelente, provavelmente o melhor que já usei.
O que eu mais gosto é que é, ao mesmo tempo, um compilador de córtex C / C ++ ARM , um depurador e um IDE.
fonte