Arduino avec assemblage?

12

Étant donné que pour mon entreprise dans le microprocesseur, j'ai décidé de choisir Atmel AVR en raison des vastes ressources disponibles. Et Arduino semble en avoir aussi beaucoup, sans parler de leurs kits de démarrage qui semblent plus "à mon niveau"

Le problème est que je veux d'abord l'apprendre dans l'assemblage, puis aller en C / C ++ ou avec Arduino, mais j'ai entendu qu'Arduino ne prendrait pas d'assemblage AVR? Est-ce vrai? est leur moyen de contourner cela?

Merci

edit: j'irais avec le ATMEL STK500 mais..pour un premier timer ça a l'air TRES compliqué? Y a-t-il une raison pour laquelle je ne peux pas simplement obtenir un AVR 8 bits et le mettre sur une planche à pain et expérimenter de cette façon? (Je suppose que je devrais trouver comment les interfacer en tant que tels ....)

edit2: C'est ce que je pensais

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


la source
Comment ça se passe? Alors, quelle solution avez-vous envisagée? J'ai acheté Arduino Uo et je cherche un moyen de développer également en assembleur
sll

Réponses:

5

Les cartes Arduino peuvent être programmées en assemblage. Tout ce dont vous avez besoin est un câble ICSP (In Circuit Serial Programmer) et la chaîne d'outils AVR (sans ATMEL) pour écrire sur la carte. Vous bénéficiez alors de l'avantage du débogage à bord.

Comme vous l'avez suggéré, vous pouvez simplement gifler une puce ATMEL sur une planche à pain et aller en ville.

Le kit auquel vous avez fait référence ressemble à un excellent point de départ. Vous pouvez retirer la puce directement de la planche et la coller sur votre propre planche à pain (tant qu'elle a une puissance correctement réglée et que vous comptez l'horloge).

RQDQ
la source
Oui, je voudrais vraiment rester avec Ne pas le mettre sur ma propre planche à pain en ce moment lol Je ne suis pas très bien avec les circuits.
@Sauron - hah - dans les deux cas, c'est bien. Tout ce qui vous rend accro! La bonne chose est que les jetons individuels sont assez bon marché (quelques dollars environ).
RQDQ
2

Autant que je sache, le chargeur de démarrage Arduino ne devrait rien avoir de spécifique qui pourrait vous empêcher d'utiliser l'assembly au lieu de C. L'IDE Arduino peut rendre difficile le téléchargement de vos propres fichiers .hex, mais il semble que le chargeur de démarrage Arduino soit compatible STK500, donc vous devriez pouvoir l'utiliser avec avrdude.

jpc
la source
Oui, en fait, l'IDE Arduino lui-même utilise avrdude pour effectuer le téléchargement.
Chris Stratton
1

Les cartes Arduino (Uno et Duemilanove en tout cas) ont un connecteur de programmation AVR standard qui est pris en charge par les programmeurs et débogueurs Atmel via AVR Studio. Studio prend en charge l'assembleur et C. Un programmeur approprié est l'AVRISP MkII, et l'AVR Dragon offre à la fois la programmation et le débogage. J'aurais ce dernier, c'est plus cher à 50 $, mais la fonction de débogage est inestimable. Vous pouvez également utiliser ces outils avec une puce AVR standard (pas Arduino) branchée sur une planche à pain ou un PCB.

Leon Heller
la source
1

L'Arduino est composé de deux pièces: le matériel et l'IDE. L'IDE vous limite principalement (sinon complètement) au C et au C ++ (avec du sucre syntaxique que les développeurs ont ajouté pour le rendre un peu plus similaire à Processing / Java). Il y a une chance que l'EDI reconnaisse les fichiers .s ou .S dans le même répertoire qu'une esquisse standard (.pde), mais je n'y accrocherais pas mon chapeau.

Le matériel n'a rien de spécial. C'est une carte agréable et conviviale avec beaucoup de fonctionnalités astucieuses que les néophytes µC apprécieront, mais si vous souhaitez simplement programmer l'AVR via l'en-tête ISP, vous pouvez le faire aussi. Vous aurez besoin de quelque chose comme l' Atmel AVRISP mkII , ou tout autre programmeur qui fonctionne avec le connecteur de ligne 2x3 sur la carte Arduino. Recherchez ceux qui sont compatibles avec le programme avrdude que vous utiliserez pour télécharger vos applications. Éloignez-vous de USBtinyISP d'Adafruit; J'ai eu une chance horrible avec cela et j'ai fini par acheter celui d'Atmel que j'ai lié pour moins de 40 $ à Mouser.

blalor
la source
1
Étrange, je n'ai eu que de bonnes expériences avec Atmel IDE et usbtiny, Buspirate fera également office de fournisseur d'accès Internet pour de nombreuses plates-formes différentes, un excellent petit outil
crasic
1

Pas difficile du tout.

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

Vous devez regarder Je pense ser.c sur ma page pour choisir quelle carte. certains utilisent différentes vitesses de port série par défaut et différents schémas de réinitialisation pour passer en mode de programmation. Si vous regardez le firmware Arduino, vous constatez que pratiquement aucune des commandes de programmation avr n'est vraiment prise en charge. Je n'en ai pas vraiment besoin de toute façon.

old_timer
la source
1

L'Arduduino peut absolument être programmé en assemblage. Et vous n'avez même pas besoin d'un câble ICSP pour le faire!

D'accord, ce n'est pas la même chose que de le programmer en assemblage pur à partir de zéro.

Mais vous pouvez assembler en ligne en C. Ce qui signifie que vous pouvez charger du code sur votre Arduino qui a un assemblage en ligne, qui s'exécutera ensuite. Considérez la bibliothèque TVOut , qui permet à l'Arduino de sortir NTSC / PAL sur un téléviseur.

Cette bibliothèque est très sensible au temps (puisqu'elle sort sur un téléviseur, chaque ligne de balayage doit être écrite au bon moment.) Elle utilise donc l'assemblage en ligne pour accélérer le processus. En regardant la ligne 89 de ce fichier de la bibliothèque, l'auteur utilise certaines des macros d'assemblage qu'il a écrites.

Maintenant. Je soupçonne qu'il ne les a pas écrits en utilisant l'IDE Arduino par défaut. Mais cette bibliothèque fait appel à son code asm en ligne, que n'importe qui peut importer, compiler et exécuter via son interface.

Bonne chance!

rascher
la source
2
En fait, vous pouvez également créer des fichiers source d'assembly, il vous suffit de sauter l'IDE Arduino et d'interagir avec les outils principaux tels que avr-gcc (ou tout ce que vous utilisez en tant qu'assembleur) et avrdude directement.
Chris Stratton