Arduino avec assemblage?

Pour mon aventure dans le microprocesseur, jai décidé daller avec Atmel AVR en raison des vastes ressources disponibles. LArduino semble en avoir beaucoup aussi, sans oublier que leurs kits de démarrage semblent plus  » à mon niveau.  »

Le problème est que je veux dabord lapprendre en assemblage, puis passer au C / C ++ ou à tout ce quArduino utilise, mais jai entendu dire quArduino ne prendrait pas lassemblage AVR. Est-ce vrai? Y a-t-il un moyen de contourner cela?

Edit: Jirais avec lATMEL STK500, mais pour une première minuterie, cela semble TRÈS compliqué. Y a-t-il une raison pour laquelle je ne peux pas simplement obtenir un AVR 8 bits et le mettre sur une maquette et expérimenter de cette façon? (Je suppose que je devrais trouver comment les interfacer en tant que tels.)

Edit2: cest ce à quoi je pensais

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

Commentaires

  • Comment ça se passe? Alors, quelle solution avez-vous envisagée? Jai acheté Arduino Uo et je cherche un moyen de développer également en assembleur
  • Je suggérerais dutiliser le contrôleur 89c51 (8051) pour le langage dassemblage

Réponse

Les cartes Arduino peuvent être programmées en assemblage. Tout ce dont vous avez besoin est un câble ICSP (programmeur série en circuit) et la chaîne doutils AVR (gratuite chez ATMEL) pour écrire sur la carte. Vous bénéficiez alors du débogage intégré.

Comme vous lavez suggéré, vous pouvez simplement placer une puce ATMEL sur une maquette et aller en ville.

Le kit que vous avez référencé ressemble à un excellent point de départ. Vous pouvez retirer la puce de la carte et la coller sur votre propre maquette (tant quelle a correctement régulé la puissance et que vous tenez compte de lhorloge).

EDIT: Apparemment, vous navez « pas besoin dun ICSP pour charger les programmes dassemblage. Voir le commentaire ci-dessous pour plus de détails.

Commentaires

  • Ya je ‘ Je veux probablement men tenir à Ne pas le mettre sur ma propre maquette en ce moment lol Je ne suis pas si génial avec circuits.
  • @Sauron – hah – dans les deux cas, cest bien. Tout ce qui vous rend accro! La bonne chose est que les puces individuelles sont assez bon marché (quelques dollars ou plus).
  • Cette réponse est largement trompeuse: AUCUN FAI NEST NÉCESSAIRE . Le chargeur de démarrage utilisé par Arduino est antérieur au projet Arduino et na aucune idée si le fichier en cours de chargement provient dun compilateur ou dun assembleur. Veuillez don ‘ t perpétuer lidée fausse que le chargeur de démarrage dans un Arduino na rien à voir avec la méthode décriture des programmes pour cibler le matériel; cest simplement un mécanisme pratique pour obtenir du code de nimporte quelle origine dans la puce.
  • @ChrisStratton – merci pour vos commentaires. Jai ‘ mis à jour ma réponse pour intégrer vos commentaires.

Réponse

LIDE Arduino peut être « corrigé » pour accueillir le code dassemblage. Voici le wiki: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods

Commentaires

  • lurl semble être défectueuse

Answer

Pour autant que je sache, il devrait ne soyez rien de spécifique sur le chargeur de démarrage Arduino qui pourrait vous empêcher dutiliser lassemblage au lieu de C. LIDE Arduino peut rendre difficile le téléchargement de vos propres fichiers .hex, mais il ressemble au chargeur de démarrage Arduino est compatible STK500 vous devriez donc pouvoir lutiliser avec avrdude.

Commentaires

  • Oui, en fait, lIDE Arduino lui-même utilise avrdude pour effectuer le téléchargement.

Réponse

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 des vitesses de port série différentes par défaut et différents schémas de réinitialisation pour entrer dans le mode de programmation. Si vous regardez le micrologiciel arduino, vous constatez que pratiquement aucune des commandes de programmation avr nest vraiment prise en charge. Je nen ai pas vraiment besoin de toute façon.

Réponse

larduino peut être programmé avec lassemblage à laide de lassembleur en ligne GCC-AVR vérifier ce lien pour Livre de recettes de lassembleur en ligne GCC-AVR

http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf

Answer

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 les débogueurs Atmel via AVR Studio. Studio prend en charge lassembleur et le C. Un programmeur approprié est lAVRISP MkII, et lAVR Dragon offre à la fois la programmation et le débogage. Jobtiendrais ce dernier, il 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 maquette ou un PCB.

Commentaires

  • Alors quil ‘ est vrai quils ont un en-tête ICSP, il y a ‘ nest pas nécessaire de lutiliser. Le chargeur de démarrage fonctionne aussi bien avec tous les moyens de création de programmes, et en fait, même lIDE Arduino repose sur le programme utilitaire de ligne de commande préexistant avrdude pour faire fonctionner le chargeur de démarrage.

Réponse

LArduino est composé de deux pièces: le matériel et lIDE. LEDI vous limite principalement (sinon complètement) au C et au C ++ (avec un peu de sucre syntaxique que les développeurs ont ajouté pour en faire un peu plus comme Processing / Java). Il y a une chance que lEDI reconnaisse les fichiers .s ou .S dans le même répertoire quun croquis standard (.pde), mais je ne tiendrais pas mon chapeau là-dessus.

Il ny a rien Cest une carte sympa et conviviale avec beaucoup de fonctionnalités intéressantes que les néophytes µC apprécieront, mais si vous voulez simplement programmer lAVR via len-tête ISP, vous pouvez le faire aussi. Vous aurez besoin de quelque chose comme Atmel AVRISP mkII , ou de tout autre programmeur fonctionnant avec le connecteur 2×3 de la carte Arduino. Recherchez ceux qui sont compatibles avec le programme avrdude que vous utiliserez pour télécharger vos applications. Éloignez-vous de lUSBtinyISP dAdafruit; jai eu une chance horrible avec lui et jai fini par acheter celui dAtmel que jai lié pour moins de 40 $ à Mouser.

Commentaires

  • Étrange, je ‘ nai eu que de bonnes expériences avec Atmel IDE et usbtiny. Buspirate doublera également en tant quISP pour de nombreuses plates-formes différentes, excellent petit outil
  • Il ny a ‘ aucun besoin dadaptateur ICSP, le chargeur de démarrage fonctionne très bien avec nimporte quel moyen de création de programme

Réponse

LAruduino peut absolument être programmé en assemblage. Et vous navez même pas besoin dun câble ICSP pour le faire!

Daccord, pour être honnête, ce nest 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 sexécutera ensuite. Considérez la bibliothèque TVOut , qui permet à lArduino de sortir NTSC / PAL sur un téléviseur.

Cette bibliothèque est très sensible au temps (puisquelle sort sur un téléviseur, chaque scanline doit être écrit à droite time.) Il utilise donc lassemblage en ligne pour accélérer le processus. En regardant la ligne 89 de ce fichier de la bibliothèque, lauteur utilise une partie des macros dassemblage quil a écrites.

Maintenant. Je soupçonne quil ne les a pas écrites en utilisant lIDE Arduino par défaut. Mais cette bibliothèque fait appel à son inline asm, que nimporte qui peut importer, compiler et exécuter via son interface.

Bonne chance!

Comm ents

  • En fait, vous pouvez également créer des fichiers source dassemblage, il vous suffit de sauter lIDE Arduino et dinteragir avec les outils darrière-plan tels que avr-gcc (ou tout ce que vous utiliser comme assembleur) et avrdude directement.

Answer

Jutilise Linux comme plate-forme hôte, mais je pense que ces outils sont également disponibles pour les variétés Windows.

Jutilise  » avra  » pour lassemblage en code hexadécimal convertisseur (compilateur)

Ensuite, je programme la puce à laide dun programmeur USBTiny et de loutil de programmation  » avrdude « .

Je pense que ces deux outils sont open source.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *