É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
Réponses:
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).
la source
L'IDE Arduino peut être «corrigé» pour accueillir le code d'assemblage. Voici le wiki: http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods
la source
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.
la source
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.
la source
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.
la source
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.
la source
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!
la source
l'arduino peut être programmé avec l'assemblage à l'aide de l'assembleur en ligne GCC-AVR vérifier ce lien pour le livre de recettes de l'assembleur en ligne GCC-AVR
http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf
la source