Arduino Com Montagem?


12

Desde o meu empreendimento em microprocessamento, decidi ir com o Atmel AVR devido aos vastos recursos disponíveis. E o Arduino parece ter muito também, sem mencionar que seus kits iniciais parecem mais "no meu nível"

O problema é que eu quero aprendê-lo primeiro em Assembly e depois ir para C / C ++ ou com o Arduino, mas ouvi dizer que o Arduino não aceita o assembly do AVR? Isso é verdade? há alguma maneira de contornar isso?

obrigado

editar: eu iria com o ATMEL STK500, mas ... para um primeiro temporizador, parece muito complicado? Existe alguma razão para eu não conseguir obter um AVR de 8 bits e colocá-lo em uma placa de ensaio e experimentar dessa maneira? (Eu acho que eu teria que descobrir como fazer a interface deles como tal ....)

edit2: Isto é o que eu estava pensando

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193


Como vai? Então, qual solução você considerou? Eu comprei o Arduino Uo e procurando uma maneira de desenvolver em assembler também
sll

Respostas:


5

As placas do Arduino podem ser programadas em montagem. Tudo o que você precisa é de um cabo ICSP (programador serial em circuito) e a cadeia de ferramentas AVR (livre de ATMEL) para gravar no quadro. Você obtém a vantagem da depuração a bordo.

Como você sugeriu, basta colocar um chip ATMEL em uma tábua de pão e ir para a cidade.

O kit que você referenciou parece um ótimo ponto de partida. Você pode retirar o chip da placa e colá-lo em sua própria placa de ensaio (desde que tenha a energia regulada corretamente e você seja o responsável pelo relógio).


Sim, eu gostaria muito de ficar com Não colocá-lo na minha própria tábua de pão agora lol Não sou tão bom com circuitos.

@Sauron - hah - de qualquer maneira é bom. O que quer que você fique viciado! O bom é que as fichas individuais são bem baratas (alguns dólares ou mais).
RQDQ


2

Tanto quanto eu sei que não deve ser nada específico sobre o bootloader Arduino que poderia impedi-lo de usar a montagem em vez de C. O Arduino IDE pode tornar difícil para carregar você possui arquivos .hex mas parece que o bootloader Arduino é STK500 compatível de modo você deve poder usá-lo com avrdude.


Sim, na verdade, o próprio IDE do Arduino usa avrdude para executar o upload.
Chris Stratton

1

As placas Arduino (Uno e Duemilanove, de qualquer forma) têm um conector de programação AVR padrão, que é suportado pelos programadores e depuradores Atmel via AVR Studio. O Studio suporta assembler e C. Um programador adequado é o AVRISP MkII, e o AVR Dragon oferece programação e depuração. Eu pegaria o último, é mais caro em US $ 50, mas o recurso de depuração é inestimável. Você também pode usar essas ferramentas com um chip AVR padrão (não o Arduino) conectado a uma tábua de pão ou a uma PCB.


1

O Arduino é composto de duas partes: o hardware e o IDE. O IDE principalmente (se não completamente) restringe você a C e C ++ (com algum açúcar sintático que os desenvolvedores usaram para torná-lo um pouco mais parecido com Processing / Java). Há uma chance de o IDE reconhecer os arquivos .s ou .S no mesmo diretório que um esboço padrão (.pde), mas eu não daria muita atenção a isso.

Não há nada de especial no hardware. É uma placa agradável e amigável, com muitos recursos bacanas que os neófitos µC apreciarão, mas se você deseja apenas programar o AVR através do cabeçalho do ISP, também pode fazê-lo. Você precisará de algo como o Atmel AVRISP mkII , ou qualquer outro programador que funcione com o conector de linha 2x3 na placa Arduino. Procure aqueles que sejam compatíveis com o programa avrdude que você usará para fazer upload de seus aplicativos. Fique longe do USBtinyISP da Adafruit; Eu tive uma péssima sorte e acabei comprando o Atmel que vinculei por menos de US $ 40 à Mouser.


1
Estranho, eu não tinha nada, mas boas experiências com a Atmel IDE eo usbtiny, também buspirate vai dobrar como um ISP para muitas plataformas diferentes, grande ferramenta pequena
crasic

1

Não é nada difícil.

http://www.dwelch.com/arduino/

Você precisa olhar Eu acho ser.c na minha página para escolher qual cartão. alguns usam velocidades de porta serial diferentes por padrão e esquemas de redefinição diferentes para entrar no modo de programação. Se você olhar o firmware do arduino, descobrirá que quase nenhum dos comandos de programação do avr é realmente suportado. Realmente não preciso deles de qualquer maneira.


1

O Aruduino pode ser absolutamente programado em montagem. E você nem precisa de um cabo ICSP para fazer isso!

Ok, para ser justo, isso não é o mesmo que programá-lo em pura montagem desde o início.

Mas você pode integrar o assembly em C. O que significa que você pode carregar o código no seu Arduino que possui o assembly em linha, que será executado. Considere a biblioteca TVOut , que permite que o Arduino produza NTSC / PAL para uma TV.

Essa biblioteca é muito sensível ao tempo (como está sendo transmitida para uma TV, cada linha de varredura deve ser gravada no momento certo.) Portanto, ela usa montagem em linha para acelerar o processo. Observando a linha 89 deste arquivo da biblioteca, o autor está usando algumas das macros de montagem que ele escreveu.

Agora. Eu suspeito que ele não os escreveu usando o IDE padrão do Arduino. Mas essa biblioteca chama seu código asm embutido, que qualquer pessoa pode importar, compilar e executar por meio de sua interface.

Boa sorte!


2
Na verdade, você também pode criar arquivos de origem de montagem, basta pular o IDE do Arduino e interagir com as ferramentas de back-end, como avr-gcc (ou o que você usa como montador) e avrdude diretamente.
Chris Stratton

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.