Discussion fermée
Page 1 sur 21 12 3 4 5 6 7 8 9 10 20 DernièreDernière
Affichage des résultats 1 à 30 sur 614

De l'Arduino au langage C standard avec AVR Studio



  1. #1
    Jean-Marie45

    De l'Arduino au langage C standard avec AVR Studio


    ------

    A l'occasion d'un cours online sur les microcontrôleurs, je me suis rendu compte que l'Arduino est une platine facile à brancher et à utiliser mais qu'il y a plusieurs revers à la médaille. Le langage Arduino est une version simplifiée des langages C et C++, camouflant les difficultés derrière des "mots-clés" faciles mais souvent au prix d'un allongement considérable du code. De plus, l'IDE Arduino n'offre aucune possibilité de debugging, à part truffer le code de multiples "Serial.print()" pour contrôler le comportement du programme. Enfin, une carte comme Arduino limite également le travail à un seul microcontrôleur possible. Impossible d'adapter et de tester le code pour un ATtiny par exemple.

    Suite à ces considérations, je pense donc qu'il y a intérêt à :
    - élargir la programmation au langage C standard
    - élargir l'environnement de développement à un système permettant la simulation et si possible le débugging
    - élargir la gamme de microcontrôleurs possibles.

    Il existe probablement diverses solutions répondant à ces exigences. L'une d'entre elles est la mise en oeuvre du langage C avec le compilateur GNU-GCC et sa librairie AVR Libc. L'environnement de développement Studio de Atmel permet d'utiliser aussi bien ce langage C que le C++ et l'assembleur pour programmer une gamme énorme de microcontrôleurs, allant des minuscules ATtiny à 6 pins aux ARM Cortex en passant par les ATmega 8 bit et les AVR 32 bit. Le logiciel Studio comporte un "simulateur" qui permet de simuler le fonctionnement du programme et de vérifier à n'importe quel endroit du programme la valeur des variables, des entrées/sorties et des registres du microcontrôleur. Cerise sur le gâteau, il y a 3 mois, Atmel a sorti un petit appareil nommé Atmel-ICE qui se connecte entre le PC et le microcontrôleur et qui permet non plus de simuler un programme mais d'examiner le fonctionnement du programme in situ, dans le circuit lui-même. Des appareils similaires (jtag ice) existaient déjà mais coûtaient plusieurs centaines de dollars alors que le nouveau venu coûte moins de 50€ (je viens de le recevoir). Le logiciel Studio, ainsi que les compilateurs C, C++ et assembleur sont gratuits. Par contre, Studio ne fonctionne que sous Windows.

    Avec ceux d'entre vous qui seraient intéressés, nous pourrions former un groupe d'entraide pour apprendre à mettre en oeuvre ces logiciels et certains de ces microcontrôleurs.

    Un fil conducteur simple pourrait être celui-ci : l'ide Arduino comporte de nombreux exemples de programmation, à commencer par le "blink.ino". Ce serait probablement un bon exercice de transformer ces exemples en langage C standard et de suivre pas à pas ces programmes à l'aide de la fonction "debug" de Studio.

    Jusqu'ici, je n'ai parlé que des microcontrôleurs d'Atmel parce que ce sont les seuls avec lesquels j'ai travaillé (en assembleur). Mais le cours online a touché également le MSP430 qui peut aussi être programmé en C et rien n'empêche la formation d'un thread parallèle autour de cette architecture, surtout que le MSP430 n'est pas limité à Energia (similaire de l'Arduino IDE) mais dispose aussi d'un environnement de développement sophistiqué: "Code Composer Studio", dont les fonctionnalités sont proches de l'Atmel Studio.

    Atmel Studio existe dans plusieurs versions. La dernière est la version 6.2 téléchargeable ici. Cette version est lourde à faire touner pour les PC lents. La version 4 est plus légère (mais incapable d'utiliser le nouveau débuggeur in situ Atmel-ICE). Pour tous ceux qui hésitent entre Studio 6 et Studio 4, il est utile de lire cette page.
    Pour ceux qui choisissent Studio 4, il faut d'abord installer Studio4.18 (build 684) puis Studio 4.18 SP3 (build 716).
    Voici l'adresse de la version 4.18
    Studio 4.19 et Studio 5 contiennent des bugs et ne sont pas conseillés.

    Je signale que même si j'ai une petite expérience en assembleur avec Studio4, je suis parfaitement débutant avec Studio6 et le langage C. Donc, ceci n'est pas le début d'un cours mais d'une recherche ensemble et d'une entraide mutuelle, tout en sachant que Futura-Sciences regorge de compétences qui seront certainement là pour aider quand nécessaire.

    -----

  2. #2
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Zut ! Je viens de voir dans les consignes que la programmation des microcontrôleurs devrait plutôt figurer dans la section "Electronique".

    Désolé pour cet impair. Je crois que je n'ai pas les moyens de déplacer moi-même le sujet.

  3. #3
    Jack
    Modérateur

    Re : De l'Arduino au langage C standard avec AVR Studio

    Déplacement en électronique. C'est mieux en effet.

  4. #4
    Adam_D

    Re : De l'Arduino au langage C standard avec AVR Studio

    Bonjour Jean-Marie,

    Voila, je crois que je suis le premier arrivé. Bravo encore pour ton initiative.
    Je dois changer de disque dur ce week-end et après installation d' AVR Studio 4 je serai paré à essayer de faire mon premier programme en C.

    Bon WE
    Dernière modification par Adam_D ; 20/06/2014 à 18h25.

  5. A voir en vidéo sur Futura
  6. #5
    adrien4607

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut, au début moi aussi j'ai fais de l'arduino (et j'en fait toujours), puis j'ai découvert l'USBASP pour programmer directement une belle petite liste de microcontrôleur Atmel sans se ruiner.
    Si tu connais déjà bien le langage C (C++ étant beaucoup mieux de mon points de vue), tu ne devrais pas avoir trop de difficulté à migrer de ton arduino à Atmel Studio et de le programmer en avr-c.
    Ensuite, je te conseille grandement de connaitre le bitwise (opération bit à bit), voici un petit tuto, qui pourrait être (qui est !) très utile.

    J'ai d'abord commencer par lire se petit tuto (en anglais mais très facile à comprendre ), après qu'elle que fouille sur google et sur les forums devrais faire l’affaire.

    Quand on dit que les datasheets sont les bibles de l'électronicien, se n'est pas pour rien, quasi toutes les réponse à tes question se trouve dedans, analyser et comprendre les partie du datasheet qui te sont utile sont très important !

  7. #6
    Adam_D

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut Adrien,

    Je ne suis pas inquiet même si je ne connais pas bien le C. C'est juste qu'il faut se lancer comme pour tout le reste d'ailleurs.
    Je maitrise les opérations sur les bits mais le lien que tu as donné est très bien et il profitera grandement à ceux qui débutent.
    Jean-Marie m'avait aussi parlé de l'USBASP qui m'a l'air très intéressant. Je vais le commander pour pouvoir programmer des composants dépourvus de bootloader.
    Sinon pour le C++, j'ai cru comprendre que les programmes demandaient plus de ressource que si programmé en C (lui même plus qu'en assembleur bien écrit) sauf pour des applications complexes, raisons pour lesquelles je vais me concentrer sur le C.
    Je te remercie pour les conseils et à bientôt,

    Bonne soirée.
    Dernière modification par Adam_D ; 20/06/2014 à 20h06.

  8. #7
    laveplusblanc

    Re : De l'Arduino au langage C standard avec AVR Studio

    L'USBASP est un simple programmateur et ne permet pas de faire du debug in circuit.
    Je vous conseillerais la sonde de Jean-Marie (Atmel-ICE) ou autre JTAG-ICE (MKII ouMKIII).

    LVPL

  9. #8
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello Adam,

    Bravo. Tu es effectivement le premier à avoir trouvé le chemin.
    Je confirme qu'à partir du moment où on écrit le code dans Studio, il faut soit un programmateur comme l'USBasp pour programmer par les pins ICSP (on détaillera ça dans les jours qui viennent), soit une liaison série ou un convertisseur USB-Série TTL pour programmer par les pins Rx/Tx (avec un bootloader obligatoire).
    Pour l'USBasp, demander "USBasp programmer" sur eBay. (moins de 2€, envoi compris).
    Pour le convertisseur USB-Série, demander "USB RS232 TTL". (à peine plus d'1 €, envoi compris)
    L'USBasp offre beaucoup plus de possibilités. Il s'utilise avec le logiciel avrdude (gratuit).

    Hello Adrien,
    Merci pour tes liens.
    Le tuto en français est écrit par Skywodd, un as de la programmation que j'ai déjà eu le plaisir de croiser sur le forum français d'Arduino. La manipulation des bits est effectivement la condition presque indispensable d'une programmation efficace, très rapide et peu gourmande en espace mémoire. Sur ce point, le C et l'assembleur sont quasi à égalité.

  10. #9
    ted333

    Re : De l'Arduino au langage C standard avec AVR Studio

    Bonjour Jean Marie,
    Et 1 de plus qui te rejoins

  11. #10
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    salut Jean-Marie, Félicitations, et grand merci pour votre initiative, en attendant le reste de l'équipe de nous joindre.

    voici un lien pour compléter AVR studio 4.18 sp3 avec la dernière toolchain 3.4.4 AVR-GCC pour AVR 8 bits:
    Atmel AVR 8-bit Toolchain 3.4.4 - Windows



    Citation Envoyé par laveplusblanc Voir le message
    L'USBASP est un simple programmateur et ne permet pas de faire du debug in circuit.
    Je vous conseillerais la sonde de Jean-Marie (Atmel-ICE) ou autre JTAG-ICE (MKII ouMKIII).
    effectivement, l'USBASP n'est qu'une interface pour programmer les µcontrôleurs d'Atmel.
    la carte Arduino peut le faire aussi, pour qui la possède ce n'est pas la peine de s'offrir une USBASP.

  12. #11
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Bienvenue, ted333 et Mourad.

    Merci, Mourad, pour le lien. Cela m'a permis de me rendre compte que je n'ai jamais installé cette "Toolchain", ni le SP3 pour Studio 4.
    effectivement, l'USBASP n'est qu'une interface pour programmer les µcontrôleurs d'Atmel.
    la carte Arduino peut le faire aussi, pour qui la possède ce n'est pas la peine de s'offrir une USBASP.
    C'est vrai que l'Arduino peut servir à programmer un autre AVR. Mais je pensais à quelque chose de différent : programmer le µC qui est sur la carte Arduino, en passant non plus par le bootloader Arduino mais par un USBasp.

  13. #12
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Je ne sais pas si la démarche est la bonne.

    En effet, rien n'empêche dans l'Arduino d'accéder aux registres du micro et de le programmer en s'affranchissant des fonctions très lourdes de l'Arduino. D'un autre côté, celles-ci présentent un avantage indéniable quand il s'agit d'initialiser les périphériques. Perso, quand j'utilise un Arduino, je garde les pinmode(), les drivers de périphériques un peu complexes mais j'accède aux registres pour piloter les I/O ou configurer un timer.

    Quant à supprimer les init() et loop(), ça n'a pas un grand intérêt. En fouillant un peu dans le code "masqué" de l'Arduino, on se rend compte que le main.c a globalement cette forme:
    Code:
    init();
    while(1)
      {
       loop();
      }
    Il n'y a rien à révolutionner de ce côté.

    Maintenant, côté outils, l'USBASP ou un Arduino configuré en programmateur externe seront incapables de faire du debug. En effet, les deux utilisent le protocole ISP qui permet la prog mais pas le debug. Pour ça, il faut utiliser le JTAG sur les gros modèles ou le DebugWire sur les petits. Conclusion, pour faire du vrai debuggage, il faut un autre outil que les trucs cheap qu'on trouve à longueur de forum.

    La solution de facilité est l'Atmel-ICE qui permet de tout programmer et tout debugger dans les gammes de micros Atmel de l'AtTiny aux plus gros Cortex-M4 ARM en passant par les UC3 (anciennement AVR32) mais demandent un ticket d'entrée entre 30 et 85$ selon qu'on prend la version nue ou celle avec le boitier et tous les faisceaux de câbles qui vont bien. Ca peut paraître cher pour certains mais auparavant, le JTAG-ICE III était à 100$.

    Sinon pour les petits budgets, une bonne nouvelle. Atmel vient de sortir la Atmega328p Xplained Mini. Officiellement, elle est à 8.88$ (toujours se méfier de la conversion dollar-euro) et intègre un Atmega328P et un debugger, avec le pinout compatible Arduino:
    http://www.atmel.com/tools/mega328p-xmini.aspx

    C'est encore tout chaud, donc elle est peut-être encore un peu dure à trouver.

  14. #13
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello Mourad,
    Tu donnes une adresse Atmel pour le téléchargement de AVR-GCC (le compilateur C et les outils annexes). Cela permet de télécharger les outils mais ceux-ci ne s'installent pas automatiquement.
    L'adresse suivante permet de télécharger le pack complet de WinAVR (=AVR-GCC) avec l'installateur automatique.
    Donc, pour ceux qui ont décidé d'utiliser Studio 4, installez d'abord Studio 4.18 (build 684) puis Studio 4.18 SP3 (build 716) et enfin WinAVR.

  15. #14
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par Fred_du_92 Voir le message
    Je ne sais pas si la démarche est la bonne.

    En effet, rien n'empêche dans l'Arduino d'accéder aux registres du micro et de le programmer en s'affranchissant des fonctions très lourdes de l'Arduino. D'un autre côté, celles-ci présentent un avantage indéniable quand il s'agit d'initialiser les périphériques. Perso, quand j'utilise un Arduino, je garde les pinmode(), les drivers de périphériques un peu complexes mais j'accède aux registres pour piloter les I/O ou configurer un timer.

    Quant à supprimer les init() et loop(), ça n'a pas un grand intérêt. En fouillant un peu dans le code "masqué" de l'Arduino, on se rend compte que le main.c a globalement cette forme:
    Code:
    init();
    while(1)
      {
       loop();
      }
    Il n'y a rien à révolutionner de ce côté.
    Hello Fred,
    J'étais d'accord avec toi mais j'ai changé d'avis le jour où j'ai voulu utiliser le Timer0 et que je me suis rendu compte qu'il était kidnappé par la fonction delay() même sans utiliser cette fonction dans le programme.

    Maintenant, côté outils, l'USBASP ou un Arduino configuré en programmateur externe seront incapables de faire du debug. En effet, les deux utilisent le protocole ISP qui permet la prog mais pas le debug. Pour ça, il faut utiliser le JTAG sur les gros modèles ou le DebugWire sur les petits. Conclusion, pour faire du vrai debuggage, il faut un autre outil que les trucs cheap qu'on trouve à longueur de forum.
    Tu as raison, l'USBasp est un programmateur, pas un débuggeur. Mais l'utilisation de Studio permet la simulation, ce qui est totalement impossible avec l'IDE Arduino. C'est déjà un grand pas en avant dans la mise au point des programmes.

    La solution de facilité est l'Atmel-ICE qui permet de tout programmer et tout debugger dans les gammes de micros Atmel de l'AtTiny aux plus gros Cortex-M4 ARM en passant par les UC3 (anciennement AVR32) mais demandent un ticket d'entrée entre 30 et 85$ selon qu'on prend la version nue ou celle avec le boitier et tous les faisceaux de câbles qui vont bien. Ca peut paraître cher pour certains mais auparavant, le JTAG-ICE III était à 100$.

    Sinon pour les petits budgets, une bonne nouvelle. Atmel vient de sortir la Atmega328p Xplained Mini. Officiellement, elle est à 8.88$ (toujours se méfier de la conversion dollar-euro) et intègre un Atmega328P et un debugger, avec le pinout compatible Arduino:
    http://www.atmel.com/tools/mega328p-xmini.aspx

    C'est encore tout chaud, donc elle est peut-être encore un peu dure à trouver.
    Ça, c'est une fameuse belle découverte ! Après une première lecture, cela semble être LA CARTE idéale pour apprendre à programmer et le prix de la carte est imbattable.
    Digi-Key la vend mais les frais d'envoi sont complètement dissuasifs.
    En plus, je suis en Belgique et quand je commande aux USA, une fois sur deux les douanes m'ajoutent 10€, quel que soit le montant de l'achat.
    Images attachées Images attachées  

  16. #15
    paolo123

    Re : De l'Arduino au langage C standard avec AVR Studio

    Arduino, c'est bien pour des petites applications destinées aux débutants qui ne veulent pas investir beaucoup de temps dans le développement électronique. Le langage de prog utilisé n'est pas réellement du C.

    Dès qu'il s'agit de faire de la vrai conception électronique, Arduino est très mal adapté puisque les utilisateurs de cette plateforme n'ont pour la plupart pas de notions en ce qui concerne le hardware c'est à dire la connection physique de plusieurs composants électronique qui permettent de réaliser une fonction précise. Les routines sont déja écrites, toute faite, On s'éloigne de la partie matérielle et on a aucune idée du fonctionnement des registres internes au microcontroleur ainsi que de leur configurations.

    A un moment ou à un autre, l'utilisateur se verra obligé de passer à autre chose. Le C++ n'est pas un langage adapté au microcontroleur, déja que le C consomme pas mal de ressources vu que ce n'est pas le langage natif du microcontroleur (l'assembleur oui) alors le C++ ce n'est pas pour aujourdh'ui ou pas pour la famille des 8 bits.

    Mon conseil est d'inverstir dans un compilateur bon marché, un programmateur qui fait office de debugger (ca aide bien) et d'apprendre les rudiments du C embarqué. A ce moment, le développeur se verra obliger d'utiliser des concepts qui lui permettront d'évoluer plus vite (notions des interruptions, configurations et utilisations des timers internes, Conception de A à Z de sa carte électronique (et donc attention particulière au découplage des tensions d'alimentations, au routage de la carte, aux filtrages des hautes fréquences, à la réduction des longueurs de connections, aux choix de son horloge de synchronisation (interne ou externe selon la précision son application), si choix externe de l'horloge, aux chois du type, quartz, résonnateur, circuit RC etc..).

    et même parfois, à la mise en place de certaine routines en assembleur à l'intérieur de son code pour optimiser les vitesses d'éxecutions pour les portions de codes critiques, oui car l'assembleur est largement plus rapide que n'importe quel autre langage de programmation haut niveau même avec un compilateur optimisé pour.

    Bref, beaucoup de choses à apprendre en ne passant pas par l'arduino qui est à mon avis utilise uniquement pour ceux qui font de l'électronique sans trop se casser la tête sans parler de l'encombrement qui est également un facteur à prendre en compte lorsque l'on développe un nouveau produit

  17. #16
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello Paolo,
    Merci pour cet avis que je partage entièrement.

  18. #17
    Adam_D

    Re : De l'Arduino au langage C standard avec AVR Studio

    Très intéressante et pas chère cette petite carte avec debugger intégré. Il faut souder des connecteurs pour bricoler avec une platine d'essai mais ce n'est pas grand chose.

    Merci à Fred_du_92 pour l'info
    Dernière modification par Adam_D ; 21/06/2014 à 15h04.

  19. #18
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par Jean-Marie45 Voir le message
    Tu donnes une adresse Atmel pour le téléchargement de AVR-GCC (le compilateur C et les outils annexes). Cela permet de télécharger les outils mais ceux-ci ne s'installent pas automatiquement.
    L'adresse suivante permet de télécharger le pack complet de WinAVR (=AVR-GCC) avec l'installateur automatique.
    Donc, pour ceux qui ont décidé d'utiliser Studio 4, installez d'abord Studio 4.18 (build 684) puis Studio 4.18 SP3 (build 716) et enfin WinAVR.
    winavr date de 2010, et il n'est pas évoluer depuis.
    le lien que j'ai mis Install la dernière Open source AVR GCC lib C.

  20. #19
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Citation Envoyé par paolo123 Voir le message
    Arduino, c'est bien pour des petites applications destinées aux débutants qui ne veulent pas investir beaucoup de temps dans le développement électronique. Le langage de prog utilisé n'est pas réellement du C.

    Dès qu'il s'agit de faire de la vrai conception électronique, Arduino est très mal adapté puisque les utilisateurs de cette plateforme n'ont pour la plupart pas de notions en ce qui concerne le hardware c'est à dire la connection physique de plusieurs composants électronique qui permettent de réaliser une fonction précise. Les routines sont déja écrites, toute faite, On s'éloigne de la partie matérielle et on a aucune idée du fonctionnement des registres internes au microcontroleur ainsi que de leur configurations.
    Je suis d'accord que ce n'est pas adapté à un montage réellement pro, mais pour faire un démonstrateur, pour tester un périphérique interne ou externe sans déployer des dizaines de lignes de code, c'est idéal.

    A un moment ou à un autre, l'utilisateur se verra obligé de passer à autre chose. Le C++ n'est pas un langage adapté au microcontroleur, déja que le C consomme pas mal de ressources vu que ce n'est pas le langage natif du microcontroleur (l'assembleur oui) alors le C++ ce n'est pas pour aujourdh'ui ou pas pour la famille des 8 bits.
    L'AVR a été conçu en collaboration étroite avec IAR justement pour qu'il soit le plus efficace possible. Qu'un PIC en dessous de 24, un 8051, un ST7 ou un autre coeur ancestral ne soit pas adapté au C, certes, mais c'est loin d'être le cas sur AVR.

    Mon conseil est d'inverstir dans un compilateur bon marché, un programmateur qui fait office de debugger (ca aide bien) et d'apprendre les rudiments du C embarqué. A ce moment, le développeur se verra obliger d'utiliser des concepts qui lui permettront d'évoluer plus vite (notions des interruptions, configurations et utilisations des timers internes, Conception de A à Z de sa carte électronique (et donc attention particulière au découplage des tensions d'alimentations, au routage de la carte, aux filtrages des hautes fréquences, à la réduction des longueurs de connections, aux choix de son horloge de synchronisation (interne ou externe selon la précision son application), si choix externe de l'horloge, aux chois du type, quartz, résonnateur, circuit RC etc..).
    A quoi bon investir dans un compilateur, Atmel Studio est basé sur Gcc, qui plus est supporté par Atmel. Avec Cypress sur les pSoC, Atmel dpoivent être les seuls à avoir une solution gratuite ET officielle, il serait bête de ne pas en profiter.

    Côté débugger, j'en ai eu besoin une fois en 15 ans d'AVR....pour une bête erreur de taille de boucle

    Le simulateur est suffisamment bien fait pour s'en sortir sans debugger, mais quitte à en prendre un, il en faudra un avec le SingleWire.

    et même parfois, à la mise en place de certaine routines en assembleur à l'intérieur de son code pour optimiser les vitesses d'éxecutions pour les portions de codes critiques, oui car l'assembleur est largement plus rapide que n'importe quel autre langage de programmation haut niveau même avec un compilateur optimisé pour.
    Ca reste à prouver sur AVR.

    Bref, beaucoup de choses à apprendre en ne passant pas par l'arduino qui est à mon avis utilise uniquement pour ceux qui font de l'électronique sans trop se casser la tête sans parler de l'encombrement qui est également un facteur à prendre en compte lorsque l'on développe un nouveau produit
    Oui enfin pour l'encombrement, on parle de maquettes amateurs, et au pire il existe des versions subminiatures de l'Arduino. Le cas extrême, c'est le Picoduino:
    https://www.tindie.com/products/bobricius/picoduino/

  21. #20
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello Mourad,
    J'ai téléchargé le fichier dont tu as donné l'adresse. Lorsque je lance ce fichier .exe, le fichier se décompresse dans un répertoire nommé "avr8-gnu-toolchain" puis plus rien ne se passe. Ce répertoire a une taille de 171 Mo. Il montre des ressemblances avec le répertoire que WinAVR installe sur le disque C. Celui-ci a une taille de 254 Mo. L'image ci-dessous montre une comparaison des deux répertoires.
    Pourrais-tu expliquer ce qu'il faut faire pour installer ta mise-à-jour ? Le fichier readme.pdf ne me paraît pas très clair.
    Images attachées Images attachées  

  22. #21
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Certes il est lent mais il vaut mieux travailler sur Atmel Studio 6.2.

    Les AVR évoluent, des nouveaux micros arrivent, d'autres remplacent les anciens et les anciennes versions ne géreront pas les nouveaux.

    l'Atmega328 est passé à une version P, puis PA. Un Atmel Studio 4 sera bien incapable de connaitre les subtilités entre ces références.

  23. #22
    f6exb

    Re : De l'Arduino au langage C standard avec AVR Studio

    Bonjour les gens,
    Au bout de combien de temps avez-vous reçu le mail de confirmation pour le lien de Mourad ?
    J'ai fait plusieurs essais et rien ne vient.
    Seuls les faucons volent. Les vrais restent au sol.

  24. #23
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    je suis entrain de voir une solution pour utiliser la dernière toolchain avec AVR Studio.
    la solution présente est la suivante:
    • - télécharger la dernière version du "Toolchain AVR 8-bit GNU Toolchain" / moi je n'utilise que les µContrôleur 8 bits :
    • - après télécharger ces utilitaires GNU qui comprend le link v5.3.0 et le Make v3.81 pour i386-pc-mingw32:
      GNU_Utils
    • - décompresser les deux téléchargements dans un répertoire de votre choix et mémoriser leurs chemins.
    • - Configuration :
      - lancer AVR Studio, faite: Menu -> Project -> Configuration Options.. -> Custom Options.
      - décocher la case: "Use AVR Toolchain( or WinAVR)"
      - chercher le repertoire qui contient le "avr-gcc.exe" de la Toolchain.
      - chercher le repertoire qui contient make.exe des utilitaires GNU_utils.
      - enregistrer.

    voir l'image jointe

    Nom : Sans titre-2.jpg
Affichages : 755
Taille : 312,3 Ko
    Dernière modification par mkh.mourad ; 21/06/2014 à 21h03.

  25. #24
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    @ Fred
    D'accord avec tes arguments. Il est clair qu'à chaque µC, Studio 4 prend un coup de vieux.

    @ f6exb
    Je suppose que tu veux t'enregistrer chez Atmel pour avoir accès au download. Je me suis déjà enregistré 2 x sans problème. As-tu vérifié minutieusement l'adresse mail que tu a fourni ?

    @ Mourad
    Après avoir téléchargé et décompressé link.exe et make.exe, j'ai essayé de suivre tes indications de menu dans Studio mais ton image ne correspond ni à Studio 4, ni à Studio 6.2
    Tu utilises probablement Studio 5.
    Mais j'ai fouillé un peu dans les répertoires que Studio 6.2 a installé sur le disque C: et je remarque par exemple que les fichiers du répertoire "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin" correspondent à ceux que j'ai téléchargé avec tes liens, taille et date y compris. Donc, je pense qu'en téléchargeant Studio 6.2, tout est à jour, avec la dernière version GCC du 30/04/2014.
    Images attachées Images attachées  

  26. #25
    Fred_du_92

    Re : De l'Arduino au langage C standard avec AVR Studio

    Je reste persuadé que vous êtes en train de vous créer des problèmes la ou il n'y a pas lieu d'en avoir. Apprendre tout seul, c'est le meilleur moyen d'apprendre de travers, et de partir sur des chemins de traverse.

    De plus, gardez bien en tête que de plus en plus, les ARM prennent le pas sur les 8 bits. Evidemment, les 8 bits restent les composants de choix pour des applis très simples mais dès que le programme devient complexe, il est plus simple d'utiliser un Cortex-M0 ou M0+.

    Je me permets l'analogie avec une voiture. On serait tenté de choisir une petite voiture avec peu de chevaux et une vitesse qui plafonne à 130 mais quand on choisit une plus grosse bagnole, on sait qu'on pourra doubler ce tracteur sur la 2 voies sans danger, qu'on pourra négocier ce démarrage en côte sans même toucher le frein à main et simplement avoir de la réserve de puissance en cas de besoin. C'est exactement la même chose sur micro, et chose extraordinaire, la grosse cylindrée n'est pas forcément plus cher que le pot de yaourt

    En lieu et place des chevaux en automobile, sur des MCU, on va accéder à du DMA, à des systèmes d'Event qui permettent le chaînage des périphériques sans déranger le coeur, à un système standard entre fabricants (fonctionnement du coeur, mapping mémoire, etc.)

    Bref, pour vous lancer ou pour votre culture personnelle, Atmel a mis en ligne le support de formation qui sert à leurs propres ingénieurs pour ensuite diffuser chez les clients:
    http://www.atmel.com/about/corporate...-syllabus.aspx

    J'en ai mangé des dizaines de formations chez divers fabricants et c'est franchement une des meilleures qu'il m'ait été donné de suivre. A voir absolument, et au pire les infos sur Atmel Studio serviront pour l'AVR.

  27. #26
    lpt1com2

    Re : De l'Arduino au langage C standard avec AVR Studio

    Petit commentaire complètement hors sujet.
    J'ai fait pas mal de trucs à base d'ATmega, et je viens de tester l'ATXmega: que du bonheur !
    Pas besoin de quartz et capas (il se débrouille pour le baudrate), 32 MHz, programmation PDI hyper-rapide, et, cerise sur le gâteau, il est moins cher (3€ chez Mouser pour un ATXmega128D4).

  28. #27
    mkh.mourad

    Re : De l'Arduino au langage C standard avec AVR Studio

    Sans titre-1.jpg
    Citation Envoyé par Jean-Marie45;4880506Après avoir téléchargé et décompressé [B
    link.exe [/B]et make.exe, j'ai essayé de suivre tes indications de menu dans Studio mais ton image ne correspond ni à Studio 4, ni à Studio 6.2
    Tu utilises probablement Studio 5.
    Mais j'ai fouillé un peu dans les répertoires que Studio 6.2 a installé sur le disque C: et je remarque par exemple que les fichiers du répertoire "C:\Program Files\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin" correspondent à ceux que j'ai téléchargé avec tes liens, taille et date y compris. Donc, je pense qu'en téléchargeant Studio 6.2, tout est à jour, avec la dernière version GCC du 30/04/2014.
    bonjour Jean-Marie,
    pour la version que j'ai ce n'est que AVR Studio 4.18 + SP3 + Toolchain 3.4.4.1229.
    pour les fichiers externes qu'a besoin le compilateur pour réussir le "Build" c'est un fichier make.exe, et pour le nettoyage "Clean" : rm.exe. j'ai commis une erreur de mentionner le fichier link.exe.
    donc les liens utiles pour un IDE complet comprend:
    - AVR Studio 4.18 (build 684) (119306000, updated July 2009)
    - AVR Studio 4.18 SP3 (build716) (33328000, updated July 2009)
    - Atmel AVR 8-bit Toolchain 3.4.4 - Windows (15.6MB, updated May 2014)
    - deux utilitaires de GNU win32 le make.exe et rm.exe (ci joint ).

    je vais tester ca sur une machine virtuelle sous Windows XP pour que je sois sûr.
    Fichiers attachés Fichiers attachés

  29. #28
    bobflux

    Re : De l'Arduino au langage C standard avec AVR Studio

    L'IDE arduino est un tas de caca fumant.

    Cependant, la force de l'arduino est dans ses libraries et ses shields qui fourmillent sur internet. Par exemple, j'ai eu besoin d'un enregistreur de température 4 sondes avec un LCD...

    - Un shield LCD
    - 4 capteurs de T° numériques DSmachin
    - un arduino

    Et hop, le code 1wire pour parler aux capteurs est dispo en library, idem pour le LCD, c'est très rapide et facile à utiliser...

    Reste à se débarrasser de l'IDE : tape arduino makefile dans google, c'est très simple de compiler et d'uploader un code sur un arduino en ligne de commande. On peut alors utiliser un vrai éditeur de texte (par exemple), etc.

    Pour le debug, j'aime beaucoup lpcxpresso et le LPC-Link 2 pour les Cortex-M de chez NXP. C'est pas la même sauce que l'arduino, mais ce n'est pas non plus difficile à utiliser, et il y a un bon choix de micros du très bon marché au surpuissant.

  30. #29
    5_cylindres

    Re : De l'Arduino au langage C standard avec AVR Studio

    Salut à tous, nouveau parmi vous

    Je me suis régalé en lisant ce topic, enfin autre chose que le forum Ar...no pour ceux qui veulent avancer un peu !

    Perso, je suis un peu fainéant et je suis venu à l'Ar...no pour des raisons de confort faciles à comprendre : carte directement opérationnelle, BootLoader intégré et facilité de transfert du code ... mais je suis comme vous, leur IDE me sort par les yeux car même si on veut programmer en vrai C il ajoute des cochonneries qui foutent la m... sans compter avec le jeu de pistes pour retrouver le fichier assembleur généré quand on veut l'examiner pour calculer à la louche des temps d'exécution (par exemple).

    Comme leur IDE ne me convenait pas, j'ai cherché et trouvé : AtmelStudio fait tout ce que je veux, est gratuit, efficace et complet, et comme disait je ne sais plus qui un peu plus haut il ne me pourrit pas l'utilisation des timers avec des lignes de code que je n'ai pas écrites moi-même.
    J'ai récemment essayé la 6.2, mais elle s'est installée en parallèle de la 6.1 et m'a tout fait planter : j'ai donc tout viré et reinstallé la 6.1.2674_SP1, qui met du temps à démarrer mais fonctionne très bien. Quand j'aurai le temps, j'essayerai d'installer la 6.2 sur une bécane vierge, pour voir ...

    Il ne me manquait plus que le transfert vers le µC : j'ai trouvé par hasard un petit soft, écrit par un particulier, qui s'appelle XLoader. Il transfère sur des 168, 328, 1280 et 2560 bootloadés Ar...no, en choisissant lui-même le baudrate qui va bien, il faut juste aller pointer le bon fichier .hex et le bon port COM.

    Si ça peut aider, j'en serais heureux.

    Je reviendrai régulièrement sur ce topic qui, je pense, m'apprendra beaucoup de choses.

    Pour ma part, je ne fais du C que depuis env 5 ans, je joue depuis seulement 2 ans avec des AVR, mais je commence à bien m'amuser avec leurs timers et leurs interruptions : je les ai tellement bien apprivoisés que je pense pouvoir aider dans leur utilisation.

    Encore merci pour cette façon nouvelle pour moi de voir la prog d'un µC à travers des outils que je ne connaissais pas.

    À bientôt,
    F
    Dernière modification par 5_cylindres ; 22/06/2014 à 15h50.

  31. #30
    Jean-Marie45

    Re : De l'Arduino au langage C standard avec AVR Studio

    Hello Fred,
    Apprendre tout seul, c'est le meilleur moyen d'apprendre de travers, et de partir sur des chemins de traverse.
    C'est pour ne pas apprendre tout seul que les intéressés s'inscrivent à un forum.
    La preuve, en à peine 2 jours il y a déjà plein d'aide et d'info qui arrive. D'ailleurs, un très grand merci pour ton lien vers le cours d'Atmel. Jusqu'ici, je n'ai pas eu le temps de faire plus que le survoler, mais cela permet d'être déjà un peu moins effrayé par la dénomination "ARM Cortex". J'avoue que ce terme me faisait peur, j'ai déjà beaucoup de mal à apprendre à me servir des possibilités des Atmega ! Ceci dit, ce qui est acquis pour un ATtiny reste quasi identique pour un ATmega, un ATXmega et peut-être (j'espère) un ARM. Par contre, chaque échelon ajoute des possibilités qui n'existent pas pour les échelons inférieurs.

    Comme je le disais dans le premier message de ce thread, je sors d'un cours d'initiation aux microcontrôleurs. Plusieurs de ceux qui ont suivi le même cours s'inscrivent aussi au thread. Le cours s'est appuyé sur la platine Arduino et le launchpad MSP430 pour montrer les premier rudiments de langage C et ouvrir à un C plus standard. Je pense que ceux qui s'inscrivent dans ce thread ont envie de poursuivre cette ouverture au C standard avec un outil de programmation moins rudimentaire que l'IDE Arduino ou Energia. En même temps, certains voudraient également faire leurs premiers pas en électronique en disposant un microcontrôleur et quelques composants sur une breadboard. Les bons vieux ATmega en boitier DIL permettent cette initiation, aussi bien en ce qui concerne l'électronique que le langage C, ouvrant éventuellement la voie à des bestioles bien plus musclées.

    @ lpt1com2
    Ton commentaire sur l'ATXmega n'est absolument pas hors sujet. J'en ai profité pour télécharger la Datasheet de l'ATXmega128D4 et lire les "features". Assez bluffant ! Et le prix est époustouflant. Mais les frais d'envoi ? Et arrives-tu à souder un µC en boitier TQFP ?

    @ Mourad
    Je ne parvenais pas à ouvrir les menus comme tu l'avais indiqué, ce qui m'a fait croire que tu avais une version Studio différente des miennes. Je viens de voir que si je ne pouvais accéder aux menus, c'est parce que j'avais ouvert un projet en assembleur et non en GCC. Donc, excuse-moi, c'est moi qui étais à côté de la plaque. Je vais pouvoir faire les manipulations que tu indiques. Je tiens le forum au courant.

Page 1 sur 21 12 3 4 5 6 7 8 9 10 20 DernièreDernière

Discussions similaires

  1. Arduino anti rebond avec arduino
    Par sari12 dans le forum Électronique
    Réponses: 13
    Dernier message: 23/10/2014, 17h04
  2. Stopper une boucle - Langage Arduino.
    Par Baliethecat dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 10/04/2014, 06h31
  3. Communication arduino-arduino avec module Xbee
    Par TPESI22012 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/12/2013, 17h24
  4. Utiliser un Arduino UNO R3 avec ATMEL Studio 6
    Par HAYAC dans le forum Électronique
    Réponses: 2
    Dernier message: 27/07/2012, 14h12
  5. Réponses: 15
    Dernier message: 19/07/2012, 22h53
Découvrez nos comparatifs produits sur l'informatique et les technologies.